95 lines
1.1 KiB
Markdown
95 lines
1.1 KiB
Markdown
|
# Classes
|
||
|
|
||
|
Basically kotlin syntax.
|
||
|
|
||
|
Methods have to have a first parameter `$`.
|
||
|
|
||
|
|
||
|
## Create a new instance of a class
|
||
|
|
||
|
`new` not required, in fact, forbidden.
|
||
|
|
||
|
```thp
|
||
|
val dog = Dog()
|
||
|
```
|
||
|
|
||
|
## Simple class
|
||
|
|
||
|
Why'd you do this tho?
|
||
|
|
||
|
```thp
|
||
|
class SimpleClass
|
||
|
|
||
|
val instance = SimpleClass()
|
||
|
```
|
||
|
|
||
|
## Properties & methods
|
||
|
|
||
|
```thp
|
||
|
class SimpleClass
|
||
|
{
|
||
|
// Properties are private by default
|
||
|
var String? name;
|
||
|
|
||
|
// Made public with `public`
|
||
|
public var String? surname;
|
||
|
|
||
|
// Methods are private by default
|
||
|
fun display_name($)
|
||
|
{
|
||
|
// `$` is used instead of $this
|
||
|
print($name)
|
||
|
}
|
||
|
|
||
|
public fun get_name($) -> String?
|
||
|
{
|
||
|
$name
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## Static members
|
||
|
|
||
|
no
|
||
|
|
||
|
|
||
|
## Constructor
|
||
|
|
||
|
Kotlin style
|
||
|
|
||
|
|
||
|
```thp
|
||
|
class Cat(val String name)
|
||
|
{
|
||
|
public fun get_name($) -> String
|
||
|
{
|
||
|
$name
|
||
|
}
|
||
|
}
|
||
|
|
||
|
val michifu = Cat("Michifu")
|
||
|
print(michifu.get_name())
|
||
|
```
|
||
|
|
||
|
## Inheritance
|
||
|
|
||
|
Kotlin style
|
||
|
|
||
|
```thp
|
||
|
class Animal(val String name)
|
||
|
{
|
||
|
public fun say_name($)
|
||
|
{
|
||
|
print($name)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class Cat(String name, Int lives) -> Animal(name)
|
||
|
|
||
|
Cat("Michi", 9).say_name()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|