Pengaturcaraan Berorientasikan Objek: Membuat Konsep Rumit Mudah

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


Pengaturcaraan berorientasi objek (OO) adalah paradigma pengaturcaraan yang merangkumi atau bergantung pada konsep objek, struktur data yang dikemas yang mempunyai sifat dan fungsi dan yang berinteraksi dengan objek lain.

Objek dalam program sering mewakili objek dunia nyata – misalnya, aplikasi laman web e-dagang mungkin mempunyai objek Pelanggan, objek Shopping_cart, dan objek Produk. Objek lain mungkin secara longgar berkaitan dengan setara dunia nyata – seperti Pembayaran_pemproses atau Login_form. Banyak objek lain melayani logik aplikasi dan tidak mempunyai paralel dunia nyata langsung – objek yang menguruskan pengesahan, templat, pengendalian permintaan, atau pelbagai ciri lain yang diperlukan untuk aplikasi yang berfungsi.

Pengaturcaraan Berorientasikan Objek

Sejarah Pengaturcaraan Berorientasikan Objek

Sekiranya pengaturcaraan berorientasikan objek sangat sesuai untuk memodelkan sistem dunia nyata, itu bukan kebetulan. Konsep sekarang dikaitkan dengan pengaturcaraan berorientasi objek, termasuk sebagian besar bahasa untuk menggambarkannya, berasal dari bahasa pengaturcaraan Simula, yang digunakan untuk mensimulasikan sistem dunia nyata. Kelas, subkelas, dan objek ditambahkan ke Simula pada tahun 1967.

Pada tahun 1970-an, Alan Kay mencipta istilah “berorientasikan objek” ketika bekerja di Smalltalk. Ini merujuk pada penggunaan objek dalam bahasa secara meluas, dan tempat mereka sebagai unit asas organisasi.

Penyebaran pengaturcaraan berorientasikan objek pada awalnya agak perlahan. Common Lisp memperkenalkan Common Lisp Object System, menambahkan objek ke Lisp, pada akhir 1970-an. Pada tahun 1980-an, bahasa pengaturcaraan Eiffel diciptakan, yang sepenuhnya berorientasikan objek. Pencipta Eiffel, Bertrand Meyer, menulis Pembinaan Perisian Berorientasikan Objek, yang merupakan salah satu buku pertama yang menyebarkan konsep pengaturcaraan OO secara meluas.

Pada tahun 1990-an dan hingga tahun 2000-an, pengaturcaraan berorientasikan objek benar-benar bermula. Ini bertepatan dengan ledakan besar-besaran dalam industri teknologi pada umumnya dalam tempoh tersebut, dan kemasukan programmer secara tiba-tiba ke syarikat teknologi besar. Salah satu titik penjualan pengaturcaraan berorientasikan objek, seperti yang dipromosikan oleh para penyokongnya, adalah bahawa pemisahan masalah dan gandingan longgar (lihat di bawah) membolehkan pasukan bekerja pada sistem besar dengan lebih berkesan.

Menjelang akhir dekad pertama abad ke-21, pengaturcaraan berorientasi objek telah menjadi “satu cara yang tepat” yang diterima untuk mengembangkan kebanyakan perisian. Bahasa pengaturcaraan yang lebih baru, terutama bahasa yang ditafsirkan dengan jenis dinamik seperti Python, Ruby, dan JavaScript, cenderung menganggap, atau bahkan menegakkan, pendekatan berorientasi objek. Sementara itu, banyak bahasa lama, seperti Fortran dan COBOL telah menambahkan ciri berorientasikan objek.

Konsep Berorientasikan Objek Penting

Pengaturcaraan berorientasikan objek adalah konsep – cara mendekati masalah merancang program komputer. Ini bukan sekumpulan peraturan yang sukar dan cepat atau metodologi tertentu. Bahasa pengaturcaraan yang berbeza mendekati OOP secara berbeza. Sebahagiannya lebih kurang ketat, dan ada juga yang berbeza. Yang berikut adalah gambaran umum konsep reka bentuk berorientasikan objek. Lihat artikel saudari kami, Pengaturcaraan Berorientasikan Objek untuk sumber dan perincian yang menerangkan bagaimana konsep ini dilaksanakan dalam pelbagai bahasa.

Pemisahan Kebimbangan

Prinsip panduan utama yang memberitahu semua konsep lain dalam pengaturcaraan berorientasikan objek adalah pemisahan kebimbangan. Ini adalah idea bahawa kumpulan data dan fungsi yang berbeza secara logik harus dipisahkan menjadi kumpulan kod aplikasi yang berbeza.

Idea ini tidak unik untuk pengaturcaraan berorientasikan objek. Sebilangan besar bahasa pengaturcaraan memungkinkan untuk memisahkan masalah, dan kebanyakan paradigma pengaturcaraan mempromosikannya. Walau bagaimanapun, pemisahan kebimbangan sangat penting untuk pengaturcaraan berorientasikan objek. Pemisahan kebimbangan yang kuat adalah dorongan di sebalik hampir semua konsep OO yang lain.

Objek dan Kelas

Pada mulanya, nampaknya konsep asas dalam pengaturcaraan berorientasikan objek adalah objek. Dengan cara ini, itu benar. Tetapi dari perspektif pemaju, perhatian asasnya adalah kelas.

Kelas menentukan objek; sebuah objek memulakan kelas. Sebagai contoh, mari terus memikirkan laman web e-dagang. Terdapat banyak pelanggan, tetapi mereka semua melakukan perkara yang sama. Jadi akan ada kelas Pelanggan, di mana pengaturcara menentukan apa itu pelanggan, dan bagaimana ia berfungsi. Kemudian, setiap pelanggan individu diwakili dalam sistem oleh objek pelanggan.

Oleh kerana definisi kelas menentukan semua perincian pelaksanaan, sebahagian besar kerja mengembangkan program berorientasikan objek melibatkan bekerja dengan kelas, bukan objek.

Bahasa OO Klasik dan Bukan Klasik

Terdapat segelintir bahasa yang menggabungkan sebilangan besar konsep berorientasikan objek, tetapi yang tidak mempunyai konstruk yang disebut kelas khas. Yang paling terkenal ialah JavaScript, yang menggunakan prototaip, atau objek generik yang kemudian diklon. Terminologi, falsafah yang mendasari, dan bahkan pelaksanaan “di bawah tudung” berbeza – namun pengalaman pemaju adalah sama.

Bahasa dengan kelas, yang mewakili sebahagian besar bahasa OO, kadang-kadang disebut “klasik.” Ini adalah kata yang tepat pada kata “kelas”, dan pengakuan bahawa kelas telah menjadi pendekatan konvensional untuk pengaturcaraan berorientasi objek.

Kaedah dan Sifat

Objek mempunyai pemboleh ubah, yang biasanya disebut sifat atau atribut dalam kebanyakan bahasa. Sebagai contoh, objek Pelanggan mungkin mempunyai sifat seperti alamat_pengiriman atau nama.

Objek juga mempunyai fungsi, disebut kaedah. Ini adalah perkara-perkara yang dapat dilakukan oleh objek tersebut, dan juga ditentukan dalam kelas. Contohnya, objek Pelanggan mungkin mempunyai kaedah untuk checkout, change_shipping_address, atau logout.

Salah satu cabaran untuk mengembangkan program berorientasikan objek yang baik adalah menentukan cara membagi fungsi di antara beberapa kelas yang berpotensi. Sebagai contoh, perlukah kaedah pembayaran milik Pelanggan atau Keranjang Belanja? Adakah Pelanggan memiliki kaedah logout, atau adakah Pelanggan memanggil kaedah logout dari beberapa objek Authentication_manager?

Cabaran lain bagi banyak pengaturcara OO baru adalah memahami cara merancang kelas yang tidak mewakili perkara di dunia nyata. Memahami bahawa e-dagang memerlukan Produk dan sistem pengurusan projek memerlukan Projek adalah sangat mudah. Tetapi program berorientasikan objek yang besar mempunyai kelas yang tak terhitung jumlahnya yang menentukan pelbagai jenis kumpulan fungsi abstrak, seperti pemeta hubungan objek, kilang objek, dan pengawal (hanya untuk menamakan tiga contoh yang mudah difahami).

Menentu masalah ini tentu saja perlu dilakukan. Pengembang berorientasikan objek juga dapat dibantu oleh pemahaman tentang corak reka bentuk, dan oleh proses pengembangan yang meliputi pemodelan.

Berikut adalah beberapa sumber untuk membantu anda memahami kelas, harta tanah dan kaedah dengan lebih baik:

  • Kelas, Objek, Properti, dan Konsep Kaedah adalah gambaran keseluruhan video selama 10 minit mengenai konsep ini;
  • Memilih Antara Properti dan Kaedah adalah tutorial .NET, yang merangkumi beberapa pertimbangan reka bentuk yang berlaku untuk bahasa apa pun;
  • Memahami Kelas, Kaedah, dan Sifat di C # memberikan penjelasan yang baik, dengan beberapa gambar rajah yang berguna.

Penghantaran Mesej dan Penghantaran Dinamik

Kelas, dan sejumlah konsep lain yang diliputi di sini, telah dihubungkan dengan pengaturcaraan berorientasikan objek. Namun, menurut saintis komputer yang mencipta istilah, pengaturcaraan berorientasikan objek adalah mengenai penghantaran mesej.

Penghantaran mesej bermaksud bahawa objek saling berkomunikasi dengan menghantar mesej. Ini terdengar remeh, tetapi ia mempengaruhi bagaimana panggilan fungsi dibuat. Daripada satu objek memanggil fungsi objek lain secara langsung, objek akan menyampaikan mesej ke objek lain. Mesej mengandungi nama kaedah dan parameter yang berkaitan. Objek yang dipanggil kemudian mempunyai kemampuan untuk menangani kaedah panggilan itu namun diperlukan.

Keupayaan ini untuk setiap objek untuk menentukan tindak balasnya sendiri terhadap panggilan metode yang diperlukan disebut pengiriman dinamis. Ia membolehkan objek berkembang dari masa berjalan, dan bertindak balas terhadap mesej mengikut keadaannya sekarang.

Penyampaian mesej boleh menjadi agak membingungkan, terutamanya kerana kebanyakan bahasa yang digunakan sekarang hanya menggunakan satu jenis (kaedah panggilan). Berikut adalah beberapa sumber untuk membantu anda memahaminya dengan lebih baik:

  • Ada yang bertanya Apakah mesej yang disampaikan dalam OO? di StackExchange; beberapa jawapan sangat berguna diikuti;
  • Lihat juga Apakah perbezaan utama antara OO di Smalltalk dan Java? untuk beberapa pandangan tentang bagaimana penyampaian mesej telah berubah dari idea asalnya menjadi bagaimana kebanyakannya berfungsi dalam bahasa kontemporari;
  • Mesej Menyampaikan wiki c2 mempunyai penjelasan terperinci, jika agak huru-hara.

Enkapsulasi

Terkait rapat dengan penghantaran mesej dan penghantaran dinamik adalah konsep enkapsulasi. Encapsulation bermaksud bahawa kod di luar objek tidak dapat langsung mengakses data dalamannya. Jika, misalnya, satu objek perlu “mengetahui” sifat objek lain (misalnya, Shipping_manager mungkin memerlukan alamat_ pengiriman objek Pelanggan), maka objek panggilan tidak dapat menemukan data tersebut secara langsung; ia harus menyampaikan pesan “meminta” objek Pelanggan, yang kemudian mengembalikan data yang diperlukan. (Ini biasanya dilakukan dengan kaedah panggilan.)

Tidak semua bahasa berorientasikan objek menerapkan enkapsulasi ketat; ada yang membenarkan sifat objek diakses (dapatkan dan set) secara langsung. Namun, banyak pakar dalam pengembangan OO mendorong para pengaturcara untuk mematuhi prinsip enkapsulasi (dengan tidak memanggil sifat secara langsung), bahkan dalam bahasa yang memungkinkannya.

Terdapat banyak faedah untuk enkapsulasi. Terutamanya, ia membolehkan perincian atau kesan sampingan disingkirkan dari titik di mana harta tanah dipanggil. Sebagai contoh, setiap kali nilai tertentu dibaca, anda mungkin ingin memeriksa kapan terakhir dikira, dan mengira semula jika syarat tertentu dipenuhi. Mampu menambah, membuang, atau mengubah logik itu di satu tempat pada bila-bila masa, tanpa menjejaskan tempat lain dalam kod yang membuat panggilan, adalah faedah enkapsulasi.

Warisan dan Komposisi

Warisan dan komposisi adalah dua cara di mana pelbagai kelas (dan objek instansiasi) saling berkaitan.

Warisan menggambarkan hubungan “adalah”: Pengguna adalah Orang; Pelanggan adalah Pengguna. Dalam contoh ini, mungkin ada kelas Person yang menentukan semua sifat dan kaedah Orang secara umum (nama, hari lahir). Kemudian kelas Pengguna akan meluaskan kelas Orang, untuk menambahkan perkara seperti atribut nama pengguna atau kaedah log masuk dan log keluar. Kelas Pelanggan mungkin kemudian memperluas Pengguna, menambahkan perkara-perkara yang hanya diperlukan oleh pelanggan, seperti pesanan_halaman atau alamat_pembayaran.

Komposisi menggambarkan hubungan “mempunyai”, ketika satu objek “memiliki” objek lain. Contohnya, kelas Pelanggan mungkin memiliki Billing_address, yang merupakan objek penuh yang ditentukan dalam kelas. Seperti hierarki pewarisan, hierarki komposisi dapat dengan mudah beberapa lapisan dalam. Contohnya: Pelanggan mungkin mempunyai Shopping_cart, Shopping_cart mempunyai beberapa Produk, setiap Produk mempunyai Vendor, dan sebagainya.

Sebilangan besar karya reka bentuk dalam pengembangan berorientasi objek ada hubungannya dengan memetakan hubungan warisan dan komposisi ini. Gambar rajah kelas, yang merupakan bahagian dari Unified Modeling Language adalah alat yang tidak ternilai untuk menggambarkan hubungan ini.

  • Warisan berbanding Komposisi: Mana Yang Harus Anda Pilih? masuk ke dalam beberapa pertimbangan reka bentuk semasa membina hierarki kelas kompeks;
  • Komposisi vs Warisan: Bagaimana Memilih? merangkumi persoalan yang sama, tetapi dari sudut yang berbeza dan dengan lebih banyak humor;
  • Reka Bentuk Java: Objek, UML, dan Proses, oleh Kirk Knoernschild, termasuk bagian, “Prinsip Penggunaan Kembali Komposit,” dalam bab pertama yang menjelaskan mengapa komposisi kadang-kadang lebih baik, walaupun warisan nampaknya tepat.

Polimorfisme

Polimorfisme (atau, lebih khusus lagi, polimorfisme subjenis) adalah konsep yang secara semula jadi berasal dari pewarisan. Sekiranya kelas induk (atau “kelas Super”) mempunyai kaedah tertentu, maka semua anak-anaknya (“subkelas”) juga akan memiliki metode tersebut. Setiap subkelas mungkin menerapkan metode tersebut secara berbeza, tetapi memanggil objek tidak perlu mengetahui beberapa subtipe yang mereka panggil. Mereka boleh menganggap semua subtipe objek yang berbeza sebagai setara.

Polimorfisme adalah subjek yang besar, dan bukan tanpa kontroversi. Berikut adalah beberapa sumber untuk membantu mengatasi masalah anda:

  • Polimorfisme di Jawa – Kaedah Overloading dan Overriding adalah pengenalan lembut terhadap polimorfisme;
  • Konsep Pengaturcaraan Berorientasikan Objek: Polimorfisme dan Antarmuka khusus mengenai ActionScript, tetapi memberikan banyak perincian mengenai perkara ini, termasuk pelbagai masalah dan batasan;
  • Polimorfisme – Pengaturcaraan Berorientasikan Objek dalam C ++ adalah penjelasan video yang bagus;
  • Prinsip Penggantian Liskov (PDF) adalah persembahan untuk membantu anda memahami subtaip.

Ketahui Lebih Lanjut Mengenai Pengaturcaraan Berorientasikan Objek

Untuk pemahaman yang mendalam mengenai pengaturcaraan berorientasikan objek, sejumlah buku klasik dan kontemporari mengenai perkara ini sangat berharga, dan hampir tidak dapat diganti dengan tutorial dalam talian.

  • Corak Reka Bentuk: Elemen Perisian Berorientasikan Objek yang Boleh Digunakan Semula, oleh Gamma, et al, adalah buku klasik yang memperkenalkan program berorientasikan objek kepada pemaju arus perdana; ia masih mesti dibaca;
  • Analisis dan Reka Bentuk Berorientasikan Objek dengan Aplikasi, oleh Booch, et al, melampaui menulis kod OO dan masuk ke dalam daging pergerakan OOP, yang merupakan analisis dan reka bentuk sistem;
  • Proses Pemikiran Berorientasikan Objek oleh Matt Weisfeld, adalah buku yang bagus untuk pemaju yang mahir dalam pengaturcaraan prosedur atau fungsional dan yang perlu melatih pemikiran mereka terhadap objek dan kelas;
  • OOP Demystified, oleh Keogh dan Giannini, menyampaikan tutorial mengenai OOP dalam konteks pengembangan aplikasi dunia nyata, dengan fokus pada kemahiran dan pemikiran yang diperlukan untuk menerapkan analisis dan proses reka bentuk yang berorientasikan objek;
  • Pembinaan Perisian Berorientasikan Objek, oleh Bertrand Meyer, adalah buku klasik mengenai OO, salah satu yang pertama mengemukakan teknik dan falsafah yang mendasari konsep; sebilangan bahan dalam buku ini nampaknya bertarikh, tetapi asasnya masih relevan;
  • Corak Reka Bentuk yang Diterangkan: Perspektif Baru pada Reka Bentuk Berorientasikan Objek, oleh Shalloway dan Trott, adalah buku terpenting yang memajukan amalan corak reka bentuk, atau strategi yang dapat digunakan semula untuk menangani masalah yang berulang;
  • Model Objek: Strategi, Pola, dan Aplikasi, oleh Coad, North, dan Mayfield, adalah pendamping yang baik untuk Reka Bentuk Pola yang Dijelaskan, menyediakan banyak corak dan strategi tambahan untuk pengaturcaraan berorientasi objek.

Untuk pemahaman konsep pengaturcaraan berorientasikan objek yang lebih praktikal dan kontemporari, cubalah satu atau lebih sumber dalam talian ini:

  • Belajar dengan Cepat Pengaturcaraan Berorientasikan Objek adalah tutorial berasaskan Python dari Rangkaian Pembangun Mozilla;
  • Konsep Pengaturcaraan Berorientasikan Objek adalah tutorial dari Oracle, yang merangkumi asas-asas pengaturcaraan berorientasikan objek, dari perspektif Java;
  • Tutorial Pengaturcaraan Berorientasikan Objek membentangkan pengenalan bahasa-agnostik kepada konsep teras;
  • Pengenalan Konsep Pengaturcaraan Berorientasikan Objek dan Lebih Banyak adalah gambaran besar pengaturcaraan berorientasikan objek, dan juga beberapa subjek yang berkait rapat, seperti seni bina perisian dan corak reka bentuk;
  • Ulasan Pengaturcaraan Berorientasikan Objek dari Codecademy, menggunakan JavaScript dan penyunting dalam penyemak imbas untuk membolehkan anda segera bekerja dengan konsep (tetapi ingat bahawa JavaScript menerapkan konsep OOP sedikit berbeza);
  • Asas Pengaturcaraan Berorientasikan Objek adalah sumber Java yang lain, dengan banyak contoh berguna dengan kelas sebenar.

Bahasa Berorientasikan Objek Penting

Tidak semua bahasa pengaturcaraan menyokong pengaturcaraan berorientasikan objek. Beberapa bahasa dirancang untuk tidak melakukan apa-apa selain menyokong OOP. Yang lain membenarkan pelbagai pendekatan untuk pengaturcaraan. Masih ada yang kelihatan berorientasi objek, tetapi menerapkan konsep orientasi objek dengan cara yang tidak standard, tidak lengkap, atau biasa saja.

Di bawah ini adalah senarai beberapa bahasa OO-capabable yang lebih popular, dengan nota mengenai pendekatan mereka terhadap Orientasi Objek, dan beberapa sumber untuk membantu anda memasuki OOP dengan bahasa tersebut.

Internet dipenuhi dengan karangan yang melihat bahasa X vs bahasa Y – yang kebanyakannya hanya menggaru permukaan. Kami mencadangkan anda melihat Perbandingan Bahasa Pengaturcaraan yang lebih umum ini. Analisis teliti ini melihat perincian khusus dari beberapa bahasa OO yang popular, membincangkan bagaimana konsep OO tertentu dilaksanakan di masing-masing.

Bahasa Berasaskan C

C bukan bahasa berorientasikan objek. Walau bagaimanapun, sekurang-kurangnya kemungkinan menulis kod OO di dalamnya:

  • Pengaturcaraan Berorientasikan Objek dengan ANSI-C (PDF)
  • Panduan Phil untuk ANSI C Berorientasikan Objek
  • Pengaturcaraan Berorientasikan Objek Di C.

Tidak satu pun teknik yang dijelaskan dalam buku dan artikel tersebut sangat mantap atau mudah dikendalikan untuk program bukan trivia. Daripada berusaha meregangkan C ke hadnya, ada tiga keturunan langsung C yang merangkumi alat bahasa berorientasi objek.

C++

C ++ adalah multi-paradigma, yang bermaksud bahawa ia menyokong beberapa kaedah pengaturcaraan (PDF) yang berbeza, termasuk orientasi objek. Ia didasarkan pada C, dan dikembangkan secara khusus sebagai cara untuk menambahkan sokongan untuk konsep kelas OOP.

  • Pengaturcaraan Berorientasikan Objek (OOP) dalam C ++: panduan intro hebat dari profesor Sains Komputer
  • Pembelajaran Pengaturcaraan Berorientasikan Objek dalam C ++: tutorial berbilang bahagian yang besar mengenai OOP
  • Tutorial C ++ 20-1 – Pengaturcaraan Kelas dan Berorientasikan Objek: sebahagian daripada siri video yang lebih besar di C ++, sesi ini memulakan liputan mengenai konsep OOP
  • Pengenalan Pengaturcaraan Berorientasikan Objek Menggunakan C++
  • Pengaturcaraan Berorientasikan Objek di C++.

C #

C # (“C tajam”) adalah turunan C lain, yang kebanyakannya dirancang sebagai peningkatan berbanding C ++ untuk digunakan dalam Rangka Kerja NET Microsoft..

  • Pengaturcaraan Berorientasikan Objek dalam C #
  • C # Pengaturcaraan Berorientasikan Objek Asas untuk Maju (video)
  • Konsep C # OOPS (video)
  • Asas Pengaturcaraan Berorientasikan Objek dalam C #: tutorial premium dari PLuralsight (percubaan percuma tersedia)
  • Pengenalan Konsep Pengaturcaraan Berorientasikan Objek di C #: merangkumi abstraksi, enkapsulasi, pewarisan dan polimorfisme di C #
  • 10 Konsep OOPS Teratas Dalam C # .NET Dengan Contoh: panduan pantas untuk mengorientasikan diri anda di C # jika anda sudah memahami konsep OOP
  • Pembelajaran C #: Bagaimana Menguasai Bahasa Pengaturcaraan Berorientasikan Objek: gambaran umum tahap tinggi tentang cara pendekatan pembelajaran C # dan OOP terbaik secara umum
  • Permulaan Pengaturcaraan Berorientasikan Objek C #.

Objektif-C

Objective-C dikembangkan kira-kira pada masa yang sama dengan C ++, dengan tujuan yang sama – penambahan kemampuan OOP ke C. Hari ini, Objective-C benar-benar hanya digunakan di Platform Pembangunan Koko Apple untuk OS X dan iOS, dan GNUstep, yang Alternatif Sumber Terbuka.

  • Pengaturcaraan Berorientasikan Objek dengan Objektif-C
  • Pengenalan Reka Bentuk Berorientasikan Objek
  • Pengaturcaraan Berorientasikan Objek dan Bahasa Objektif-C (PDF)
  • Pengenalan kepada Pengaturcaraan Berorientasikan Objek.

Lisp biasa

Lisp pada dasarnya tidak Berorientasikan Objek. Walau bagaimanapun, Common Lisp, salah satu dialek Lisp yang lebih popular, termasuk Common Lisp Object System (CLOS), yang menyediakan ciri OOP.

Pendekatan untuk Objektif-Orientasi yang dilaksanakan di CLOS berbeza secara radikal daripada cara OO ditangani dalam bahasa lain. Ini bermaksud bahawa CLOS bukanlah tempat yang baik untuk memulakan jika anda ingin belajar OO secara umum, atau menggunakan OO dalam jenis bahasa lain. Walau bagaimanapun, jika anda memasuki Lisp, CLOS sangat penting. Selain itu, jika anda menjumpai OOP yang sangat menarik, anda akan senang mempelajari CLOS untuk melihat konsep OO dalam cahaya yang berbeza.

  • Asas CLOS
  • Panduan Ringkas untuk MENUTUP
  • Sistem Objek Lisp Umum: Gambaran Keseluruhan (PDF)
  • CLOS: Mengintegrasikan Pengaturcaraan Berorientasikan Objek dan Berfungsi (PDF)
  • Pengaturcaraan Berorientasikan Objek dalam LISP UMUM: Panduan Pengaturcara untuk CLOS.

Erlang

Menurut beberapa sudut pandangan konvensional, Erlang bukanlah bahasa yang berorientasikan objek. Namun, ada pendapat minoriti yang menarik sebaliknya, dan penyokongnya menyatakan bahawa Erlang adalah Bahasa Berorientasi Objek Paling, atau bahkan bahawa Erlang adalah satu-satunya bahasa Berorientasi Objek yang benar.

Sebilangan besar ini juga berlaku untuk Elixir. Sebaliknya, mungkin ini hanya gaya OO, bukan OO yang benar.

F #

F # (“F tajam”) adalah bahasa pelbagai paradigma. Inti pengaturcaraannya benar-benar berfungsi, tetapi merangkumi sokongan untuk OO dan usaha untuk menggabungkan kedua pendekatan yang berbeza untuk pengaturcaraan ini.

  • Siri “Pengaturcaraan berorientasikan objek dalam F #”
  • F # Panduan Pantas: Pengaturcaraan Berorientasikan Objek
  • Gambaran Keseluruhan F # – Pengaturcaraan Berorientasikan Objektif dan Berorientasikan Objek
  • F # Berorientasikan Objek – Membuat Kelas
  • Pengaturcaraan Berorientasikan Objek dalam F # (PDF)
  • OOP tanpa kelas di F #.

Fortran

Fortran adalah bahasa pengaturcaraan tertua yang masih digunakan. Ketika ia diciptakan pada tahun 1950-an, tidak ada yang namanya orientasi objek. Sokongan OOP yang jelas telah ditambahkan ke Fortran dengan pembebasan bahasa Fortran 2003. Tetapi mungkin untuk menerapkan beberapa konsep asas OOP dalam versi bahasa sebelumnya.

  • OOP di Fortran sebelum Fortran Berorientasikan Objek:
    • Gaya Berorientasikan Objek Pseudo di Fortran 90
    • Pengaturcaraan Berorientasikan Objek melalui Fortran 90 (PDF)
    • Pengenalan Konsep Berorientasikan Objek menggunakan Fortran90.
  • OOP di Fortran dengan sokongan rasmi:
    • Pengaturcaraan Berorientasikan Objek di Fortran 2003
    • Fortran Moden dalam Amalan
    • PEMROGRAMAN ILMU DI FORTRAN 2003: Tutorial Termasuk Pengaturcaraan Berorientasikan Objek (PDF).

Pergi

Go adalah bahasa yang agak baru, yang telah dikembangkan oleh Google pada tahun 2007. Terdapat banyak perbincangan mengenai apakah Go berorientasikan objek atau tidak.

Go tidak mempunyai apa-apa di dalamnya disebut “objek” atau “kelas”, tetapi ia mempunyai beberapa struktur yang serupa. Oleh itu, dari sudut pandangan tertentu, anda boleh menganggap Go sebagai berorientasikan objek.

Ramai orang sebenarnya berpendapat bahawa Go adalah OO:

  • Pergi ke Reka Bentuk Berorientasikan Objek
  • Pengaturcaraan Berorientasikan Objek di Go
  • Patters Bahasa Berorientasikan Objek di Go
  • Pergi untuk Pengaturcara Berorientasikan Objek atau Pengaturcaraan Berorientasikan Objek tanpa Objek (video)
  • Ringkasan Kebaikan Pengaturcaraan Berorientasikan Objek dalam Pergi, tanpa rasa sakit.

Jawa

Java dibangun dari bawah ke atas untuk berorientasi objek. Berikut adalah beberapa sumber hebat untuk membuat anda pergi dengan Java:

  • Reka Bentuk Sistem Berorientasikan Objek: laman web untuk Stanford’s CS108, dengan pautan ke kod, selebaran, slaid kuliah, dan hampir semua yang anda perlukan untuk menjalani kursus ini sendiri
  • Tutorial Java: Konsep Pengaturcaraan Berorientasikan Objek
  • Asas Pengaturcaraan Java Pengaturcaraan Berorientasikan Objek (OOP)
  • Konsep Pengaturcaraan Berorientasikan Objek (enam siri video)
  • Pengaturcaraan Berorientasikan Objek – Tutorial Java
  • Tutorial Asas Java: Pengaturcaraan Berorientasikan Objek di Jawa
  • Pengaturcaraan Berorientasikan Objek di Jawa
  • Asas Pengaturcaraan Berorientasikan Objek Dengan Java (PDF).

JavaScript

Ramai orang tidak menyangka bahawa JavaScript benar-benar berorientasikan objek. Tetapi banyak orang lain berpendapat bahawa ia pasti ada.

Kami merasakan tugas kami adalah untuk membantu anda mencari sumber yang berguna, bukan berpihak pada perdebatan yang tidak dapat dimenangkan. Oleh itu, terdapat beberapa sumber OOP untuk JavaScript:

  • Pengenalan JavaScript Berorientasikan Objek (Rangkaian Pembangun Mozilla)
  • JavaScript: Bahasa Pengaturcaraan Paling Disalahpahami di Dunia
  • OOP Dalam JavaScript: Apa yang PERLU Anda Ketahui
  • JavaScript Berorientasikan Objek: Buat Aplikasi dan Perpustakaan JavaScript Berkualiti Tinggi yang Boleh Digunakan dan Boleh Digunakan Semula
  • Prinsip JavaScript Berorientasikan Objek
  • JavaScript Berorientasikan Objek (video).

PHP

PHP tidak menyokong konsep OO asas sehingga versi 4, dan tidak menyokong orientasi objek sepenuhnya sehingga PHP5.

  • PHP Berorientasikan Objek untuk Pemula
  • PHP Berorientasikan Objek untuk Pemula Mutlak
  • Prinsip Pengaturcaraan Berorientasikan Objek dalam PHP
  • PHP Berorientasikan Objek (video)
  • PHP Berorientasikan Objek: Konsep, Teknik, dan Kod.

Python

Kod Python tidak perlu berorientasikan objek, tetapi bahasa menyokongnya sepenuhnya. Lihat sumber berikut:

  • Pengaturcaraan Berorientasikan Objek: pengenalan OOP, melalui Python, dari Open Courseware MIT
  • Pengaturcaraan Berorientasikan Objek di Python
  • Tingkatkan Python Anda: Kelas Python dan Pengaturcaraan Berorientasikan Objek
  • Kursus Python: Pengaturcaraan Berorientasikan Objek
  • Pengaturcaraan Berorientasikan Objek Python 3.

Ruby

Di Ruby semuanya adalah objek, bahkan jenis data “primitif” seperti rentetan dan bilangan bulat. Anda menambah dua bilangan bulat dengan memanggil kaedah penambahan pada salah satu daripadanya; anda dapati panjang tali dengan memanggil kaedah panjang di atasnya.

  • Panduan Pengguna Ruby: Berfikir Berorientasikan Objek
  • Modul Ruby: Ciri OOP Utama Bahasa Pengaturcaraan Ruby
  • Reka Bentuk Berorientasikan Objek Praktikal di Ruby.

Smalltalk

Smalltalk mungkin merupakan bahasa berorientasikan objek yang paling berpengaruh, mempunyai pengaruh yang mendalam terhadap bahasa-bahasa yang muncul kemudian. Hasilnya, ada baiknya sekurang-kurangnya mengenalinya. Sumber ini akan memulakan anda:

  • Pengaturcaraan Berorientasikan Objek dengan Smalltalk (PDF)
  • Smalltalk dan Objektif: Pengenalan (PDF)
  • Smalltalk: Bermula dengan bahasa (video)
  • Pengaturcaraan Smalltalk – Orientasi Objek dari Permulaan: Pengenalan Prinsip Pengaturcaraan.

Sebaliknya…

Sekiranya anda ingin menjadi pembangun yang lengkap, penting untuk memahami baik dan buruk konsep apa pun. Walaupun orientasi objek telah menjadi cara utama untuk memahami pengaturcaraan, ada kritikan yang sah untuk dibuat – kedua-dua idea itu sendiri, dan budaya gembar-gembur yang mengelilinginya.

Berikut adalah sebilangan kecil sumber yang membentangkan hujah balas kepada OOP:

  • Pengaturcaraan Berorientasikan Objek Adalah Bencana Mahal yang Harus Diakhiri
  • Pengaturcaraan Berorientasikan Objek Tidak Memudaratkan
  • Pengaturcaraan Berorientasikan Objek: Kisah Bencana.

Pengaturcaraan Berorientasikan Objek Hari Ini

Walaupun pengaturcaraan berorientasi objek tetap merupakan metodologi penting dalam pengaturcaraan komputer, program ini tidak lagi menjadi tempat industri sebagai “pengembangan perisian yang baik.” Paradigma lain, terutamanya pengaturcaraan fungsional, akan menjadi yang terdepan, bersama dengan bahasa baru yang menyokongnya. Sementara itu kritikan terhadap pengaturcaraan berorientasi objek, dan juga pergerakan corak reka bentuk, terus meningkat.

Namun, sebilangan besar perisian yang ditulis hari ini berorientasikan objek. Sekiranya anda menggunakan bahasa berorientasikan objek yang biasa, anda perlu memahami konsep asas berorientasikan objek.

Barang Lebih Menarik

Kami mempunyai lebih banyak panduan, tutorial, dan infografik pengaturcaraan yang berkaitan dengan pengekodan dan pengembangan:

  • Sumber Pembangun C ++: sebagai tambahan kepada maklumat mengenai C ++, terdapat lebih banyak maklumat mengenai pengaturcaraan berorientasikan objek.
  • Pengenalan dan Sumber Pengaturcaraan Linux: walaupun tidak secara khusus mengenai pengaturcaraan berorientasikan objek, perbincangan mengenai banyak peringkat pengaturcaraan Linux ini pasti akan memberi tenaga kepada anda.
  • Pengenalan dan Sumber INTERCAL: jika anda sukar memprogramkan objek-objek, mempelajari INTERCAL akan menjadikannya senang. Bahasa parodi (atau jenaka) ini sangat rumit dan mengerikan sehingga perbincangan polimorfisme yang paling mendalam akan kelihatan menyenangkan.

Kod Apa yang Perlu Anda Pelajari?

Keliru dengan bahasa pengaturcaraan apa yang harus anda pelajari untuk membuat kod? Lihat infografik kami, Kod Apa yang Perlu Anda Pelajari? Ia tidak hanya membincangkan berbagai aspek bahasa, tetapi juga menjawab pertanyaan penting seperti, “Berapa banyak wang yang akan saya buat untuk memprogram Java untuk mencari nafkah?”

Kod Apa yang Perlu Anda Pelajari?
Kod Apa yang Perlu Anda Pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me