JavaRush /Java Blog /Random-ID /Rehat kopi #174. Berbagai Cara Membuat Objek di Java.Stri...

Rehat kopi #174. Berbagai Cara Membuat Objek di Java.String ke Int di Java - Cara Mengonversi String ke Integer

Dipublikasikan di grup Random-ID

Berbagai cara untuk membuat objek di Java

Sumber: Medium Dalam tutorial ini, kita akan mempelajari berbagai cara membuat objek di Java. Rehat kopi #174.  Berbagai cara membuat objek di Java.String ke Int di Java - Cara mengubah string menjadi integer - 1Objek Java adalah turunan dari kelas Java. Setiap objek memiliki status, perilaku, dan pengidentifikasi. Bidang (variabel) menyimpan keadaan suatu objek, sedangkan metode (fungsi) menunjukkan tindakan suatu objek. Kelas berfungsi sebagai “cetak biru” tempat instance objek dibuat saat runtime.

Membuat Objek di Java

Pembuatan objek adalah proses mengalokasikan memori untuk menyimpan data dalam bidang kelas (disebut juga variabel). Proses ini sering disebut dengan pembuatan instance kelas. Ada empat cara berbeda untuk membuat objek di Java:
  1. menggunakan kata kunci baru
  2. metode instance baru()
  3. klon() metode
  4. melakukan deserialisasi suatu objek
Sekarang mari kita lihat masing-masing metode yang disebutkan secara mendetail.

Kata kunci baru

Ini adalah cara paling umum untuk membuat objek di Java. Kata kunci new membuat sebuah instance dari suatu kelas dengan mengalokasikan memori untuk instance baru dari tipe yang ditentukan. Setelah new muncul konstruktor - metode khusus yang bertanggung jawab untuk membuat objek dan menginisialisasi bidang objek yang dibuat. Sebuah objek dibuat dengan operator baru dan diinisialisasi dengan konstruktor. Berikut ini contoh pembuatan objek Java dengan operator baru :
Date today = new Date();
Ekspresi ini menghasilkan objek Date baru ( Date adalah kelas di dalam paket java.util ). Klausa tunggal dalam kode ini melakukan tiga operasi: deklarasi, instantiasi, dan inisialisasi. Tanggal hari ini adalah deklarasi variabel yang memberi tahu kompiler bahwa hari ini akan merujuk ke objek bertipe Date . Operator baru membuat instance kelas Date (membuat objek Date baru di memori), dan Date() menginisialisasi objek tersebut. Perhatikan contoh di bawah ini:
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());
    }
}
Dari kode ini, kita membuat objek Person dengan menggunakan kata kunci new :
  • Objek p1 memanggil konstruktor non-parameter dengan nilai nama variabel disetel ke “Michael Cole” dan UID disetel ke 101.
  • Objek p2 memanggil konstruktor berparameter, yang meneruskan nilai “John Bodgan” dan 102 ke konstruktor.Nilai-nilai ini kemudian diberi nama variabel dan UID.

Menggunakan metode newInstance()

Metode newInstance() di Java digunakan untuk membuat instance objek dari kelas tertentu secara dinamis. Ada dua penggunaan standar metode newInstance() :
  • metode newInstance() dari java.lang.Class API
  • metode newInstance() dari java.lang.reflect.Constructor API

Menggunakan newInstance() dari API Kelas

Untuk membuat objek suatu kelas pada waktu proses, kita harus memanggil metode newInstance() dari API Kelas, yang mengembalikan objek kelas tersebut. Metode newInstance() pada kelas java.lang.Class tidak menggunakan parameter atau argumen apa pun dan dapat disebut sebagai konstruktor tanpa argumen untuk kelas tersebut. Mari kita lihat beberapa contoh kode untuk membuat objek kelas Person menggunakan metode newInstance() dari 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 (nama kelas yang sepenuhnya memenuhi syarat) memuat kelas bernama Person , lalu newInstance() membuat objek baru bertipe Person dan mengembalikan referensi ke sana. Sekarang, dengan menggunakan referensi Person ke p , kita dapat memanggil getters() dan setter() untuk melakukan tindakan tertentu. Tolong dicatat:
  • Pengecualian lemparan Class.forName () dan newIstance() yang harus ditangani baik menggunakan blok coba dan tangkap atau kata kunci lemparan .
  • Metode newInstance() dari Class API sudah tidak digunakan lagi sejak Java 9.

Menggunakan newInstance() dari API Konstruktor

Metode newInstance() pada kelas Konstruktor ( java.lang.reflect.Constructor ) mirip dengan metode newInstance() pada kelas Class , kecuali metode ini menerima parameter untuk konstruktor berparameter. Mari kita tunjukkan pendekatan ini dengan membuat objek kelas Person menggunakan metode newInstance() dari 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();
        }

    }
}
Pada kode di atas, pertama-tama kita perlu memuat kelas menggunakan metode Class.forName() . Selanjutnya, kita akan memanggil metode getConstructor() untuk mencocokkan tipe data dari parameter yang diteruskan. Terakhir, dalam metode newInstance() kita meneruskan parameter yang diperlukan ( null jika tidak ada argumen). Metode newInstance() akan mengembalikan objek baru dari kelas PersonTwo dengan memanggil konstruktor yang sesuai.

Menggunakan metode clone()

Metode clone() adalah bagian dari kelas Object dan digunakan untuk membuat salinan objek yang sudah ada. Itu menciptakan objek kelas tanpa memanggil konstruktor kelas apa pun. Untuk mengkloning suatu metode, kelas terkait harus mengimplementasikan antarmuka Cloneable , yang merupakan antarmuka penanda. Sekarang kita akan membuat objek dari kelas Person dan kemudian mengkloningnya ke objek lain dari 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();
        }

    }
}
Catatan. Objek yang dikloning akan mereferensikan objek asli yang sama melalui referensi p2 . Namun, objek yang dikloning akan memiliki penetapan memori terpisah. Artinya setiap perubahan yang dilakukan pada objek Person yang direferensikan oleh p2 tidak akan mengubah objek Person asli yang direferensikan oleh p1 . Hal ini karena metode clone() membuat salinan objek yang dangkal.

Menggunakan Deserialisasi Objek

Deserialisasi objek adalah proses mengekstraksi objek dari serangkaian aliran byte. Serialisasi melakukan yang sebaliknya. Tujuan utamanya adalah untuk mengambil kembali objek yang disimpan dari database/jaringan ke dalam memori. Jika kita ingin membuat serialisasi atau deserialisasi suatu objek, kita perlu mengimplementasikan antarmuka Serializable (antarmuka token). Perhatikan contoh di bawah ini:
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();
        }
    }
}
Di sini pertama-tama kita membuat serial objek Person dengan referensi p1 ke dalam file teks. Metode writeObject() akan menulis aliran byte objek ke file teks. Kemudian, dengan menggunakan deserialisasi objek, kami mengekstrak objek Person kembali ke p2 . Demikian pula, metode readObject() akan membaca objek dari aliran input objek. Terakhir, kita akan mencetak data dari objek Person ke konsol.

Kesimpulan

Pada artikel ini, kita belajar tentang berbagai cara membuat objek di Java. Pertama, kita melihat cara membuat objek menggunakan kata kunci new , yang merupakan cara paling umum. Kita kemudian mempelajari metode newInstance() dari kelas Class dan Constructor , yang merupakan cara populer lainnya untuk membuat objek. Kami kemudian menggunakan metode clone() , yang membuat salinan dangkal dari objek yang ada alih-alih membuat objek baru. Terakhir, kami menggunakan konsep serialisasi objek dan deserialisasi untuk membuat objek di Java.

String ke Int di Java - cara mengubah string menjadi integer

Sumber: FreeCodeCamp Hari ini Anda akan mempelajari cara mengonversi string menjadi integer di Java menggunakan dua metode kelas Integer - parseInt() dan valueOf() . Ini akan membantu Anda saat melakukan operasi matematika menggunakan nilai variabel string. Rehat kopi #174.  Berbagai Cara Membuat Objek di Java.String ke Int di Java - Cara Mengonversi String ke Integer - 2

Cara mengubah string menjadi integer di Java menggunakan Integer.parseInt

Opsi ini mengasumsikan bahwa metode parseInt() memerlukan string untuk dikonversi menjadi bilangan bulat sebagai parameter:
Integer.parseInt(string_varaible)
Sebelum melihat contoh penggunaannya, mari kita lihat apa yang terjadi jika Anda menambahkan nilai string dan bilangan bulat tanpa konversi apa pun:
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        System.out.println(age + 20);
        // 1020
    }
}
Dalam kode ini, kita telah membuat variabel age dengan nilai string “10”. Saat kami menambahkan angka 20 ke nilai integer, kami secara keliru menerima 1020 dan bukannya jawaban yang benar yaitu 30. Hal ini dapat diperbaiki menggunakan 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
    }
}
Di sini, untuk mengonversi variabel age menjadi bilangan bulat, kami meneruskannya sebagai parameter ke metode parseInt() - Integer.parseInt(age) - dan menyimpannya dalam variabel bernama age_to_int . Sekarang ketika ditambahkan ke bilangan bulat lain kita mendapatkan penambahan yang benar: age_to_int + 20 .

Cara mengonversi string menjadi integer di Java menggunakan Integer.valueOf

Metode valueOf() bekerja sama dengan metode parseInt() . Dibutuhkan sebagai parameter string yang perlu dikonversi menjadi bilangan bulat. Berikut ini contohnya:
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
    }
}
Pada kode di atas Anda dapat melihat hal yang sama seperti pada bagian sebelumnya:
  • Kami meneruskan string sebagai parameter ke valueOf() : Integer.valueOf(age) . Itu disimpan dalam variabel bernama age_to_int .
  • Kami kemudian menambahkan 10 ke variabel yang dibuat: age_to_int + 20 . Hasilnya adalah 30 bukannya 1020.

Kesimpulan

Pada artikel ini, kita membahas cara mengubah string menjadi bilangan bulat di Java. Untuk mengonversi string menjadi bilangan bulat, dua metode kelas Integer digunakan - parseInt() dan valueOf() . Selamat membuat kode!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION