Menu
CoddyTech

Kelas Object

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 24 dari 87.

Di Java, setiap class yang kamu buat otomatis mewarisi class khusus bernama Object. Meskipun kamu tidak menulis extends di mana pun, class-mu tetap merupakan turunan dari Object. Ini menjadikan Object sebagai akar dari seluruh hierarki class.

public class Person {
    // Ini secara implisit mewarisi Object
}

// Setara dengan:
public class Person extends Object {
}

Karena setiap class mewarisi dari Object, setiap object di Java dapat menggunakan beberapa method bawaan. Method yang paling umum digunakan meliputi:

MethodTujuan
toString()Mengembalikan representasi string dari object
equals(Object obj)Membandingkan kesetaraan dua object
hashCode()Mengembalikan nilai kode hash untuk object
getClass()Mengembalikan class saat runtime dari object

Secara default, method ini memiliki implementasi generik. Misalnya, toString() mengembalikan nama class diikuti @ dan kode hash object dalam heksadesimal, yang tidak terlalu berguna:

Person p = new Person();
System.out.println(p.toString());  // output: Person@1a2b3c4d

Inilah alasan kamu sering meng-override method ini di class buatanmu sendiri untuk memberikan perilaku yang bermakna. Memahami bahwa Object adalah parent universal membantu menjelaskan mengapa kamu dapat menyimpan object apa pun dalam variabel Object dan mengapa method tertentu tersedia pada setiap object yang kamu buat.

challenge icon

Tantangan

Mudah

Mari kita pelajari bagaimana class Object berperan sebagai induk universal semua class Java dengan membuat sistem inventaris gadget sederhana yang menunjukkan method turunan dari Object.

Kamu akan membuat tiga file untuk mengatur kodemu:

  • Gadget.java: Buat class yang merepresentasikan gadget elektronik. Class-mu harus memiliki:
    • Field private untuk name (String) dan year (int)
    • Konstruktor yang menginisialisasi kedua field
    • Method getter getName() dan getYear()
    Jangan override method apa pun dari Object. Kita ingin melihat perilaku default terlebih dahulu.
  • Smartphone.java: Buat subclass yang mewarisi Gadget dan menambahkan fitur khusus smartphone:
    • Field private untuk brand (String)
    • Konstruktor yang menerima name, year, dan brand. Gunakan super(name, year) untuk bagian induk
    • Method getBrand() yang mengembalikan brand
    • Override method toString() agar mengembalikan: Smartphone: [brand] [name] ([year])
  • Main.java: Tunjukkan perbedaan antara method Object default dan yang di-override. Kamu akan menerima tiga input: nama gadget, year, dan brand. Buat Gadget dan Smartphone dengan name dan year yang sama (serta brand untuk smartphone), lalu:
    • Cetak nama class gadget menggunakan getClass().getSimpleName()
    • Cetak apakah toString() default gadget berisi simbol "@" (cetak true atau false)
    • Cetak smartphone menggunakan toString() yang sudah di-override

Kamu akan menerima tiga input: nama gadget/smartphone (String), year (int), dan brand (String).

Tantangan ini menunjukkan mengapa meng-override method Object itu penting. toString() default memberi kamu sesuatu seperti Gadget@1a2b3c, sedangkan versi kustommu memberikan informasi yang bermakna!

Coba sendiri

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Baca input
        String name = scanner.nextLine();
        int year = scanner.nextInt();
        scanner.nextLine(); // habiskan karakter baris baru
        String brand = scanner.nextLine();
        
        // TODO: Buat object Gadget dengan name dan year
        
        // TODO: Buat object Smartphone dengan name, year, dan brand
        
        // TODO: Cetak nama class gadget menggunakan getClass().getSimpleName()
        
        // TODO: Cetak apakah toString() milik gadget berisi "@" (true atau false)
        
        // TODO: Cetak smartphone (menggunakan toString() yang ditimpa)
        
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Java online