Java ialah bahasa pengaturcaraan berorientasikan objek (Pengaturcaraan Berorientasikan Objek, OOP), dan idea pengaturcaraan berorientasikan objek ialah kaedah pembangunan perisian, terasnya ialah pengaturcaraan berasaskan objek. Pengaturcaraan berorientasikan objek boleh membantu pengaturcara mengatur dan mengurus kod dengan lebih baik, serta meningkatkan kebolehgunaan semula kod, kebolehselenggaraan dan kebolehskalaan. Dalam artikel ini, kami akan membantu pembaca lebih memahami idea OOP dan bahasa Java dengan memperkenalkan proses logik pengaturcaraan berorientasikan objek dalam pembangunan Java.
Di Java, semuanya adalah objek, jadi anda perlu mentakrifkan kelas terlebih dahulu untuk menerangkan objek. Kita boleh menggunakan kelas kata kunci dalam Java untuk mentakrifkan kelas, seperti yang ditunjukkan di bawah:
public class Person { // 属性 private String name; private int age; // 方法 public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } }
Kelas mengandungi atribut dan kaedah Atribut digunakan untuk menerangkan ciri objek, dan kaedah digunakan untuk menerangkan tingkah laku objek. Kod di atas mentakrifkan kelas Orang, yang mengandungi dua nama atribut dan umur, dan empat kaedah setName, setAge, getName dan getAge. Dalam kelas, kita boleh menggunakan kawalan akses (awam, dilindungi, peribadi) untuk mengehadkan keterlihatan sifat dan kaedah.
Apabila definisi kelas selesai, kita boleh menggunakan kelas ini dengan mencipta objek. Di Java, gunakan kata kunci baharu untuk mencipta objek, seperti yang ditunjukkan di bawah:
Person person = new Person(); person.setName("张三"); person.setAge(20); System.out.println(person.getName()); System.out.println(person.getAge());
Kod di atas mencipta objek Orang, menetapkan nama dan atribut umurnya, dan akhirnya mengeluarkan nama dan umurnya. Di sini kita dapat melihat bahawa proses mencipta objek selesai dengan memanggil pembina kelas, dan kemudian menetapkan dan mendapatkan sifat melalui kaedah objek.
Dalam pemikiran OOP, enkapsulasi dan pewarisan adalah konsep utama. Enkapsulasi merujuk kepada menyembunyikan maklumat keadaan objek di dalam objek dan hanya menyediakan antara muka terdedah untuk memastikan keselamatan dan kebolehselenggaraan objek. Warisan bermaksud bahawa kelas boleh mewarisi sifat dan kaedahnya dengan melanjutkan kelas lain, dan atas dasar ini, ia boleh menambah sifat dan kaedahnya sendiri.
Di Jawa, enkapsulasi dan pewarisan juga dilaksanakan melalui kata kunci, yang masing-masing bersifat peribadi, dilindungi dan awam. Skop ketiga-tiga kata kunci ini masing-masing adalah peribadi, dilindungi dan awam. Untuk sifat dan kaedah dalam kelas, kita boleh menggunakan tiga kata kunci ini untuk mengehadkan keterlihatannya untuk mencapai pengkapsulan. Kod sampel adalah seperti berikut:
public class Person { // 私有属性 private String name; private int age; // 公共方法 public void setInfo(String name, int age) { this.name = name; this.age = age; } public String getInfo() { return "姓名:" + this.name + ",年龄:" + this.age; } } public class Student extends Person { // 私有属性 private int id; // 公共方法 public void setId(int id) { this.id = id; } public int getId() { return this.id; } }
Dalam kod di atas, kami mentakrifkan kelas Orang dan kelas Pelajar yang mewarisi daripada kelas Orang. Kelas Orang mentakrifkan dua nama dan umur sifat peribadi, serta setInfo kaedah awam dan kaedah awam getInfo, yang digunakan untuk menetapkan dan mendapatkan atribut nama dan umur. Kelas Pelajar mewarisi semua atribut dan kaedah kelas Orang, dan menambah id atribut peribadi baharu dan dua kaedah awam setId dan getId, yang digunakan untuk menetapkan dan mendapatkan atribut nombor pelajar.
Melalui kod di atas, kita dapat melihat bahawa nama atribut dan umur dalam kelas Person ditakrifkan sebagai atribut peribadi dan hanya boleh diakses oleh kaedah di dalam kelas, manakala kaedah awam setInfo dan getInfo terdedah kepada luar untuk ditetapkan dan dapatkan nilai. Dalam kelas Pelajar, kerana ia mewarisi kelas Orang, ia juga mengandungi atribut nama dan umur Walau bagaimanapun, apabila objek kelas Pelajar menetapkan nama dan atribut umur, ia hanya boleh ditetapkan melalui kaedah setInfo yang diwarisi dan tidak boleh mengakses terus. nama dan atribut umur.
Pada masa yang sama, dalam kelas Pelajar, kami menambah id atribut peribadi baharu dan menentukan setId dan getId kaedah awam untuk menetapkan dan mendapatkan nilai atribut. Memandangkan kelas Pelajar tidak mendedahkan atribut id kepada dunia luar, kawalan aksesnya adalah peribadi. Melalui warisan, kelas Pelajar boleh menggunakan kaedah getInfo dan setInfo dalam kelas induk untuk mengakses nama atribut peribadi dan umur dalam kelas induk, dengan itu merealisasikan penggunaan semula ahli kelas induk.
Polymorphism ialah satu lagi konsep penting dalam pengaturcaraan berorientasikan objek Ini bermakna kaedah yang sama boleh menerima pelbagai bentuk parameter untuk mencapai gelagat yang berbeza. Terdapat dua cara untuk melaksanakan polimorfisme:
Dalam warisan untuk melaksanakan polimorfisme, kita boleh mengakses kaedah subkelas melalui rujukan kelas induk, dengan itu . Kod sampel adalah seperti berikut:
public class Person { public void say() { System.out.println("我是人类"); } } public class Student extends Person { public void say() { System.out.println("我是学生"); } } public class Teacher extends Person { public void say() { System.out.println("我是老师"); } } public class Test { public static void main(String[] args) { Person person = new Person(); Person student = new Student(); Person teacher = new Teacher(); person.say(); student.say(); teacher.say(); } }
Kod di atas mentakrifkan kelas Orang dan dua kelas Pelajar dan kelas Guru yang mewarisi daripada kelas Orang. Dalam kelas Ujian, kami mencipta objek Orang, objek Pelajar dan objek Guru masing-masing, dan mengeluarkan maklumat yang sepadan dengan memanggil kaedah sebut mereka. Oleh kerana kedua-dua kelas Pelajar dan kelas Guru mewarisi daripada kelas Orang dan mengatasi kaedah sebutnya, apabila kaedah sebut dipanggil, kaedah yang sepadan akan dilaksanakan mengikut jenis objek, dengan itu mencapai kesan polimorfik.
Dalam polimorfisme pelaksanaan antara muka, kita boleh mentakrifkan satu set kaedah melalui antara muka, dan kemudian membiarkan kelas pelaksanaan yang berbeza melaksanakan set kaedah ini mengikut keperluan mereka sendiri. Kod sampel adalah seperti berikut:
public interface Animal { public void eat(); } public class Cat implements Animal { public void eat() { System.out.println("猫吃鱼"); } } public class Dog implements Animal { public void eat() { System.out.println("狗吃肉"); } } public class Test { public static void main(String[] args) { Animal cat = new Cat(); Animal dog = new Dog(); cat.eat(); dog.eat(); } }
Kod di atas mentakrifkan antara muka Haiwan dan dua kelas Kucing dan Anjing yang melaksanakan antara muka ini. Dalam kelas Ujian, kami mencipta objek Cat dan objek Dog masing-masing, dan mengeluarkan maklumat yang sepadan dengan memanggil kaedah makan mereka. Oleh kerana kedua-dua kelas Cat dan kelas Anjing melaksanakan antara muka Haiwan dan mengatasi kaedah makannya, apabila kaedah makan dipanggil, kaedah yang sepadan akan dilaksanakan mengikut jenis objek, sekali gus mencapai kesan polimorfik.
Ringkasan
Melalui pengenalan proses logik di atas, kita dapat melihat bahawa idea pengaturcaraan berorientasikan objek sangat penting dalam pembangunan Java. Ia boleh membantu pengaturcara mengatur dan mengurus kod dengan lebih baik melalui enkapsulasi, pewarisan dan polimorfisme, dengan itu meningkatkan kebolehgunaan semula kod, kebolehselenggaraan dan kebolehskalaan. Bagi pembangun Java, menguasai idea pengaturcaraan berorientasikan objek akan dapat mencapai hasil pembangunan program dengan lebih baik.
Atas ialah kandungan terperinci Proses logik pengaturcaraan berorientasikan objek pembangunan Java (OOP). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!