Pertama, mari kita bicara secara singkat tentang definisi tiga fitur utamanya:
Encapsulation: Menyembunyikan properti dan detail implementasi objek, hanya memaparkan antarmuka ke dunia luar, dan mengontrol tingkat akses properti membaca dan memodifikasi dalam program. Menggabungkan data dan perilaku yang diabstraksikan (atau fungsi) untuk membentuk keseluruhan organik, yaitu, secara organik menggabungkan data dengan kode sumber data operasi untuk membentuk "kelas", di mana data dan fungsi adalah anggota kelas. Tujuan enkapsulasi adalah untuk meningkatkan keamanan dan menyederhanakan pemrograman. Pengguna tidak harus memahami detail implementasi spesifik, tetapi cukup gunakan anggota kelas melalui antarmuka eksternal, izin akses khusus. Persyaratan dasar untuk enkapsulasi adalah: memprivatisasi semua atribut, menyediakan metode pengambil dan setter untuk setiap atribut. Jika ada konstruktor dengan parameter, maka Anda harus menulis konstruktor tanpa parameter. Selama pengembangan, Anda sering harus menguji kelas yang sudah tertulis, jadi kadang -kadang Anda dapat menulis ulang metode Tostring, tetapi ini tidak perlu.
Warisan: Mengaktifkan kembali kode melalui warisan. Semua kelas di Java diperoleh secara langsung atau tidak langsung mewarisi kelas Java.lang.Object. Kelas yang diwariskan disebut subkelas, dan kelas yang diwariskan disebut kelas induk. Subkelas tidak dapat mewarisi variabel dan metode anggota di kelas induk yang izin aksesnya bersifat pribadi. Subkelas dapat mengganti metode kelas induk dan variabel anggota nama dengan nama yang sama dengan kelas induk. Namun, Java tidak mendukung banyak warisan, yaitu kemampuan kelas untuk berasal dari beberapa superclass. Dalam pengembangan, hubungan warisan diminimalkan, dan ini dilakukan untuk mengurangi tingkat kopling program.
Polimorfisme: Polimorfisme dibagi menjadi polimorfisme waktu desain dan polimorfisme run-time. Misalnya, kelebihan beban juga disebut polimorfisme waktu desain. Untuk metode utama atau warisan, sistem runtime Java memutuskan metode mana yang akan dihubungi berdasarkan jenis instance yang menyebut metode ini, yang disebut polimorfisme run-time. Singkatnya, karakteristik khas dari desain yang berorientasi objek adalah pewarisan, enkapsulasi dan polimorfisme, yang juga merupakan kunci untuk popularitas berorientasi objek.
Kemasan
Nilai default hak akses untuk atribut kelas di Java bukanlah pribadi. Jika Anda ingin menyembunyikan metode atribut ini, Anda dapat menambahkan pengubah pribadi untuk membatasi akses ke kelas saja.
Untuk atribut pribadi di kelas, sepasang metode (getxxx, setxxx ()) harus diberikan untuk mengakses atribut pribadi untuk memastikan operasi dan keamanan atribut pribadi.
Enkapsulasi metode, pengungkapan pengungkapan, tersembunyi tersembunyi.
Warisan Java
Warisan adalah abstrak berbagai jenis hal dengan karakteristik umum ke dalam satu kelas.
Warisan di Java harus menggunakan kata kunci Extends, dan jari tengah Java memungkinkan warisan tunggal, yaitu, kelas hanya dapat memiliki satu kelas induk.
Konstruktor tidak dapat diwariskan .
Mengesampingkan metode java
Ketika ada metode dalam subkelas yang mengembalikan daftar parameter yang sama dengan nama yang sama yang dapat diakses di kelas induk, metode yang diwarisi dari kelas induk akan ditimpa.
kata kunci super ()
Super () berarti bahwa ketika konstruktor subkelas memanggil konstruktor kelas induk, super () hanya dapat berada dalam kalimat pertama konstruktor.
Polimorfisme di Java
Ada dua mekanisme polimorfik: polimorfisme waktu kompilasi dan polimorfisme run-time
1. Metode Overloading: Overloading mengacu pada beberapa metode dengan nama yang sama di kelas yang sama, tetapi metode ini memiliki parameter yang berbeda. , sehingga Anda dapat menentukan metode mana yang akan dihubungi pada waktu kompilasi, yang merupakan polimorfisme waktu kompilasi.
2. Metode Override: Subkelas dapat mengganti metode kelas induk, sehingga metode yang sama akan memiliki manifestasi yang berbeda dalam kelas induk dan subkelas. Dalam bahasa Java, variabel referensi kelas dasar dapat menunjuk tidak hanya pada objek instance dari kelas dasar, tetapi juga pada objek instance dari subkelas. Demikian pula, variabel referensi dalam antarmuka juga dapat menunjuk pada objek instance dari kelas implementasinya.
Public Class A {public String show (d obj) {return ("a dan d");} public string show (a obj) {return ("a dan a");}} kelas b memperluas a {public string show (b obj) {return ("b dan b");} public string show (a obj) {"b dan a" class "; B {} tes kelas publik {public static void main (string [] args) {a a1 = new a (); a a2 = new b (); b b = new b (); c c = new c (); d d = new d (); System.out.println ("1--" + a1.show (b)); System.out.println ("2--" + a1.show (c)); System.out.println ("3--" + a1.show (d)); System.out.println ("4--" + a2.show (b)); a2.show (c)); System.out.println ("6--" + a2.show (d)); System.out.println ("7--" + b.show (b)); System.out.println ("8--" + B.Show (c)); System.out.println ("9-" + B.Show (d)); }} 1-A dan A2-A dan A3-A dan D4-B dan A5-B dan A6-A dan D7-B dan B8-B dan B9-A dan D Ketika objek superclass mengacu pada variabel untuk merujuk ke objek subkelas, jenis objek yang direferensikan daripada jenis variabel yang dirujuk menentukan metode anggota yang dipanggil, tetapi metode yang dipanggil harus didefinisikan dalam superclass, yaitu metode yang dicakup oleh subkelas.
Mari kita gunakan contoh untuk menggambarkan makna kalimat ini: a2.show (b);
Di sini A2 adalah variabel referensi, dari Tipe A, yang mengacu pada objek B. Oleh karena itu, sesuai dengan kalimat di atas, itu berarti bahwa ada B untuk memutuskan metode siapa yang akan dihubungi, jadi A2.Show (b) harus memanggil Show (B OBJ) di B, dan hasilnya harus "B dan B", tetapi mengapa itu berbeda dari hasil lari sebelumnya? Di sini kita mengabaikan kalimat berikut "tetapi metode yang disebut di sini harus didefinisikan dalam superclass", jadi apakah menunjukkan (b obj) ada di kelas A? Itu tidak ada sama sekali! Jadi kalimat ini tidak berlaku di sini? Jadi, apakah kalimat ini salah? TIDAK! Bahkan, kalimat ini juga menyiratkan kalimat ini: masih perlu dikonfirmasi sesuai dengan prioritas metode panggilan dalam rantai warisan. Itulah mengapa ia menemukan Show (A OBJ) di Kelas A. Pada saat yang sama, karena B mengesampingkan metode ini, ia menyebut metode di Kelas B, jika tidak, metode di Kelas A akan dipanggil.
Di atas adalah pemahaman tentang tiga fitur utama enkapsulasi, warisan, dan polimorfisme yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!