Generik Java adalah penting untuk menulis kod yang selamat jenis dan boleh digunakan semula. Ia membolehkan penciptaan kelas, kaedah dan antara muka yang boleh mengendalikan pelbagai jenis data, meningkatkan keteguhan dan fleksibiliti kod. Artikel ini menggambarkan generik menggunakan contoh troli beli-belah yang menyimpan jenis buah-buahan yang berbeza, diwakili oleh kelas tersuai.
Mengapa Generik? Had Tatasusunan
Tatasusunan Java adalah khusus jenis; tatasusunan satu jenis tidak boleh menyimpan elemen lain:
String[] fruits = new String[3]; fruits[0] = "Apple"; // Correct fruits[1] = 123; // Compile-time error
Keselamatan jenis ini bermanfaat, tetapi tatasusunan kurang fleksibiliti. Mencipta troli beli-belah untuk pelbagai buah-buahan (pisang, epal, anggur) menggunakan tatasusunan memerlukan pengendalian jenis manual yang menyusahkan.
Generik menawarkan penyelesaian: struktur data yang fleksibel namun selamat jenis. Mari kita bina ini, bermula dengan kelas Buah-buahan tersuai.
Langkah 1: Menentukan Kelas Buah
Kami akan mentakrifkan kelas Fruit
asas dan subkelas untuk Pisang, Epal dan Anggur, masing-masing dengan sifat unik.
// Base class for fruits public abstract class Fruit { private String name; public Fruit(String name) { this.name = name; } public String getName() { return name; } } // Specific fruit classes public class Banana extends Fruit { public Banana() { super("Banana"); } } public class Apple extends Fruit { public Apple() { super("Apple"); } } public class Grape extends Fruit { public Grape() { super("Grape"); } }
Rasional Kelas Abstrak
Kelas Fruit
adalah abstrak untuk menyediakan kefungsian biasa (seperti name
) dan mewujudkan struktur warisan yang jelas. Antara muka mungkin lebih baik jika berbilang warisan atau kontrak yang lebih mudah diperlukan. Ini memerlukan perbincangan lanjut!
Langkah 2: Mencipta Troli Beli-belah Generik
Sekarang, mari kita bina kelas ShoppingCart
menggunakan generik untuk memegang sebarang jenis buah sambil mengekalkan keselamatan jenis.
import java.util.ArrayList; public class ShoppingCart<T extends Fruit> { // Restricts to Fruit and subclasses private ArrayList<T> items = new ArrayList<>(); public void addItem(T item) { items.add(item); } public void removeItem(T item) { items.remove(item); } public void displayItems() { for (T item : items) { System.out.println(item.getName()); } } }
T extends Fruit
memastikan hanya Fruit
atau keturunannya boleh ditambah, mengelakkan ralat jenis.
Langkah 3: Menggunakan Troli Beli-belah
Mari kita lihat cara menggunakan ShoppingCart
dengan objek buah-buahan kita.
public class Main { public static void main(String[] args) { ShoppingCart<Fruit> fruitCart = new ShoppingCart<>(); // Adding fruits fruitCart.addItem(new Banana()); fruitCart.addItem(new Apple()); fruitCart.addItem(new Grape()); // Displaying contents System.out.println("Shopping Cart:"); fruitCart.displayItems(); // Removing an item fruitCart.removeItem(new Apple()); // Removal based on object equality (equals() can be overridden) System.out.println("\nAfter removing Apple:"); fruitCart.displayItems(); } }
Kelebihan Generik
-
Keselamatan Jenis: Mengehadkan
T
menghalang penambahan jenis yang salah. -
Fleksibiliti: Troli mengendalikan sebarang jenis
Fruit
, menggalakkan kebolehgunaan semula. - Tiada Penghantaran: Mendapatkan semula item tidak memerlukan penghantaran, mengurangkan ralat masa jalan.
Kesimpulan
Fruit
hierarki dan ShoppingCart
contoh ini menunjukkan kuasa dan fleksibiliti generik Java. Generik meningkatkan kejelasan dan kebolehselenggaraan kod, menjadikannya tidak ternilai untuk pembangun Java di semua peringkat.
? Rujukan
- Dokumentasi Java Generics
- Java Berkesan (Joshua Bloch)
? Berhubung Dengan Saya
- GitHub
- Portfolio
Atas ialah kandungan terperinci Memahami Generik dalam Java: Contoh Troli Beli-belah dengan Kelas Tersuai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma