Berbagai cara untuk membuat objek di Java
Sumber:
Medium Dalam tutorial ini, kita akan mempelajari berbagai cara membuat objek di Java. Objek 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:
- menggunakan kata kunci baru
- metode instance baru()
- klon() metode
- 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;
}
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;
}
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;
}
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) {
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;
}
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.
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);
}
}
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);
}
}
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);
}
}
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!
GO TO FULL VERSION