JavaRush /Blog Jawa /Random-JV /Apa ana bedane antarane Kotlin lan Jawa?
Paul Soia
tingkat
Kiyv

Apa ana bedane antarane Kotlin lan Jawa?

Diterbitake ing grup
Halo kabeh. Aku pengin ngandhani sawetara perkara dhasar babagan basa Kotlin, sing bakal migunani kanggo pamula. Mesthi wae saiki bakal angel mlebu pangembangan Android kanthi mung siji basa - umume proyek anyar wiwit ditulis ing Kotlin, umume proyek sing wis siap ditulis ing Jawa. Apa ana bedane antarane Kotlin lan Jawa?  - 1Saiki aku duwe 4 proyek: loro ing Kotlin lan loro ing Jawa (siji gedhe lan telu cilik kanggo panggunaan internal). Nalika perusahaan mutusake kanggo nulis proyek anyar ing Kotlin, keputusan iki katon aneh kanggo aku. Apa sebabe nyampur macem-macem basa? Ayo wong liya nulis ing Kotlin, kenapa kita butuh? Nanging ora ana cara metu, mula aku mutusake nyoba basa anyar lan sinau. Kode pisanan, mesthi, ditulis kabeh nganggo gaya Jawa, sing nambah salah pangerten: kenapa aku butuh basa anyar? Nanging nalika aku nggunakake, aku nemokake kaluwihan liyane lan saiki (aku wis nulis ing Kotlin meh 2 taun) Aku bisa ngomong yen Kotlin luwih trep ing pembangunan Android. Aku pengin nuduhake sawetara nuansa sing ora bakal ketok kanggo wong sing mutusake sinau Kotlin sawise Jawa. Aku uga ngelingake yen Android nggunakake Java 8, kanthi versi saiki yaiku 14. Dadi, pisanan - Variabel : Jawa:
Int a = 1;
String s = "test";
Kotlin:
val a = 1
var b = 2
val c: Int
val d = "test"
Ana rong jinis variabel ing Kotlin: val (maca-mung) lan var (maca-nulis). Dianjurake kanggo nggunakake val sabisa. Ora perlu ngumumake jinis variabel yen variabel kasebut wis diwiwiti. Second - if/else, switch statements : Sepira kerepe sampeyan nggunakake chain of statements ing Jawa:
if (вариант 1)
{...}
else if (вариант 2)
{...}
...
else
{...}
Utawa kaya iki:
switch(выражениеДляВыбора) {
        case (meaning 1):
                Код1;
                break;
        case (meaning 2):
                Код2;
                break;
...
        case (meaning N):
                КодN;
                break;
        default:
                КодВыбораПоУмолчанию;
                break;
        }
Ing Kotlin, operator nalika digunakake kanggo ekspresi kasebut (sanajan yen / liya uga bisa digunakake):
val x = 5
val result = when(x) {
        0, 1 -> "cool"
        2 -> "bad"
        5 -> "normal"
        else -> "error"
}
System.out.println(result)
Ing kene kita ora mung ngliwati rantai kahanan, nanging uga langsung menehi ekspresi kabeh menyang variabel asil, sing nylametake kita sawetara baris kode. Nanging isih, yen sampeyan duwe mung rong pilihan ing cabang, Aku nyaranake nggunakake biasanipun yen..else. Nalika construction bakal luwih cendhek mung saka telung opsi. Ayo maju - Konstruktor . Iki dongeng ing kene. Mung mbandhingake kode ing Jawa lan Kotlin. Jawa:
public class Person {

    private String firstName;
    private String lastName;
    private int age;

    public Person(String firstName, String lastName, int age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
Kotlin:
class Person(private val firstName: String,
             private val lastName: String,
             private var age: Int) {
}
Koyone ana sing durung rampung ing kode Kotlin. Nanging ora, iki rong kode sing padha ing basa sing beda. Ayo dipikirake sethithik. Ing Kotlin, konstruktor bisa ditulis langsung ing awak jeneng kelas (nanging yen sampeyan pengin, sampeyan bisa nindakake kanthi cara lawas, kaya ing Jawa). Dadi, kita wis nulis telung variabel, ing Jawa kita wis nggawe konstruktor, getter lan siji setter kanggo variabel umur. Ing Kotlin, kita elinga, variabel val diwaca-mung, lan mulane setter kanggo variabel iki ora kasedhiya (Kotlin ngleksanakake getter-setters ing hood dhewe). Variabel var ngidini sampeyan nggunakake setter. Akibaté, kita nulis meh ing siji baris bab sing padha njupuk luwih saka rolas baris ing Jawa. Ing kene aku nyaranake maca liyane babagan kelas data ing Kotlin. Nanging ora kabeh sing konstruktor Kotlin apik. Nanging apa yen sampeyan butuh loro konstruktor? Apa yen ana telu? Ing Jawa bakal katon kaya iki:
public Person(String firstName, String lastName, int age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

public Person(String firstName) {
        this.firstName = firstName;
    }
Ora ana sing rumit, mung akeh desainer sing dibutuhake, sing ditindakake. Ing Kotlin sampeyan bisa entuk kanthi mung siji konstruktor. kepriye? Iku prasaja - nilai standar.
class Person(private val firstName: String,
             private val lastName: String? = null,
             private var age: Int = 5) {
}
Kita nemtokake nilai standar ing konstruktor lan saiki nelpon bakal katon kaya iki:
Person(firstName = "Elon", lastName = "Mask", age = 45)
Person(firstName = "Elon", age = 45)
Person(firstName = "Elon", lastName = "Mask")
Pitakonan bisa uga muncul: apa iki:
private val lastName: String? = null
Apa tandha pitakon liyane iki? Ya, yen nilai bisa null, banjur disetel ?. Ana uga pilihan kaya iki - !!(yen variabel ora bisa nampa null). Waca babagan dhewe, kabeh iku prasaja. Lan kita pindhah menyang titik sabanjure. Ekstensi . Iki minangka alat sing apik banget ing Kotlin sing ora kasedhiya ing Jawa. Kadhangkala ing proyek kita nggunakake cara cithakan sing diulang ing akeh kelas. Contone, kaya iki:
Toast.makeText(this, "hello world :)", Toast.LENGTH_SHORT).show();
Ing Kotlin, kita bisa nambah kelas:
fun Context.toast(message: CharSequence) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
Banjur gunakake kaya iki ing saindhenging proyek:
context?.toast("hello world")
Kita nggawe ekstensi kanggo kelas Konteks. Lan saiki ing ngendi wae konteks kasedhiya, metode roti panggang anyar bakal kasedhiya. Iki bisa ditindakake kanggo kelas apa wae: String, Fragmen, kelas khusus sampeyan, ora ana watesan. Lan titik pungkasan sing bakal kita deleng yaiku Nggarap Strings . Kabeh iku prasaja ing kene. Ing basa Jawa ditulis kaya mangkene:
String s = "friends";
int a = 5;
System.out.println("I have" + a + s + "!");
Luwih gampang ing Kotlin:
val s = "friends"
val a = 5
println("I have $a $s!")
Iki minangka nuansa sing aku kesandhung nalika wiwitan sinau Kotlin, muga-muga bisa mbantu sampeyan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION