JavaRush /Blog Jawa /Random-JV /Ngopi #174. Beda Cara Nggawe Obyek ing Jawa.String kanggo...

Ngopi #174. Beda Cara Nggawe Obyek ing Jawa.String kanggo Int ing Jawa - Cara Ngonversi String dadi Integer

Diterbitake ing grup

Cara sing beda kanggo nggawe obyek ing basa Jawa

Sumber: Sedheng Ing tutorial iki, kita bakal sinau macem-macem cara nggawe obyek ing basa Jawa. Ngopi #174.  Cara sing beda kanggo nggawe obyek ing Jawa.String menyang Int ing Jawa - Cara ngowahi string dadi integer - 1Objek Jawa minangka conto saka kelas Jawa. Saben obyek nduweni status, prilaku, lan pengenal. Kolom (variabel) nyimpen kahanan obyek, dene metode (fungsi) nuduhake tumindak obyek. Kelas dadi "blueprints" saka conto obyek digawe nalika runtime.

Nggawe Obyek ing Jawa

Nggawe obyek yaiku proses ngalokasi memori kanggo nyimpen data ing kolom kelas (uga disebut variabel). Proses iki asring diarani nggawe instance saka kelas. Ana papat cara kanggo nggawe obyek ing Jawa:
  1. nggunakake tembung kunci anyar
  2. metode newInstance()
  3. metode clone().
  4. deserializing obyek
Saiki ayo goleki saben metode sing kasebut kanthi rinci.

Tembung kunci anyar

Iki minangka cara sing paling umum kanggo nggawe obyek ing Jawa. Tembung kunci anyar nggawe conto kelas kanthi ngalokasi memori kanggo conto anyar saka jinis sing ditemtokake. Sawise anyar teka konstruktor - cara khusus tanggung jawab kanggo nggawe obyek lan initializing kothak obyek digawe. Obyek digawe karo operator anyar lan diinisialisasi karo konstruktor. Ing ngisor iki conto nggawe obyek Jawa nganggo operator anyar :
Date today = new Date();
Ekspresi iki ngasilake obyek Tanggal anyar ( Tanggal minangka kelas ing paket java.util ). Klausa tunggal ing kode iki nindakake telung operasi: deklarasi, instantiation, lan initialization. Tanggal dina iki minangka deklarasi variabel sing ngandhani kompiler yen dina iki bakal ngrujuk menyang obyek jinis Date . Operator anyar instantiates kelas Tanggal (nggawe obyek Tanggal anyar ing memori), lan Tanggal () initializes obyek. Coba conto ing ngisor iki:
public class Person {
    private String name;
    private int uid;

    public Person() {
        this.name = "Michael Cole";
        this.uid = 101;
    }

    public Person(String name, int uid) {
        super();
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...

    public static void main(String[] args) {

        Person p1 = new Person();
        Person p2 = new Person("John Bodgan", 102);
        System.out.println("Name: " + p1.getName() + " UID: " + p1.getUid());
        System.out.println("Name: " + p2.getName() + " UID: " + p2.getUid());
    }
}
Saka kode iki, kita nggawe obyek Person nggunakake tembung kunci anyar :
  • Objek p1 nelpon konstruktor non-parameter kanthi nilai jeneng variabel disetel menyang "Michael Cole" lan UID disetel dadi 101.
  • Obyek p2 nelpon konstruktor parameter, ing ngendi nilai kasebut "John Bodgan" lan 102 menyang konstruktor. Nilai kasebut banjur diwenehi jeneng variabel lan UID.

Nggunakake metode newInstance().

Metode newInstance () ing Jawa digunakake kanggo nggawe conto obyek saka kelas tartamtu kanthi dinamis. Ana rong panggunaan standar metode newInstance() :
  • newInstance () cara saka java.lang.Class API
  • cara newInstance () saka java.lang.reflect.Constructor API

Nggunakake newInstance () saka API Kelas

Kanggo nggawe obyek saka kelas ing runtime, kita kudu nelpon newInstance () cara saka API Kelas, kang ngasilake obyek saka kelas sing. Cara newInstance () kelas java.lang.Class ora njupuk paramèter utawa bantahan lan bisa disebut konstruktor ora-argumen kanggo kelas sing. Ayo katon ing sawetara conto kode kanggo nggawe obyek saka kelas Person nggunakake metode newInstance () saka kelas java.lang.Class :
public class Person {
    private String name;
    private int uid;

    public Person() {
        this.name = "Carl Max";
        this.uid = 101;
    }

   // getters and setters...
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Class c = Class.forName("com.medium.option2.Person");
        @SuppressWarnings("deprecation")
        Person p = (Person) c.newInstance();
        System.out.println("Name: " + p.getName());
        System.out.println("UID: " + p.getUid());
    }
}
Class.forName (jeneng qualified saka kelas) mbukak kelas jenenge Person , banjur newInstance () nggawe obyek anyar saka jinis Person lan ngasilake referensi kanggo. Saiki, nggunakake referensi Person kanggo p , kita bisa nelpon getters () lan setter () kanggo nindakake tumindak tartamtu. Tulung dicathet:
  • Loro Class.forName () lan newIstance () mbuwang pangecualian sing kudu ditangani kanthi nggunakake blok nyoba lan nyekel utawa tembung kunci mbuwang .
  • Metode newInstance() saka API Kelas wis ora digunakake wiwit Java 9.

Nggunakake newInstance () saka API Konstruktor

NewInstance () cara kelas Constructor ( java.lang.reflect.Constructor ) padha karo newInstance () cara kelas Kelas , kajaba sing nampa paramèter kanggo konstruktor parameterized. Ayo nduduhake pendekatan iki kanthi nggawe obyek saka kelas Person nggunakake metode newInstance() saka kelas java.lang.reflect.Constructor :
public class PersonTwo {
    private String name;
    private int uid;

    public PersonTwo() {
        this.name = "Maya Kumari";
        this.uid = 101;
    }

    public PersonTwo(String name) {
        this.name = name;
        this.uid = 102;
    }

    public PersonTwo(String name, Integer uid) {
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...
    public static void main(String[] args) {
        try {
            Class.forName("com.medium.option2.PersonTwo");

            Constructor c1 = PersonTwo.class.getConstructor();
            PersonTwo p1 = (PersonTwo) c1.newInstance();
            System.out.println("Name: " + p1.getName());
            System.out.println("UID: " + p1.getUid());

            Constructor c2 = PersonTwo.class.getConstructor(String.class);
            PersonTwo p2 = (PersonTwo) c2.newInstance("James Gunn");
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());

            Constructor c3 = PersonTwo.class.getConstructor(String.class, Integer.class);
            PersonTwo p3 = (PersonTwo) c3.newInstance("Mark Brown", 103);
            System.out.println("Name: " + p3.getName());
            System.out.println("UID: " + p3.getUid());

        } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
Ing kode ndhuwur, pisanan kita kudu mbukak kelas nggunakake Class.forName () cara . Sabanjure, kita bakal nelpon getConstructor () cara kanggo cocog jinis data paramèter liwati. Pungkasan, ing metode newInstance () kita ngliwati parameter sing dibutuhake ( null yen ora ana argumen). Metode newInstance () bakal ngasilake obyek anyar saka kelas PersonTwo kanthi nelpon konstruktor sing cocog.

Nggunakake metode clone().

Klone () cara iku bagéan saka kelas Obyek lan digunakake kanggo nggawe salinan obyek ana. Iku nggawe obyek saka kelas tanpa nelpon sembarang konstruktor kelas. Kanggo kloning metode, kelas sing cocog kudu ngetrapake antarmuka Cloneable , yaiku antarmuka panandha. Saiki kita bakal nggawe obyek saka kelas Person banjur clone menyang obyek liyane saka kelas Person :
public class Person implements Cloneable {
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    private String name;
    private int uid;

    public Person(String name, int uid) {
        super();
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...

    public static void main(String[] args) {
        Person p1 = new Person("Ryan", 101);
        try {
            Person p2 = (Person) p1.clone();
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

    }
}
Cathetan. Obyek kloning bakal ngrujuk obyek asli sing padha liwat referensi p2 . Nanging, obyek kloning bakal duwe assignment memori kapisah. Iki tegese owah-owahan sing digawe kanggo obyek Person sing dirujuk dening p2 ora bakal ngganti obyek Person asli sing dirujuk dening p1 . Iki amarga clone () cara nggawe salinan cethek obyek.

Nggunakake Deserialisasi Objek

Deserialisasi obyek yaiku proses ngekstrak obyek saka seri byte stream. Serialization nindakake ngelawan. Tujuan utamane yaiku kanggo njupuk obyek sing disimpen saka database / jaringan bali menyang memori. Yen kita pengin serialize utawa deserialize obyek, kita kudu ngleksanakake antarmuka Serializable (antarmuka token). Coba conto ing ngisor iki:
public class PersonDriver {

    public static void main(String[] args) {
        Person p1 = new Person("Max Payne", 101);
        FileOutputStream fileOutputStream;
        try {
            fileOutputStream = new FileOutputStream("link to text file");
            ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
            outputStream.writeObject(p1);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        FileInputStream fileInputStream;
        try {
            fileInputStream = new FileInputStream("link to text file");
            ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
            Person p2 = (Person) inputStream.readObject();
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());
            inputStream.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
Kene kita pisanan serialize obyek Person dening referensi p1 menyang file teks. Metode writeObject() bakal nulis stream byte obyek menyang file teks. Banjur, nggunakake deserialization obyek, kita extract obyek Person bali menyang p2 . Kajaba iku, cara readObject () bakal maca obyek saka stream input obyek. Pungkasan, kita bakal nyithak data saka obyek Person menyang console.

Kesimpulan

Ing artikel iki, kita sinau babagan macem-macem cara nggawe obyek ing basa Jawa. Kaping pisanan, kita ndeleng nggawe obyek nggunakake tembung kunci anyar , yaiku cara sing paling umum. Kita banjur sinau cara newInstance() saka kelas Kelas lan Konstruktor , yaiku cara populer liyane kanggo nggawe obyek. Kita banjur nggunakake metode klon () , sing nggawe salinan cethek saka obyek sing ana tinimbang nggawe obyek anyar. Pungkasan, kita nggunakake konsep serialisasi obyek lan deserialization kanggo nggawe obyek ing Jawa.

String to Int in Java - carane ngowahi string dadi integer

Source: FreeCodeCamp Dina iki sampeyan bakal sinau carane ngowahi string menyang integer ing Jawa nggunakake rong cara saka kelas Integer - parseInt () lan valueOf () . Iki bakal mbantu sampeyan nalika nindakake operasi matematika nggunakake nilai variabel senar. Ngopi #174.  Beda Cara Nggawe Obyek ing Jawa.String kanggo Int ing Jawa - Cara Ngonversi String dadi Integer - 2

Carane ngowahi string menyang integer ing Jawa nggunakake Integer.parseInt

Opsi iki nganggep yen metode parseInt () njupuk string kanggo ngowahi dadi integer minangka parameter:
Integer.parseInt(string_varaible)
Sadurunge ndeleng conto panggunaane, ayo ndeleng apa sing kedadeyan nalika sampeyan nambahake nilai string lan integer tanpa konversi:
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        System.out.println(age + 20);
        // 1020
    }
}
Ing kode iki, kita wis nggawe umur variabel kanthi nilai senar "10". Nalika kita nambahake angka 20 menyang nilai integer, kita salah nampa 1020 tinimbang jawaban sing bener 30. Iki bisa didandani nggunakake metode parseInt () :
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        int age_to_int = Integer.parseInt(age);

        System.out.println(age_to_int + 20);
        // 30
    }
}
Kene, kanggo ngowahi variabel umur kanggo integer, kita liwati minangka parameter kanggo parseInt () cara - Integer.parseInt (umur) - lan disimpen ing variabel disebut age_to_int . Saiki yen ditambahake menyang integer liyane, kita entuk tambahan sing bener: age_to_int + 20 .

Carane ngowahi string menyang integer ing Jawa nggunakake Integer.valueOf

Metode valueOf() padha karo metode parseInt() . Dibutuhake minangka parameter string sing kudu diowahi dadi integer. Iki contone:
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        int age_to_int = Integer.valueOf(age);

        System.out.println(age_to_int + 20);
        // 30
    }
}
Ing kode ing ndhuwur sampeyan bisa ndeleng bab sing padha kaya ing bagean sadurunge:
  • We liwati string minangka parameter kanggo valueOf() : Integer.valueOf(age) . Iki disimpen ing variabel sing diarani age_to_int .
  • Kita banjur nambahake 10 menyang variabel sing digawe: age_to_int + 20 . Asil kasebut 30 tinimbang 1020.

Kesimpulan

Ing artikel iki, kita rembugan ngonversi string menyang integer ing Jawa. Kanggo ngowahi string menyang integer, rong cara saka kelas Integer digunakake - parseInt () lan valueOf () . Sugeng coding!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION