Apa itu berorientasi objek?
Objek objek, oriendted ... berorientasi, pemrograman pemrograman
Berorientasi objek berarti menggunakan objek untuk pemrograman, disingkat OOP.
Perbandingan antara SP dan OOP
Tiga prinsip utama enkapsulasi yang berorientasi objek dan polimorfisme warisan
Obyek
Objek adalah bagian inti dari pemrograman yang berorientasi objek, mereka adalah entitas spesifik aktual dengan keadaan dan perilaku yang jelas;
Objek sebenarnya adalah enkapsulasi "data" dan "fungsi", di mana:
Data mewakili statusnya sendiri, juga dikenal sebagai "atribut" atau "data anggota";
Fungsi mewakili fungsi mereka sendiri, juga dikenal sebagai "metode" atau "fungsi anggota".
baik
Untuk lebih memahami dunia, orang membagi sesuatu (objek) dalam kehidupan nyata ke dalam kategori;
Hal -hal dalam kategori yang sama selalu memiliki beberapa kesamaan;
Kelas mendefinisikan entitas dengan karakteristik dan perilaku yang sama;
Kelas adalah kumpulan kelompok objek dengan sifat dan perilaku yang sama.
milik
Karakteristik hal -hal diwakili oleh variabel di kelas;
Setiap properti dari setiap objek memiliki nilai spesifiknya;
Nama atribut dibagikan oleh semua objek kelas;
Fitur yang dimiliki oleh objek atau entitas disebut atribut saat diwakili dalam kelas
metode
Perilaku dan tindakan berbagai hal diwakili oleh fungsi di kelas;
Setiap objek memiliki tindakan dan perilaku yang sama;
Tindakan yang dilakukan oleh suatu objek direpresentasikan sebagai metode di kelas.
Perbedaan antara kelas dan objek
Kelas adalah "templat" atau "prototipe" yang digunakan untuk menggambarkan entitas;
Objek adalah entitas aktual, dan setiap objek adalah instance konkret dari kelas;
Kelas digunakan untuk mendefinisikan semua sifat dan metode objek, dan semua objek dari kelas yang sama memiliki karakteristik dan operasi yang sama;
Kelas dapat dipahami sebagai cetakan yang menghasilkan produk, dan objeknya adalah produk yang diproduksi berdasarkan cetakan ini.
Kelas dan struktur
Kemasan
Kemas beberapa hal bersama -sama dan sajikan dalam bentuk lengkap baru;
Cara untuk menangani atribut, metode, atau detail implementasi tersembunyi disebut enkapsulasi;
Encapsulation sebenarnya secara selektif memaparkan atau menyembunyikan informasi tertentu, yang memecahkan masalah keamanan data.
mewarisi
Warisan adalah fitur menggunakan kembali kelas yang ada untuk menghasilkan kelas baru;
Dalam istilah awam, ini adalah proses pembuatan kelas baru (kelas subkelas atau turunan) dari kelas yang ada (mis., Kelas induk atau kelas dasar);
Dalam kehidupan nyata, warisan dapat mencapai tujuan penggunaan kembali properti, sementara di Java, warisan dapat membuat kode kembali.
Polimorfik
Polimorfisme mengacu pada berbagai implementasi fungsi yang sama di kelas yang berbeda;
Keuntungan dari polimorfisme adalah membuat kelas lebih fleksibel dan lebih mudah untuk diperluas.
Ada juga "abstrak" yang harus saya bicarakan di sini
abstrak
Proses mengklasifikasikan objek yang sama atau serupa ke dalam kategori yang sama adalah abstraksi, jadi abstraksi adalah metode menganalisis masalah;
Prinsip -prinsip dasar abstraksi:
Hanya peduli dengan masalah utama, bukan masalah sekunder;
Hanya peduli dengan kontradiksi utama, bukan kontradiksi sekunder;
Hanya peduli tentang hal yang sama, bukan hal yang berbeda;
Peduli tentang apa masalahnya dan apa yang bisa dicapai, tetapi tidak bagaimana mencapainya.
Proses abstrak sebenarnya adalah ide inti dari pemrograman yang berorientasi objek.
Menentukan kelas di Java
Buat objek di java
Sintaks untuk membuat objek
Mirip dengan array, objek juga merujuk pada tipe data, dan hanya dapat mengalokasikan memori dari tumpukan menggunakan operator baru;
Sintaks umum untuk membuat objek:
Nama Referensi Nama Kelas = Nama kelas baru ();
Menggunakan kelas yang sudah ditentukan, proses pembuatan objek di kelas itu disebut "instance".
Operator Anggota "."
Hanya dengan instantiasi objek kelas pertama dapat anggota (properti dan metode) diakses di kelas;
Menggunakan operator anggota (.) Untuk mengakses properti anggota atau metode anggota;
Sintaks umum adalah:
Nama Objek. Nama anggota seperti:
std.age = 18; // Tetapkan nilai ke atribut anggota std.dining (); // Metode Panggilan Anggota
Izin Akses: Publik dan Pribadi
Anggota struktur dalam bahasa C dapat diakses dari mana saja, yang akan meninggalkan bahaya tersembunyi yang besar bagi keamanan data;
Untuk menghindari korupsi data yang disebabkan oleh mengakses langsung anggota kelas dari luar kelas, Java menetapkan kendala pada akses ke anggota kelas;
Kata kunci publik dan pribadi adalah pengubah akses untuk menunjukkan apakah anggota dapat diakses dari luar kelas;
Anggota modifikasi publik dapat diakses di mana saja tanpa batasan apa pun;
Anggota yang dimodifikasi oleh pribadi hanya dapat diakses oleh anggota lain di kelas ini, dan tidak dapat diakses dari luar kelas.
Tidak dapat mengakses anggota pribadi dari luar kelas;
Anggota pribadi dari kelas lain juga disembunyikan dari kelas saat ini.
Contoh izin akses
class student {private string name; // Nama, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, pribadi, akses langsung dari luar kelas; // Berat, pribadi, akses langsung dari luar kelas // Metode makan, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, Publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik, publik public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, //The walk Metode adalah anggota internal kelas, dan Anda dapat secara langsung mengakses anggota pribadi kelas ini}} tes kelas publik {public static void main (string [] args) {student std = new student (); // instantiate objek siswa std.age = 18; // Cobalah untuk mengakses anggota pribadi dari luar kelas, kesalahan akan dilaporkan std.dining (); // Terima akses ke anggota publik}}
Izin akses (lanjutan)
Menambahkan pengubah akses kadang -kadang dapat menyebabkan ketidaknyamanan mengoperasikan data, tetapi dapat memastikan keamanan data sebagian besar;
Secara umum, kami menyatakan atribut anggota sebagai metode pribadi dan anggota sebagai publik, tetapi melakukan hal itu tidak mutlak;
Kadang -kadang, beberapa anggota data swasta mungkin perlu dioperasikan di luar kelas, sehingga metode publik dapat ditambahkan, dan metode ini dapat digunakan untuk mengoperasikan data pribadi untuk menghindari korupsi data yang disebabkan oleh kesalahan operasi di luar kelas;
Karena metode utama harus dipanggil oleh mesin virtual di luar kelas, metode utama harus dinyatakan publik.
Misalnya: Ubah kelas siswa
class student {// Tentukan nama string pribadi kelas siswa; // Nama, private private int usia; // Umur, berat float pribadi pribadi; // Berat, public void private setName (nama string) {// Metode untuk menetapkan nilai ke nama, publik this.name = name; } public void setage (int a) {// metode untuk menetapkan nilai ke usia, usia publik = a; } public void setWeight (float w) {// metode untuk menetapkan nilai ke berat, berat publik = w; } public void display () {// Metode untuk mencetak semua informasi adalah sistem yang dimiliki publik.out.println ("Name:" + Name + ", usia:" + usia + ", berat:" + berat); } public void Dining () {...} // Metode untuk makan, publik, kode sedikit void walk () {...} // Metode untuk berjalan, publik, kode sedikit} tes kelas publik {public static void main (string [] args) {student std = baru siswa (); // instantiate objek kelas siswa std.setname ("Zhang San"); // Tetapkan nama std.setage (18); // tetapkan std.setweight (55); // Tetapkan std.dining () ke berat; // panggil metode makan std.display (); // Cetak informasi}} Inisialisasi Objek
Dalam contoh di atas, Anda hanya dapat menetapkan nilai ke anggota data satu per satu. Jika Anda ingin menginisialisasi atribut anggota saat instantiasi objek, Anda menggunakan metode konstruksi;
Konstruktor adalah metode anggota khusus, yang memiliki nama yang sama dengan kelas dan secara otomatis dipanggil oleh mesin virtual ketika objek dipakai;
Harap dicatat: Konstruktor tidak memiliki tipe nilai pengembalian dan tidak dapat memiliki nilai pengembalian.
Contoh metode konstruksi:
/ *Tentukan kelas ConstructorDemo dan uji metode konstruktor */ kelas konstruktordemo {/ *konstruktor, nama metode persis sama dengan nama kelas, tidak perlu menentukan jenis nilai pengembalian, juga tidak ada nilai pengembalian */ public constructordemo () {System.out.println ("Ini adalah konstruktor */ public ConstructorDemo () {System.out.println (" Ini adalah konstruktor */ public ConstructoreMo () {System.out.println ("Ini adalah konstruktor *); }} /*Kelas uji, digunakan untuk mengakomodasi metode utama, umumnya menyatakan kelas yang berisi metode utama sebagai tes publik* / kelas publik { /*metode utama, entri program* / public static void main (string [] args) { /*instantiate objek kelas konstruktordemo* / construcordemo cd = new construcehemo (); }} // Ini akan menghasilkan "Ini adalah metode konstruktor" Metode konstruksi
Justru karena metode konstruktor secara otomatis dipanggil saat instantiasi objek, sehingga metode konstruktor umumnya digunakan untuk mengalokasikan sumber daya ke anggota data atau menginisialisasi anggota data;
Bentuk Umum Metode Konstruksi:
Nama kelas izin akses (daftar parameter formal) {
Badan Metode
}
Karena konstruktor dipanggil oleh mesin virtual, konstruktor umumnya harus didefinisikan sebagai publik.
Misalnya: Menambahkan konstruktor ke kelas siswa
class student {// Tentukan nama string pribadi kelas siswa; // Nama, private private int usia; // Umur, berat float pribadi pribadi; // Bobot, metode konstruksi pribadi //, tetapkan nilai ke anggota data sesuai dengan parameter yang dilewati siswa publik (String n, int a, float w) {// Tetapkan nilai awal untuk setiap nama anggota data = n; usia = a; berat = w; } public void setName(String n) {...} //Assign values to name, public, code slightly public void setAge(int a) {...} //Assign values to age, public, code slightly public void setWeight(float w) {…} //Methods to assign weight, public, code slightly public void display() {…} //Methods to print out all information, public, code slightly public void dining() {…} //Methods to Eat, Public, Code sedikit void walk () {...} // Metode untuk berjalan, publik, kode sedikit void walk () {...} // Metode untuk berjalan, publik, kode sedikit tes kelas publik {public static void main (string [] args) {// Gunakan metode konstruksi untuk menentukan nilai awal untuk anggota data Student = New Student ("Zhang (" Zhang ("Zhang (" Zhang ("Zhang (" Zhang ("Zhang (" Zhang ", 18); std.display (); // cetak informasi}}
Metode pembuatan (lanjutan)
Setiap objek harus menjalankan konstruktor saat dihasilkan, dan hanya dapat dieksekusi sekali;
Jika panggilan metode konstruktor gagal, objek tidak dapat dibuat;
Konstruktor tidak dapat dipanggil secara langsung secara eksplisit;
Tanpa konstruktor yang ditentukan, kelas akan secara otomatis menghasilkan konstruktor default tanpa parameter, yang tidak melakukan apa -apa;
Setelah konstruktor didefinisikan secara eksplisit, konstruktor default menghilang secara otomatis. Oleh karena itu, dua metode konstruksi umumnya didefinisikan: tidak ada parameter dan tidak ada parameter.
Meringkaskan