* Create control_flow.md * Rename control_flow.md to controlflow.md * Added control flow * Added classes * fix: corrected indentation * fix: corrected indentation
		
			
				
	
	
		
			45 lines
		
	
	
		
			956 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			956 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Classes
 | 
						|
---
 | 
						|
 | 
						|
# Classes
 | 
						|
 | 
						|
### Basic Usage
 | 
						|
 | 
						|
#### Declaration
 | 
						|
 | 
						|
`class` keyword is used to define the class  
 | 
						|
It is consisted of: class name, class header (type parameters, constructor) and class body (curly braces)  
 | 
						|
```kotlin
 | 
						|
class Person { ... }
 | 
						|
```
 | 
						|
 | 
						|
#### Constructor
 | 
						|
 | 
						|
There are multiple ways to define class constructor.  
 | 
						|
Primary constructor is part of the class header (name field with data type):
 | 
						|
```kotlin
 | 
						|
class Person(name: String) { ... }
 | 
						|
```
 | 
						|
 | 
						|
Secondary constructor: using `constructor` keyword inside class body  
 | 
						|
```kotlin
 | 
						|
class Person {
 | 
						|
  constructor(parent: Person) {
 | 
						|
    parent.children.add(this)
 | 
						|
  }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
#### Usage
 | 
						|
 | 
						|
Class instance can be created as regular function   
 | 
						|
There is no need for `new` keyword
 | 
						|
```kotlin
 | 
						|
val john = Person("John Wayne")
 | 
						|
```
 | 
						|
 | 
						|
#### Resources
 | 
						|
* [Basic Syntax Reference](https://kotlinlang.org/docs/reference/basic-syntax.html)
 | 
						|
* [Kotlin Classes Reference](https://kotlinlang.org/docs/reference/classes.html)
 |