KomputerPemrograman

PLO - apa ini? Prinsip-prinsip dasar pemrograman berorientasi obyek

Mengapa berorientasi objek pemrograman lebih disukai di sebagian besar proyek? PLO menawarkan cara yang efektif untuk menangani kompleksitas mereka. Alih-alih mempertimbangkan program sebagai urutan instruksi dieksekusi, itu merupakan sebagai sekelompok objek dengan sifat tertentu dan menghasilkan mereka dengan tindakan tertentu. Hal ini menghasilkan aplikasi yang lebih jelas, lebih handal dan legkosoprovozhdaemyh.

Prinsip-prinsip dasar object-oriented programming (OOP) terbentuk karena pembatasan telah ditemukan dalam pendekatan yang sudah ada. Di antara mereka - akses tak terbatas ke data dan sejumlah besar link, yang memberlakukan pembatasan perubahan. kesadaran mereka dan penyebab penting untuk memahami apa pemrograman OOP dan apa keuntungan.

bahasa prosedural

C, Pascal, FORTRAN, dan bahasa serupa prosedural. Artinya, masing-masing operator memberitahu komputer untuk melakukan sesuatu: untuk mendapatkan data, menjumlahkan angka, dibagi menjadi enam, hasil yang ditampilkan. bahasa prosedural Lampiran adalah daftar instruksi. Jika kecil, ada prinsip pengorganisasian lain (sering disebut sebagai paradigma a) tidak diperlukan. programmer menciptakan daftar instruksi, dan komputer mengeksekusi mereka.

Pemisahan fungsi

Ketika aplikasi menjadi daftar yang lebih rumit dari bergantian. Beberapa dapat memahami lebih dari beberapa ratus instruksi sampai mereka dikelompokkan. Untuk alasan ini, fungsi adalah cara untuk membuat aplikasi lebih dipahami penciptanya. Dalam beberapa bahasa, konsep yang sama bisa disebut subrutin atau prosedur.

Aplikasi ini dibagi menjadi fungsi, masing-masing memiliki tujuan yang jelas dan antarmuka.

Ide pemisahan prosedur dapat diperluas menjadi kelompok yang lebih besar dari objek yang disebut modul, tetapi prinsipnya adalah analog: pengelompokan komponen yang membawa daftar dokumen.

Pemisahan fungsi dan modul - salah satu batu sudut pemrograman terstruktur, yang selama beberapa dekade sampai PLO adalah pose paradigma.

masalah pemrograman terstruktur

Sebagai aplikasi menjadi lebih besar, pemrograman terstruktur mulai mengalami kesulitan. Proyek menjadi terlalu kompleks. bergeser grafis. Ini melibatkan sejumlah besar programmer. kompleksitas telah tumbuh. Biaya menembaki, jadwal itu bergeser lebih jauh, dan datanglah keruntuhan.

Analisis penyebab kegagalan mengungkapkan kekurangan paradigma prosedural. Terlepas dari seberapa baik pendekatan terstruktur pemrograman diimplementasikan, aplikasi besar menjadi terlalu rumit.

Apa penyebab dari masalah ini terkait dengan bahasa prosedural? Pertama, fungsi memiliki akses tak terbatas ke data global. Kedua, prosedur terkait dan nilai-nilai buruk mensimulasikan dunia nyata.

Jika kita mempertimbangkan masalah ini dalam konteks software akuntansi persediaan, salah satu elemen yang paling penting dari data global adalah satu set SKU. fungsi yang berbeda dapat merujuk kepada mereka untuk memasukkan nilai baru, ditampilkan, perubahan dan sebagainya. D.

akses tak terbatas

Program ini ditulis, misalnya, di C, ada dua jenis data. Lokal yang tersembunyi dalam fungsi dan prosedur lainnya tidak digunakan.

Ketika dua atau lebih fungsi memiliki akses ke data yang sama, yang terakhir harus global. Seperti, misalnya, diambil ke informasi account tentang mata pelajaran. Data global mungkin prosedur yang tersedia.

Dalam sebuah program besar, ada banyak fitur dan banyak elemen global. Masalah paradigma prosedural adalah bahwa hal itu menyebabkan sejumlah besar link potensial antara mereka.

Seperti sejumlah besar koneksi menyebabkan beberapa kesulitan. Pertama, mempersulit pemahaman tentang struktur program. Kedua, sulit untuk mengubah. Perubahan pada item data global mungkin memerlukan penyesuaian dari semua fungsi yang memiliki akses ke sana.

Misalnya, dalam program akuntansi seseorang memutuskan bahwa kode objek menyumbang harus terdiri bukan dari 5 digit, dan dari 12. Hal ini akan membutuhkan perubahan tipe data dari pendek ke panjang. Sekarang terkait dengan kode fungsi harus dimodifikasi untuk bekerja dengan format baru.

Ketika unsur-unsur yang berubah dalam aplikasi yang lebih besar, sulit untuk mengatakan apa prosedur memiliki akses kepada mereka. Tetapi bahkan jika angka ini, mengubah mereka dapat menyebabkan operasi yang salah dengan data global lainnya. Semuanya terhubung dengan segala sesuatu yang lain, sehingga perubahan di satu tempat menjadi bumerang di lain.

Pemodelan dunia nyata

Masalah kedua dan yang lebih penting dari paradigma prosedural adalah bahwa lokasi tertentu data dan fungsi buruk mensimulasikan hal di dunia nyata. Di sini kita berhadapan dengan benda-benda seperti orang atau mobil. Mereka seperti tidak ada data atau fungsi. Kompleks objek dunia nyata memiliki atribut dan perilaku.

atribut

Contoh atribut (kadang-kadang disebut properti) untuk orang-orang warna mata dan nama pos, untuk mobil - kekuatan dan jumlah pintu. Ternyata, atribut dari dunia nyata setara dengan data dalam program ini. Mereka memiliki nilai-nilai tertentu, seperti biru (warna mata) atau empat (jumlah pintu).

laku

Perilaku - adalah bahwa benda-benda dunia nyata yang dihasilkan dalam menanggapi beberapa jenis dampak. Jika Anda meminta bos untuk kenaikan gaji, jawabannya adalah "ya" atau "tidak." Jika Anda menekan rem, mobil akan berhenti. Dan menghentikan perilaku ucapan adalah contoh. Perilaku serupa dengan prosedur: itu disebut untuk melakukan sesuatu, dan ia melakukannya. Dengan demikian, data dan fungsi sendiri tidak model objek dunia nyata efisien.

mengatasi

Objek dalam OOP direpresentasikan sebagai sekumpulan data dan fungsi. Hanya prosedur yang disebut fungsi anggota di C ++, memungkinkan untuk mendapatkan nilainya. Ini tersembunyi dan dilindungi dari perubahan. Makna dan fungsi diringkas menjadi satu. Enkapsulasi dan upryatyvanie - istilah dasar dalam deskripsi bahasa berorientasi objek.

Jika Anda ingin mengubah data, ia tahu persis apa fungsi berinteraksi dengan mereka. Tidak ada prosedur lain tidak bisa mengaksesnya. Ini menyederhanakan penulisan, debugging, dan memelihara program.

Sebuah aplikasi biasanya terdiri dari beberapa objek yang saling berinteraksi, menyebabkan fungsi anggota.

Saat ini, yang paling banyak digunakan OOP bahasa (pemrograman berorientasi objek) - C ++ (plus plus). Di Jawa tidak memiliki beberapa fitur seperti pointer, template dan beberapa warisan, yang membuatnya kurang kuat dan fleksibel daripada C ++. C # belum mencapai popularitas C ++.

Perlu dicatat bahwa apa yang disebut fungsi anggota dalam metode C ++ disebut dalam beberapa bahasa berorientasi objek lain seperti Smalltalk. Item data yang disebut atribut. Memanggil metode dari objek yang mengirim dia pesan.

analogi

Anda dapat membayangkan benda-benda dari departemen perusahaan. Di kebanyakan organisasi, karyawan tidak bekerja satu hari dengan staf, gaji pengisian yang berlebihan berikut, dan kemudian seminggu yang bergerak dalam perdagangan ritel. Setiap departemen memiliki staf sendiri, dengan tugas jelas ditugaskan. Ada data sendiri: indikator upah, penjualan, staf akuntansi, dll Orang-orang di departemen bekerja dengan informasi mereka ... Pembagian perusahaan, oleh karena itu, memfasilitasi kontrol operasi dan mempertahankan integritas data. Akuntansi bertanggung jawab untuk penggajian. Jika Anda ingin mengetahui jumlah total upah yang dibayarkan ke cabang selatan pada bulan Juli, tidak perlu menyelidiki arsip. Hal ini cukup untuk mengirim catatan ke orang yang bertanggung jawab, tunggu sampai orang yang memiliki akses ke data dan mengirimkan respon terhadap informasi yang diminta. Hal ini memastikan kepatuhan terhadap peraturan dan tidak adanya gangguan eksternal. Dengan cara yang sama obyek dalam PLO menyediakan aplikasi organisasi.

Harus diingat bahwa orientasi objek tidak berlaku untuk rincian program kerja. Sebagian besar instruksi C ++ operator sesuai dengan bahasa prosedural seperti C. Bahkan, fungsi anggota di C ++ sangat mirip dengan fungsi dalam C. Hanya konteks yang lebih luas akan memungkinkan untuk menentukan apakah instruksi prosedural atau berorientasi objek.

Objek dalam OOP: Definisi

Ketika mempertimbangkan masalah pemrograman dalam bahasa berorientasi objek bukan pertanyaan tentang pembagian ke dalam fungsi yang terpisah merupakan masalah di fasilitas pemisahan. berpikir OOP lebih mudah untuk mengembangkan aplikasi. Hal ini disebabkan kesamaan perangkat lunak dan benda nyata.

Apa jenis hal-hal yang objek dalam OOP? Berikut adalah beberapa kategori yang khas.

objek fisik di OOP - adalah:

  • model arus transportasi;
  • komponen listrik dalam program desain sirkuit;
  • Model perekonomian negara;
  • Pesawat dalam sistem kontrol lalu lintas udara.

Elemen lingkungan komputer pengguna:

  • menu;
  • jendela;
  • grafis (garis, persegi panjang, lingkaran);
  • keyboard, mouse, printer, disk drive.

orang:

  • pekerja;
  • siswa;
  • pelanggan;
  • penjual.

informasi:

  • pembukuan;
  • masalah pribadi;
  • kamus;
  • tabel lintang dan bujur dari pemukiman.

Komunikasi objek dunia nyata dan PLO adalah hasil dari kombinasi fungsi dan data yang mereka telah merevolusi pemrograman. Seperti pertandingan dekat dalam bahasa prosedural sana.

kelas

Objek dalam PLO - anggota kelas. Apa artinya? bahasa pemrograman memiliki built-in tipe data. Jenis int, t. E. Sebuah bilangan bulat yang telah ditentukan dalam C ++. Anda dapat mendeklarasikan sejumlah variabel int.

Demikian pula, sejumlah objek didefinisikan oleh satu kelas. Ini mendefinisikan fungsi dan data termasuk dalam fasilitas, tidak menciptakan mereka, serta int tidak membuat variabel.

Kelas dalam PLO - deskripsi dari sejumlah objek serupa. Pangeran, Sting dan Madonna adalah penyanyi. Tidak ada satu dengan nama itu, tapi orang-orang bisa disebut begitu, jika mereka memiliki karakteristik yang sesuai. OOP objek - hal ini.

warisan

Dalam kehidupan, kelas dibagi menjadi subclass. Misalnya, hewan dibagi menjadi amfibi, mamalia, burung, serangga, dan sebagainya. D.

Prinsip pembagian semacam ini adalah bahwa setiap subclass memiliki fitur yang sama dengan kelas dari mana. Semua mobil memiliki roda dan motor. Ini adalah karakteristik mendefinisikan kendaraan. Selain karakteristik umum dari setiap subclass memiliki karakteristik sendiri. Ada banyak kursi bus dan truk memiliki ruang untuk membawa beban berat.

Demikian pula, kelas dasar dapat menjadi subclass orangtua beberapa turunan yang dapat didefinisikan sehingga mereka akan berbagi karakteristik sendiri dengan penambahan. Warisan seperti fungsi, menyederhanakan program yang prosedural. Jika beberapa bagian dari kode lakukan hampir sama, Anda dapat mengekstrak elemen umum dan menempatkan mereka dalam satu prosedur. Tiga wilayah aplikasi dapat memanggil fungsi untuk melakukan tindakan umum, tetapi mereka dapat memproduksi dan operasi sendiri. Demikian pula, kelas dasar berisi informasi umum untuk kelompok derivatif. Sebuah fungsi yang sama mengurangi warisan program berorientasi objek dan memperjelas hubungan unsur-unsurnya.

daur ulang

Setelah kelas dibuat dan debug, dapat ditransfer ke programmer lain untuk menggunakan kembali dalam aplikasi Anda sendiri. Ini seperti sebuah perpustakaan fungsi yang dapat dimasukkan dalam aplikasi yang berbeda.

Dalam OOP, warisan merupakan perluasan dari ide beberapa penggunaan. Dari kelas yang ada, tanpa mengubah itu, kita bisa membentuk yang baru dengan penambahan fungsi lainnya. Kemudahan penggunaan kembali perangkat lunak yang ada - keuntungan penting dari PLO. Hal ini diyakini bahwa itu memberikan profitabilitas meningkat dari investasi awal.

Menciptakan tipe data baru

Fasilitas cocok untuk penciptaan tipe data baru. Misalkan sebuah program menggunakan nilai dua dimensi (misalnya koordinat atau lintang dan bujur), dan memiliki keinginan untuk mengekspresikan aksi aritmatika pada mereka:

posisi1 = posisi + asal,

di mana posisi1, posisi dan asal - sepasang nilai numerik independen. Menciptakan kelas yang mencakup dua nilai, dan deklarasi variabel dari objek menciptakan tipe data baru.

Polimorfisme, overloading

Operator = (sama), dan + (plus) digunakan dalam aritmatika posisi di atas tidak bertindak serta built-in jenis, seperti int. Posisi benda, dan lain-lain. Apakah tidak ditentukan dan ditetapkan oleh perangkat lunak. Bagaimana operator ini tahu bagaimana untuk menangani mereka? Jawabannya terletak pada kenyataan bahwa perilaku baru dapat diatur untuk mereka. Operasi ini akan anggota fungsi Kelas Posisi.

Menggunakan operator atau prosedur tergantung pada apa yang mereka bekerja disebut polimorfisme. Ketika ada operator, seperti + atau =, mendapat kesempatan untuk bekerja dengan tipe data baru, ia mengatakan bahwa itu kelebihan beban. Overload di PLO - semacam polimorfisme. Ini adalah fitur yang penting.

Sebuah buku tentang PLO "Programming Object-Oriented for Dummies" akan memungkinkan semua orang untuk berkenalan dengan topik ini secara lebih rinci.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 id.unansea.com. Theme powered by WordPress.