Rumah >Java >javaTutorial >Menyahmistifikasikan prinsip mendalam pengkapsulan dan pewarisan Java: meneroka teras pengaturcaraan berorientasikan objek
editor php Baicao membawakan anda artikel teras meneroka pengaturcaraan berorientasikan objek pada prinsip mendalam pengkapsulan dan pewarisan Java. Dalam artikel ini, kami akan memperkenalkan peranan dan prinsip pengkapsulan dan pewarisan dalam Java, dan meneroka cara ia boleh meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod. Sama ada anda seorang pemula atau pembangun yang berpengalaman, artikel ini akan memberikan anda penjelasan yang jelas dan contoh aplikasi praktikal untuk membantu anda memahami dengan lebih baik dan menggunakan pengkapsulan dan warisan dalam Java. Mari kita selami teras pengaturcaraan berorientasikan objek Java!
Encapsulation ialah kaedah menyembunyikan butiran pelaksanaan dalaman kelas. Ia melindungi integriti data dengan merangkum data dan operasi dalam unit (kelas). Di Java, enkapsulasi dicapai melalui pengubah suai akses seperti peribadi, dilindungi dan awam.
Kebaikan enkapsulasi termasuk:
Warisan
Pewarisan ialah keupayaan yang membolehkan satu kelas (subclass) mewarisi sifat dan kaedah kelas lain (kelas induk). Ini menyediakan penggunaan semula kod dan membantu mencipta struktur kelas hierarki. Di Jawa, warisan menggunakan kata kunci extends.
Subkelas mewarisi aspek kelas induk berikut:
Faedah harta pusaka termasuklah:
Interaksi pengkapsulan dan pewarisan
Enkapsulasi dan pewarisan berinteraksi dalam OOP. Enkapsulasi melindungi pelaksanaan dalaman kelas, manakala warisan membenarkan kelas kanak-kanak mengakses ahli dilindungi dan awam kelas induk. Ini membolehkan subkelas untuk menggunakan semula dan melanjutkan fungsi kelas induk sambil mengekalkan penyembunyian data dan organisasi kod.
Di Java, pengubah suai akses digabungkan dengan peraturan warisan untuk mengawal akses kelas anak kepada ahli kelas induk:
Contoh
Pertimbangkan coretan kod Java berikut, menggambarkan prinsip pengkapsulan dan pewarisan:
// Person 类(父类) class Person { private String name; protected int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } protected void printAge() { System.out.println("Age: " + age); } } // Student 类(子类)继承 Person 类 class Student extends Person { private int studentNumber; public Student(String name, int age, int studentNumber) { super(name, age);// 调用父类构造函数 this.studentNumber = studentNumber; } public int getStudentNumber() { return studentNumber; } @Override protected void printAge() { System.out.println("Student"s age: " + age); } } public class Main { public static void main(String[] args) { Student student = new Student("John Doe", 20, 12345); System.out.println("Student name: " + student.getName());// public 方法,可从子类访问 student.printAge();// protected 方法,可从子类访问 // System.out.println(student.age);// 无法访问 private 字段 } }
Dalam contoh ini, kelas Person merangkum data nama dan umur serta mengawal akses kepada mereka melalui pengubah suai akses. Kelas Pelajar mewarisi kelas Orang dan mempunyai akses kepada medan umur dilindungi dan kaedah printAge(). Pada masa yang sama, kelas Pelajar mentakrifkan studentNumber medan persendirian, yang hanya boleh dilihat dalam dirinya sendiri.
Atas ialah kandungan terperinci Menyahmistifikasikan prinsip mendalam pengkapsulan dan pewarisan Java: meneroka teras pengaturcaraan berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!