Size: a a a

StartAndroid Ru Kotlin

2019 March 20

S

Shuhrat in StartAndroid Ru Kotlin
Иван Макеев
посмотрите декомпиляцию kotlin в java
уже подсказали))
источник
2019 March 21

i

iLvik in StartAndroid Ru Kotlin
В котлине есть геттеры и сеттеры, их можно переопределить. Их явно не нужно указывать, потому что в джава эти геттеры и сеттеры выполняли одну и ту же функцию и очень редко делали что-то помимо "дай значение " "подставь значение". Поэтому в котлин сделали лёгкий синтаксис обращения без явного указывания геттеррв и сеттеров
источник

i

iLvik in StartAndroid Ru Kotlin
pojo.age = 42 // Kotlin

Эквивалентно

pojo.setAge(42) // Java

Если поле age обозначено var
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
iLvik
pojo.age = 42 // Kotlin

Эквивалентно

pojo.setAge(42) // Java

Если поле age обозначено var
а как тогда в котлине переопределить сеттер под себя, чобы он присваивал например квадрат числа?
если в джаве так:
public class User {
 private int mAge;
 public void setAge(int age) {
     mAge = age*age;
}
то как в котлине?
и аналогично c геттером:
если в даже так:
public class User {
 private int mAge;
 public int getAge() {
     return mAge + 100;
}
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
p.s. как это сделать в: 1) простом классе 2) data классе
??????)
источник

ИМ

Иван Макеев... in StartAndroid Ru Kotlin
переопределить поведение методов get и set у переменной
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
class Sample(var id: Int, name: String) {

   var name: String = name
       private set

}
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
class Sample(name: String, age: Int) {

       var age: Int = age
           get() = field + 100
           set(value) {
               field = value * value
           }

   }
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
бля, в джаве помоему этот момент проще)
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
а так не канает?)
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
class Sample(mName: String, mAge: Int) {

       fun setAga(age: Int) {
               mAge = age*age
       }

  }
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
нет
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
у вас нет в классе переменной mAge
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
то что в конструкторе - initial values
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
для этого нужно в конструкторе перед mAge поставить val/var
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
и завязывайте добавлять к имени переменной "m"
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
😄
источник

LR

Leonid Ratanov in StartAndroid Ru Kotlin
книги, в котрых вас этому научили - устарели
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
ага, понял. Тогда у меня другой вопрос возник:
как добавить  пустой конструктор? чтобы можно было инициализировать объект этого класса без параметров?
источник

SK

Sergey Kharuk in StartAndroid Ru Kotlin
добавить var и опеределить значение по умолчанию, верно?
источник