Rumah >Java >javaTutorial >'Saya memancing, Java!': Kelas dan Objek dalam Fokus: Dari Abstraksi kepada Realiti

'Saya memancing, Java!': Kelas dan Objek dalam Fokus: Dari Abstraksi kepada Realiti

DDD
DDDasal
2025-01-10 08:36:46116semak imbas

Dalam Pengaturcaraan Berorientasikan Objek (OOP), kami berusaha untuk mewakili elemen dunia sebenar dalam program kami. Untuk melakukan ini, kita abstrak daripada objek ciri-cirinya (apa yang mereka ada) dan tingkah laku mereka (apa yang mereka lakukan), menterjemah idea-idea ini ke dalam kelas dan objek. Dengan cara ini, kita boleh merangkum keadaan dan gelagat jenis objek tertentu, memudahkan penyelenggaraan dan penggunaan semula dalam kod.

Sebagai contoh, bayangkan kita ingin mewakili pen dalam program kita. Apakah ciri-cirinya? dan apakah kelakuan mereka? Mari kita reka bentuk pen seperti berikut:

Untuk menterjemah abstraksi ini kepada kod, kami mencipta kelas yang berfungsi sebagai "acuan" atau "projek" yang menetapkan ciri dan gelagat pen. Kelas mentakrifkan apa yang setiap objek jenis ini akan ada (seperti atribut) dan boleh lakukan (seperti kaedah). Oleh itu, kelas berfungsi sebagai perwakilan abstrak, manakala objek ialah contoh konkrit/sebenar bagi kelas tersebut.

Apabila kita mencipta objek daripada kelas, ia menjadi satu tika, dengan nilai khusus diberikan kepada pembolehubah tikanya. Oleh itu, menurut Paul Deitel dan Harvey Deitel (2017, p.56): "setiap kelas baharu yang anda bangunkan menjadi jenis baharu yang boleh digunakan untuk mengisytiharkan pembolehubah dan menggambarkan objek". Dalam erti kata lain, objek berbeza dari jenis yang sama (dicipta dari kelas yang sama), seperti dalam kes "pen", boleh dibuat dan mungkin berkongsi tingkah laku yang sama, tetapi setiap satu akan mempunyai nilai yang berbeza untuk atributnya. , menjadikannya unik. Contohnya, semasa mencipta Pen A:

Dengan mengambil kira takrifan ini, apabila mereka bentuk kelas, seseorang mesti merenung tentang apa yang objek itu tahu tentang dirinya dan apa yang dilakukannya (BATES, Bert; SIERRA, Kathy, 2005). Apa yang diketahui tentang dirinya kita panggil pembolehubah contoh (keadaan) dan apa yang dilakukannya ialah kaedahnya (tingkah laku). Kelas meringkaskan struktur dan tingkah laku yang mesti ada pada objek. Apabila mencipta objek daripada kelas, ia akan dibina dengan ciri umum yang sama yang diterangkan dalam kelas, mewakili contoh konkrit konsep abstrak. Walau bagaimanapun, setiap objek akan mempunyai nilai tersendiri untuk atribut, mencerminkan ciri uniknya.

Kelas atau objek: Siapa yang dilahirkan dahulu?

Dengan memahami kelas sebagai "template" abstrak untuk pembinaan objek, ia menjadi, sebenarnya, asas, manakala objek ialah pemkonkretan model ini. Dalam erti kata lain, kelas dilahirkan dahulu dan menetapkan dirinya sebagai jenis objek. Ia tidak mungkin untuk mencipta objek tanpa kelas yang sedia ada, kerana kelas menyediakan struktur yang diperlukan untuk penciptaannya. Oleh itu, kelas mewakili titik permulaan, manakala objek adalah pewujudan projek ini menjadi contoh sebenar dan boleh digunakan dalam program.

Sekarang, kita boleh menggunakan konsep kelas dan objek secara langsung pada kod, dengan contoh praktikal cara memodelkan kereta dalam pengaturcaraan berorientasikan objek.

Pertama, kita mesti bertanya kepada diri sendiri: apa yang kita tahu tentang kereta? Apa yang ada pada setiap kereta? Ia mempunyai pintu, menggunakan alkohol, petrol atau bahan api lain, boleh automatik atau manual, mempunyai model, warna dan kapasiti penumpang. Ciri-ciri ini mewakili keadaan kereta, iaitu atribut yang mentakrifkannya.

Dan apa yang dia boleh buat? Ia boleh memecut, membrek, memulakan, berhenti, membunyikan hon, membuka pintu atau mengaktifkan lampu hadapan. Tindakan ini mewakili tingkah laku kereta, iaitu kaedah yang menerangkan perkara yang mampu dilakukannya.

Di bawah, kami mempunyai pelaksanaan Kereta sebagai kelas (Kereta), menggabungkan sifat dan kaedahnya. Mengikuti amalan yang baik, kami meletakkan semua kod dalam bahasa Inggeris:

public class Car {

    private String model;
    private String color;
    private String fuelType;
    private int passengerCapacity;

    public Car(String model, String color, String fuelType, int passengerCapacity) {
        this.model = model;
        this.color = color;
        this.fuelType = fuelType;
        this.passengerCapacity = passengerCapacity;
    }

    public void accelerate() {
        System.out.println("The car is accelerating.");
    }

    public void brake() {
        System.out.println("The car is braking.");
    }

    public void start() {
        System.out.println("The car is started.");
    }

    public void stop() {
        System.out.println("The car is stopped.");
    }

    public void honk() {
        System.out.println("The car is honking.");
    }

    public void displayDetails() {
        System.out.println("Model: " + model);
        System.out.println("Color: " + color);
        System.out.println("Fuel Type: " + fuelType);
        System.out.println("Passenger Capacity: " + passengerCapacity);
    }
}

Sekarang, mari kita cipta objek Kereta daripada kelas Kereta untuk menggunakannya dalam kod kita, dan dengan itu menunjukkan fungsi kelas sebagai model untuk membina objek dan objek sebagai versi sebenar yang dicipta daripada model itu >

public class Main {
    public static void main(String[] args) {

        Car carA = new Car("Fusca", "Blue", "Gasoline", 4);

        carA.displayDetails();

        carA.start();
        carA.accelerate();
        carA.honk();
        carA.brake();
        carA.stop();
    }
}
Dalam contoh ini, kami menunjukkan bahawa apabila kami mereka bentuk kelas, kami, sebenarnya, mencipta model abstrak yang boleh dilaksanakan dalam berbilang keadaan, masing-masing dengan datanya sendiri. Inilah intipati Pengaturcaraan Berorientasikan Objek: mengubah idea abstrak kepada perwakilan konkrit untuk aplikasi dalam kod.

Sekarang anda tahu cara kelas dan objek berfungsi, apakah objek lain yang boleh anda wakili dalam kod? Dan bagi mereka yang sudah mempunyai pengalaman luas: apakah kelas paling kreatif atau mencabar yang pernah anda buat dalam projek?

Sumber:

DEITEL, Paul; DEITEL, Harvey.

Java: cara memprogram. São Paulo: Pearson Education do Brasil, 2017.

SIERRA, Kathy; BATES, Bert.

Gunakan Kepala Anda! Java. 2ndEd. Rio de Janeiro: Editora Alta Books, 2005.

Atas ialah kandungan terperinci 'Saya memancing, Java!': Kelas dan Objek dalam Fokus: Dari Abstraksi kepada Realiti. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn