5. Java Kotlin
Person person = new Person();
int number = 10;
var (variable: mutable)
String name = “Kotlin”;
String surname = “Pro”
surname = “melon”
var name: String = “Kotlin”
var surname = “Pro”
surname = “melon”
var number = 10
var person = Person()
6. val (value: immutable)
Java Kotlin
final String name = “Kotlin”;
final int number = 10;
final Person person = new Person();
val name: String = “Kotlin”
val surname = “Pro”
surname = “melon”
val number = 10
val person = Person()
8. Class & Properties
Java Kotlin
Java Kotlin Output
person.setName(“Kotlin”)
System.out.print(person.getName())
person.name = “Kotlin”
print(person.name)
Kotlin
public class Person {
private String name = “melon” ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Person {
var name = “melon”
}
10. Custom Getter/Setter
Java Kotlin
Java Kotlin Output
person.setName(“Kotlin”)
System.out.print(person.getName())
person.name = “Kotlin”
print(person.name)
MY NAME IS KOTLIN
public class Person {
private String name = “”;
public String getName() {
return name.toUpperCase();
}
public void setName(String name) {
this.name = “My name is ” + name;
}
}
class Person {
var name: String = “”
get() = field.toUpperCase()
set(value) {
field = “My Name is $value”
}
}
12. LATE INIT(1)
Kotlin
class Test {
lateinit var subject: TestSubject
@Setup fun setUp( ) {
subject = TestSubject()
}
@Test fun test ( ) {
subject.method()
}
}
Initialize later
13. Kotlin
class Person {
lateinit var name: String
fun getPersonInfo(): String {
return name
}
}
Input Output
print(person.name)
kotlin.UninitializedPropertyAccessException
14. LAZY : (Save memory and skip the initialisation until the property is required. )
Kotlin
class EditProfilePersenter {
val database by lazy {
Database()
}
fun saveToDatabase(name: Person) {
database.save(name)
…...
}
}
DATABASE OBJECT IS INITIATE AT THIS LINE.
25. fun twoAndThreeOperation(operation: (Int, Int) -> Int) {
val result = operation(2, 3)
println("The result is $result")
}
Higher order function
Usage:
twoAndThreeOperation ({ x, y —> x + y}) outcome : The result is 5 //x=2, y= 3 → 2+3
twoAndThreeOperation { x, y —> x * y} outcome : The result is 6 //x=2, y= 3 → 2*3
twoAndThreeOperation { x, y —> y - x + 10 } outcome : The result is 11 //x=2, y= 3 → 3-2+10
26. public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> {
return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform)
}
person1: Person(name = “A”, age = 20)
person2: Person(name = “B”, age = 21)
person3: Person(name = “C”, age = 22)
val persons = listOf(person1, person2, person3)
List Of Person List Of person’s name
persons.map { person -> person.name }
map (transform)
List Of Person List Of person’s age
persons.map { person -> person.age }
map (transform)
Java :
List<String> personName = new ArrayList<> ();
for (Person person: persons) {
personName.add(person.name)
}
Java :
List<Integer> personAge = new ArrayList<>();
for (Person person: persons) {
personAge.add(person.age)
}
28. Java Kotlin
class Person {
private String name;
private int age;
@Override
String toString() {}
@Override
int hashCode() {}
@Override
boolean equals(Object o) {}
Person copy() {}
….getter()/setter() of name, age….
}
data class Person (
val name: String,
var age: Int
)