JavaRush /Blog Jawa /Random-JV /Pratelan Wangsul ing basa Jawa
Viacheslav
tingkat

Pratelan Wangsul ing basa Jawa

Diterbitake ing grup

Pambuka

Kaya sing wis dingerteni, Java minangka basa pemrograman berorientasi obyek. Sing, konsep dhasar, amarga kanggo ngomong dhasar dhasar iku kabeh obyek. Obyek diterangake nggunakake kelas. Pranyatan bali ing basa Jawa - 1Kelas, ing siji, duwe negara lan prilaku. Contone, akun bank bisa duwe negara ing wangun jumlah dhuwit ing akun lan duwe prilaku nambah lan ngurangi imbangan. Solah bawa ing basa Jawa ditindakake kanthi nggunakake metode. Cara njlèntrèhaké cara wis dikenalaké ing wiwitan lelampahan sinau basa Jawa. Contone, ing tutorial resmi saka Oracle: " Nemtokake Metode ". Ana rong aspek penting ing kene:
  • Saben cara duwe tandha. Tandha kasebut kalebu jeneng metode lan paramèter input;
  • Cara kudu nemtokake jinis bali;
  • Jinis bali ora bagean saka teken cara.
Maneh, iki minangka akibat saka kasunyatan manawa basa Jawa minangka basa sing diketik banget lan penyusun pengin ngerti luwih dhisik jinis apa sing digunakake ing ngendi wae. Maneh, kanggo nglindhungi kita saka kesalahan. Umumé, kabeh iku kanggo apik. Inggih, iki sepisan maneh instills ing kita budaya nangani data, misale jek kula. Dadi, kanggo metode jinis nilai kasebut ditemtokake. Lan kanggo ngasilake nilai sing padha saka metode kasebut, tembung kunci digunakake return.

Pernyataan bali tembung ing basa Jawa

Tembung kunci statement returnnuduhake "pernyataan aliran kontrol" kaya sing dibahas ing tutorial oracle " Pernyataan Aliran Kontrol ". Sampeyan uga bisa maca babagan cara ngasilake nilai ing tutorial resmi: " Mbalikake Nilai saka Metode ". Compiler kasebut kanthi teliti ngawasi, kanthi kemampuan sing paling apik, yen nilai bali saka cara cocog karo jinis nilai bali sing ditemtokake dening metode kasebut. Ayo nggunakake IDE Online saka tutorialspoint minangka conto . Ayo ndeleng conto asli:
public class HelloWorld {
    public static void main(String []args) {
        System.out.println("Hello World");
    }
}
Minangka kita bisa ndeleng, cara dieksekusi ing kene main, yaiku titik entri menyang program kasebut. Baris kode dieksekusi saka ndhuwur nganti ngisor. Cara kita mainora bisa ngasilake nilai, yen ora, kita bakal nampa kesalahan: " Error: Main method must return a value of type void". Mulane, cara mung bakal output menyang layar. Ayo saiki mindhah panampa senar menyang cara sing kapisah kanggo nampa pesen:
public class HelloWorld {

    public static void main(String []args) {
        System.out.println(getHelloMessage());
    }

    public static String getHelloMessage() {
        return "Hello World";
    }

}
Minangka kita bisa ndeleng, nggunakake tembung kunci returnkita nemtokake nilai bali, kang digunakake mengko ing cara println. Ing katrangan (definisi) cara kasebut, getHelloMessagekita nuduhake manawa bakal ngasilake kita String. Iki ngidini kompiler mriksa manawa tumindak metode kasebut cocog karo cara diumumake. Alamiah, jinis nilai bali sing ditemtokake ing definisi metode bisa luwih jembar tinimbang jinis nilai bali saka kode, i.e. Ingkang utama yaiku jinis-jinis kasebut dikurangi. Yen ora, kita bakal entuk kesalahan wektu kompilasi: " error: incompatible types". Ngomong-ngomong, pitakonan kasebut bisa uga langsung muncul: Kenapa returnditrapake kanggo operator kontrol aliran program? Nanging amarga bisa ngganggu aliran normal program saka ndhuwur menyang ngisor. Tuladhane:
public class HelloWorld {

    public static void main(String []args){
        if (args.length == 0)  {
            return;
        }
        for (String arg : args)  {
            System.out.println(arg);
        }
    }

}
Kaya sing bisa dideleng saka conto, kita ngganggu eksekusi metode kasebut mainyen program java diarani tanpa paramèter. Penting kanggo elinga yen sampeyan returnduwe kode kasebut, mula ora bisa diakses. Lan kompiler pinter kita bakal sok dong mirsani iki lan ora bakal ngidini sampeyan mbukak program kasebut. Contone, kode iki ora bakal dikompilasi:
public static void main(String []args) {
        System.out.println("1");
        return;
        System.out.println("2");
 }
Ana hack reged kanggo ngubengi iki. Contone, kanggo tujuan debugging utawa kanggo sawetara alasan liyane. Kode ing ndhuwur bisa didandani kanthi mbungkus returning ifblok:
if (2==2)  {
    return;
}

Pernyataan bali ing penanganan kesalahan

Ana siji kahanan sing angel banget - kita bisa nggunakake returnbebarengan karo penanganan kesalahan. Aku arep ngomong langsung yen nggunakake returning catchblok iku banget, banget ala, supaya sampeyan kudu nyingkiri. Nanging kita kudu conto, ta? Punika piyambakipun:
public class HelloWorld  {

    public static void main(String []args) {
        System.out.println("Value is: " + getIntValue());
    }

    public static int getIntValue()  {
        int value = 1;
        try {
            System.out.println("Something terrible happens");
            throw new Exception();
        } catch (Exception e) {
            System.out.println("Catched value: " + value);
            return value;
        } finally {
            value++;
            System.out.println("New value: " + value);
        }
    }

}
Sepisanan, misale jek sing 2 kudu bali, amarga finallytansah kaleksanan. Nanging ora, nilai bakal dadi 1, lan owah-owahan menyang variabel ing finallybakal diabaikan. Menapa malih, yen valuengemot obyek lan kita finallyngandika value = null, banjur catchisih bakal bali referensi kanggo obyek, ora null. Nanging saka pemblokiran finallyoperator returnbakal bisa digunakake kanthi bener. Kolega bakal jelas ora matur nuwun kanggo hadiah kasebut.
Apa maneh sing kudu diwaca:

statement bali

batal.kelas

Lan pungkasane. Sampeyan bisa nulis konstruksi aneh kaya void.class. Kayane, kenapa lan apa gunane? Nyatane, ing macem-macem kerangka lan kasus sing angel digunakake Java Reflection API , iki bisa uga dibutuhake. Contone, sampeyan bisa mriksa jinis apa cara ngasilake:
import java.lang.reflect.Method;

public class HelloWorld {

    public void getVoidValue() {
    }

    public static void main(String[] args) {
        for (Method method : HelloWorld.class.getDeclaredMethods()) {
            System.out.println(method.getReturnType() == void.class);
        }
    }
}
Iki bisa migunani ing kerangka uji coba yen perlu ngganti kode metode sing nyata. Nanging kanggo nindakake iki, sampeyan kudu ngerti carane cara iki tumindak (i. e., jinis apa sing bakal bali). Ana cara liya kanggo ngetrapake metode kasebut mainsaka kode ing ndhuwur:
public static void main (String[] args) {
        for (Method method : HelloWorld.class.getDeclaredMethods()) {
            System.out.println(method.getReturnType() == Void.TYPE);
        }
 }
A diskusi rodo menarik saka prabédan antarane wong-wong mau bisa maca ing stackoverflow: Apa prabédan antarane java.lang.Void lan roso sepi? #Viacheslav
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION