Kotlin     PHP       WEB       3GL   4GL   5GL      

Kotlin

Kotlin

Kotlin class:

class Invoice {
}

, ( , .) , . : , .

class Empty

Kotlin (primary constructor) (secondary constructors). , ( ).

class Person constructor(firstName: String) {
}

, constructor :

class Person(firstName: String) {
}

. (initializers blocks), init:

class Customer(name: String) {
    init {
        logger.info("Customer initialized with value ${name}")
    }
}

, . :

class Customer(name: String) {
    val customerKey = name.toUpperCase()
}

, , Kotlin :

class Person(val firstName: String, val lastName: String, var age: Int) {
  // ...
}

, , (var) (val).

, constructor , .

class Customer public @Inject constructor(name: String) { ... }

, . " ".

(secondary constructors), constructor:

class Person {
    constructor(parent: Person) {
        parent.children.add(this)
    }
}

() , ( () ()) .

class Person(val name: String) {
    constructor(name: String, parent: Person) : this(name) {
        parent.children.add(this)
    }
}

( ), . public. public , :

class DontCreateMe private constructor () {
}

: JVM, , . , Jackson JPA, Kotlin, .

class Customer(val customerName: String = "")

, :

val invoice = Invoice()

val customer = Customer("Joe Smith")

, Kotlin new.

:

Koltin Any. , - :

class Example // Implicitly inherits from Any

Any java.lang.Object. , : equals(), hashCode(), toString(). , c Java .

, :

open class Base(p: Int)

class Derived(p: Int) : Base(p)

, ( ) , .

, super , . , .

class MyView : View {
    constructor(ctx: Context) : super(ctx) {
    }

    constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs) {
    }
}

open final Java: . , Kotlin final, Effective Java, Item 17: Design and document for inheritance or else prohibit it.

, Kotlin. , Java, Kotlin , , :

open class Base {
  open fun v() {}
  fun nv() {}
}
class Derived() : Base() {
  override fun v() {}
}

Derived.v() override. , . Base.nv() open, , override . final (, open), open .

, override open, . , final:

open class AnotherDerived() : Base() {
  final override fun v() {}
}

! ?

( final) - , .

, :

Kotlin : , (, ). , ( ), , super. , super<Base>:

open class A {
  open fun f() { print("A") }
  fun a() { print("a") }
}

interface B {
  fun f() { print("B") } // interface members are 'open' by default
  fun b() { print("b") }
}

class C() : A(), B {
  // The compiler requires f() to be overridden:
  override fun f() {
    super<A>.f() // call to A.f()
    super<B>.f() // call to B.f()
  }
}

A B. a() b() , C . f() , C, f() C .

abstract. . , open - .

- open

open class Base {
  open fun f() {}
}

abstract class Derived : Base() {
  override abstract fun f()
}

-

Kotlin, Java C#, . , (.: "package-level functions").

, , ( , ), .

, - , , , Java/C# ( ).

(.: "sealed classes")

, , , . , - , enum : enum , enum , , , (sealed class), .

, sealed , sealed . , .

sealed class Expr {
    class Const(val number: Double) : Expr()
    class Sum(val e1: Expr, val e2: Expr) : Expr()
    object NotANumber : Expr()
}

, , sealed ( ), , sealed .

sealed , when. , , else.

fun eval(expr: Expr): Double = when(expr) {
    is Expr.Const -> expr.number
    is Expr.Sum -> eval(expr.e1) + eval(expr.e2)
    Expr.NotANumber -> Double.NaN
    // the `else` clause is not required because we've covered all the cases
}
Kotlin     PHP       WEB       3GL   4GL   5GL         w  

, --, Class-responsibility-collaboration - -- - - , :
- - - , ;
- - - , .




 10.11.2021 - 12:37: - Personalias -> WHO IS WHO - - _.
10.11.2021 - 12:36: - Conscience -> . ? - _.
10.11.2021 - 12:36: , , - Upbringing, Inlightening, Education -> ... - _.
10.11.2021 - 12:35: - Ecology -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> . - _.
10.11.2021 - 12:34: , , - Upbringing, Inlightening, Education -> , - _.
10.11.2021 - 09:18: - New Technologies -> , 5G- - _.
10.11.2021 - 09:18: - Ecology -> - _.
10.11.2021 - 09:16: - Ecology -> - _.
10.11.2021 - 09:15: , , - Upbringing, Inlightening, Education -> - _.
10.11.2021 - 09:13: , , - Upbringing, Inlightening, Education -> - _.
Bourabai Research -  XXI Bourabai Research Institution