Metode Object Oriented Programming Java Beserta Contoh Penggunaanya

Object Oriented Programming Java
Object Oriented Programming Java

Langkah pertama dalam mempelajari pemrograman Java adalah memahami apa itu pemrograman berorientasi objek atau Object Oriented Programming (OOP). Konsep paling dasar dari pemrograman berorientasi objek adalah empat karakteristik dasar berikut ini.

1. Enkapsulasi (Encapsulation)

Enkapsulasi adalah salah satu dari empat karakteristik dasar berorientasi objek, dan juga definisi objek dan konsep kelas dalam berorientasi objek. Enkapsulasi berarti merangkum item dengan beberapa atribut ke dalam kelas. Dalam penggunaan sebenarnya, ini digunakan dengan menginisialisasi objek kelas.

Misalnya, orang dapat dienkapsulasi sebagai kelas, yang dapat berisi atribut seperti nama, jenis kelamin, usia, tinggi, berat, dll. Tetapi setiap orang memiliki nama, jenis kelamin, usia, dll yang berbeda, jadi saat menggunakannya, kita perlu menetapkan nilai ke objek yang sesuai untuk membuatnya spesifik.

Pada saat yang sama, enkapsulasi juga melindungi data agar tidak dimodifikasi sesuka hati, meningkatkan pemeliharaan kode; dan mengekspos antarmuka yang diperlukan terbatas untuk meningkatkan kegunaan kelas.

2. Abstraksi (Abstraction)

Konsep abstraksi adalah untuk melindungi karakteristik kelas dasar dan metode agar tidak diubah sesuka hati, dan memberi pemrogram kemampuan untuk memodifikasi metode di bawah aturan.

Read More

Misalnya: kami mengabstraksi item pengiriman sebagai metode.

Dengan cara ini, pengirim sebenarnya dapat menggunakan jalan kaki, bersepeda, naik bus, dll. untuk mengirimkan barang.

3. Warisan (Inheritance)

Fitur pewarisan juga merupakan fitur yang sering digunakan dalam pengembangan aktual.

Seperti golongan di atas: orang, dapat diwariskan sebagai: laki-laki, perempuan; laki-laki juga dapat diwariskan sebagai: laki-laki tua, anak laki-laki.

Setiap kelas yang diwarisi memperluas properti dan metodenya sendiri pada pewarisan kelas sebelumnya, tetapi beberapa metode dari kelas yang diwarisi tidak dimodifikasi kecuali jika memiliki metode abstrak untuk Anda tulis sendiri.

Kelas yang diwarisi biasanya disebut kelas induk, dan kelas yang diwarisi disebut kelas anak. Secara teori, pewarisan kelas dan kelas dapat diwarisi tanpa batas, tetapi mengingat kompleksitas program, tidak disarankan untuk menulis dengan cara ini.

4. Polimorfisme (Polymorphism)

Fitur polimorfisme adalah bahwa ketika menulis kelas, beberapa metode dapat diselesaikan dengan parameter yang berbeda tetapi tujuannya sama. Sehingga nama metodenya sama, tetapi parameter metodenya berbeda.

Seperti di atas untuk mengirim item, metode ini disebut: kirim. Dalam parameter yang dikirim, kita dapat mengisi sepeda, bus, kereta bawah tanah dan alat transportasi lainnya. Hasil akhirnya adalah bahwa hal-hal dapat dikirim ke orang lain.

Beberapa metode saat ini disebut polimorfisme.

Contoh Penggunaan Metode Java Object Oriented Programming


Pemrograman berorientasi objek adalah pengelompokan operasi di sekitar kelas dan objek, dengan empat karakteristik: enkapsulasi, pewarisan, polimorfisme dan abstraksi.

1. Enkapsulasi


Kelas : Kelas adalah pembawa yang merangkum atribut dan perilaku objek. Kelas entitas dengan atribut dan perilaku yang sama disebut kelas

definisi kelas:

class name { // nama class terdiri dari huruf, garis bawah, angka atau tanda dolar dan karakter pertama tidak boleh berupa angka
         //variabel anggota
         //Metode konstruksi
         // metode anggota
            }
  • Variabel anggota: Definisi variabel anggota ada di dalam kelas dan format definisinya sama dengan variabel biasa Format yang digunakan adalah: nama objek.nama variabel anggota.
  • Metode konstruksi: Metode konstruksi adalah metode dengan nama yang sama dengan nama kelas, metode yang dieksekusi ketika objek dibuat (umumnya digunakan untuk menetapkan nilai awal ke variabel anggota) dan tidak memiliki pengembalian nilai. Format definisinya adalah:
Public class name()
{
   ...//membuat body metod
}
/*
Deskripsi: Metode konstruksi dibagi menjadi tanpa parameter dan dengan parameter;
      Secara default, JVM menyediakan konstruktor tanpa parameter dan metode. Jika kelas didefinisikan, kelas tidak lagi disediakan;
      Konstruktor dapat memanggil satu sama lain, formatnya adalah ini (daftar parameter); (setelah pengenalan ini)
      Konstruktor dapat kelebihan beban (setelah kelebihan beban)
*/
  • Format metode anggota:
Pengubah izin mengembalikan nama metode (nama parameter tipe parameter)
           {
              ...//body metode
              mengembalikan nilai pengembalian;
            }//Sama dengan definisi fungsi, tetapi dengan satu pengubah izin lagi
/*
(1) Jika metode anggota tidak memiliki nilai balik, itu dapat didefinisikan sebagai tipe batal
(2) Pengubah izin adalah pribadi, publik, dilindungi. default 
      Urutan aksesnya adalah: publik> dilindungi> default> pribadi
(3) Parameter formal bisa nol atau satu atau lebih
(4) Nama metode sama dengan nama variabel dan aturan definisi nama kelas

*/

Penggunaan metode anggota:

  • namakelas.namametode(parameter)
  • namaobjek.namametode(parameter)

Setter setter dan metode pengakses getter:

/setter:
public void set(nama variable)
{
  this.variablename=nama variable;
}
//getter:
public string get variablename()
{
  return this.variablename;
} 

Metode anggota juga dapat dibebani dengan persyaratan berikut:

  • Jumlah parameter fungsi berbeda
  • Jumlah parameter fungsi sama, tetapi jenisnya berbeda
  • Jumlah dan jenis parameter fungsi sama, tetapi urutan kemunculannya dalam daftar parameter berbeda

2. Object


Object adalah perwujudan dari sebuah instance dari kelas dan memiliki dua karakteristik utama: atribut (variabel anggota) dan perilaku (metode anggota).

//The format is:
classname objectname=new classname;

/* (1) Access the properties and behavior of the object: */
      object name.member variable name;
      ObjectName.MethodName;

/* The reference to the object is in the format: */
    class name. object's reference variable name;
/*

Setiap kelas kecuali kelas Object memiliki kelas induk dan kelas Obyek adalah kelas induk langsung atau kelas induk tidak langsung dari semua kelas. Jika kelas didefinisikan tanpa menentukan kelas mana yang diwarisi dari kelas tersebut, kelas induk dari Kelas adalah kelas Objek.

3. Keywords This


Keyword this digunakan untuk mewakili objek saat ini dari kelas ini. Objek saat ini bukanlah objek entitas baru, tetapi kelas yang sedang diedit. Keyword this hanya dapat digunakan di kelas.

//call own members (variables, methods)
   this.***;
   this.***();

//call the constructor of this class
this.([parameter list]);

4. Variabel Statis dan Metode Statis Java Object Oriented Programming


Variabel dan metode yang dimodifikasi oleh statis disebut variabel statis dan metode statis, dan anggota non-statis disebut anggota instan. Kata kunci this tidak dapat digunakan dalam metode statis, dan metode non-statis tidak dapat dipanggil. Variabel lokal tidak dapat dinyatakan statis.

Variabel statis

static type identifier variable name
  • Format Pemanggilan
classname.static class member; author:

Fitur: Dipenuhi dengan pemuatan kelas Keberadaan lebih diutamakan daripada objek Dibagi oleh semua objek kelas (kondisi untuk menilai apakah akan menggunakan kata kunci statis)

Perbedaan antara variabel statis dan variabel anggota      

Afiliasinya berbeda :

  • Variabel statis milik kelas, juga dikenal sebagai kelas 
  • Variabel anggota milik objek, juga dikenal sebagai variabel instan (variabel objek)

Lokasi memori berbeda:

  • Variabel statis disimpan di area statis area metode
  • Variabel anggota disimpan dalam memori heap

Memori muncul pada waktu yang berbeda:

  • Variabel statis dimuat saat kelas dimuat dan menghilang saat kelas menghilang
  • Variabel anggota ada dengan pembuatan objek dan menghilang dengan hilangnya objek.

Panggilannya berbeda:

  • Variabel statis dapat dipanggil dengan nama kelas atau dengan nama objek
  • Variabel anggota hanya dapat dipanggil dengan nama objek

Metode statis (juga disebut fungsi statis)

permission modifier static type identifier method name ([parameter list])
{
   ...
}
/* access format is */
classname.functionname;
objectname.functionname;

/*

Blok Kode Statis

Jika operasi inisialisasi dimulai ketika kelas dijalankan, Anda dapat menggunakan static untuk mendefinisikan area statis, dan area ini adalah blok kode statis. Blok kode ini akan dieksekusi terlebih dahulu dan hanya dieksekusi sekali; sintaksnya adalah sebagai berikut:

public calss example
{
    static{
    ...//initialize the code block
    }
}
/*
   If there are many static code blocks in a class, the program will be executed in the order written
   Static code blocks cannot appear in any method
   Only static variables can appear in static code blocks, not instance variables
*/

Tambahan: Blok kode dibagi menjadi blok kode lokal, blok kode konstruksi, dan blok kode statis. Urutan eksekusi adalah:

Blok Kode Statis > Blok Kode Buatan > Blok Kode Lokal

5. Package dan Import Java Object Oriented Programming


Package adalah wadah kelas, digunakan untuk memisahkan ruang nama kelas, paket sesuai dengan folder, dan bisa juga ada paket dalam satu paket.

Package (harus ditempatkan di baris pertama kode non-commented dalam file) dengan menggunakan format:

package name; author:

Package Import Keyword Import format:

import package name.*; //Import all classes in the package
import package name.class name; //Import specific classes in the package

6. Penggunaan Warisan Dalam Java Object Oriented Programming


Di Java, kelas yang diwarisi disebut kelas induk (kelas dasar, kelas super), dan kelas yang diwarisi menjadi subkelas (kelas turunan). Warisan dicapai melalui kata kunci yang diperluas dalam format berikut:

class name extends parent class
{
   ...
}
/*
  Note: Java only supports single inheritance
    After the subclass inherits the parent class, the constructor of the parent class will also be called when the subclass object is created
    After the subclass inherits the parent class, it can call the properties and methods created by the parent class (except for private ones)
    The calling sequence of the construction method of the parent class and the child class: execute the parent class first, then execute the child class
*/

Anggota kelas induk yang diwariskan yang tidak dimodifikasi secara pribadi dapat digunakan secara langsung atau tidak langsung (digunakan secara tidak langsung melalui penyetel dan pengambil, lihat ringkasan berorientasi objek untuk detailnya)

Keuntungan:

  • Melalui pewarisan, kode asli dapat digunakan kembali, dan kemungkinan kesalahan kode program dapat dikurangi
  • Dalam bahasa Java, kelas yang ada dapat digunakan dengan pewarisan, dan properti serta metodenya dapat diperluas
  • Semua kelas di Java secara langsung atau tidak langsung mewarisi kelas Objek

Kekurangan:

  • Ada kopling tinggi langsung di kelas.

Catatan lain:

  • Anggota privat dari suatu kelas dapat diwarisi oleh subkelas, tetapi hanya secara tidak langsung melalui metode (pengakses setter dan pengambil) yang diwarisi dari kelas induk dan dapat diakses oleh subkelas
  •  Anggota publik di kelas dapat langsung diakses oleh metode di subkelas, dan dapat diakses melalui objek subkelas di luar subkelas
  • Jika kelas induk dan subkelas berada dalam paket yang sama, anggota yang dilindungi di kelas induk dapat langsung diakses oleh metode di subkelas, dan dapat diakses melalui objek subkelas di luar subkelas
  • Jika kelas induk dan subkelas tidak berada dalam paket yang sama, anggota yang dilindungi di kelas induk dapat langsung diakses oleh metode di subkelas, tetapi tidak dapat diakses melalui objek subkelas di luar subkelas.

7. Polimorfisme Java Object Oriented Programming


Realisasi polimorfisme

  • Tentukan kelas induk, dan kemudian turunkan beberapa subkelas berdasarkan kelas induk ini;
  • Subkelas harus mengganti metode di kelas induk sehingga objek subkelas dapat mengekspresikan subkelas
  • Gunakan nama objek kelas induk untuk mewakili objek subkelas – objek upcast objek
  • Panggil metode yang ditimpa oleh subkelas melalui nama objek kelas induk
  • Tambahan: (“Referensi kelas induk dapat menunjuk ke objek subkelas” perlu diperluas dalam dua aspek berikut)
  • Parameter formal yang diteruskan oleh metode dapat berupa tipe induk, dan yang sebenarnya diteruskan dapat berupa objek subkelas
  • Tipe pengembalian metode adalah tipe kelas induk, dan pengembalian aktual dapat berupa objek subkelas.

Objek transformasi atas dan transformasi bawah

Upcasting :

  • Ketika objek kelas induk mewakili objek subkelas, objek kelas induk disebut upcasting objek subkelas (objek subkelas direpresentasikan sebagai objek kelas induk)
  • Objek dapat dipaksa menjadi objek subkelas
  • Objek dapat mengakses kelas induk Variabel dari subkelas dapat dipanggil untuk mewarisi metode superkelas atau untuk ditimpa oleh subkelas
  • variabel tersebut tidak dapat mengakses variabel atau metode tertentu dari subkelas.
parent class name object name = new subclass name;

Downcasting:

Mengonversi objek dari tipe superclass ke objek dari tipe subclass (tidak dapat mengubah objek kelas abstrak menjadi objek kelas instance)

subclass type subclass object = (subclass type) parent class object

Catatan: Dua objek tanpa hubungan pewarisan tidak dapat naik atau turun. Objek kelas induk dapat dilemparkan ke objek subkelas, tetapi objek kelas induk harus terlebih dahulu merujuk ke objek subkelaS.

Abstrak

Kelas dan metode yang didefinisikan menggunakan abstrak disebut kelas dan metode abstrak

Metode abstrak

[access rights] abstract data type method name ([parameter list])
//The abstract method has only the head of the method and no method body. The abstract method may not be modified with the keyword final

Kelas abstrak

abstract class type identifier class name
{
...
}
/*
Abstract classes cannot be instantiated, nor can the new keyword be used to create objects;
An abstract method only needs to be declared, not implemented (no method body);
Abstract classes are inherited by subclasses, and subclasses must override abstract methods;
Abstract classes can have non-abstract (instance) methods as well as abstract methods;
If a class has abstract methods, the class must be defined as abstract.
*/

Hubungan antara kelas abstrak dan metode abstrak:

  • Jika ada metode abstrak di kelas, kelas ini harus mendefinisikan kelas abstrak;
  • Jika abstrak, dapat memiliki metode abstrak atau tanpa metode abstrak;
  • Kelas abstrak tidak dapat membuat objek, tetapi harus ada subkelas yang mewarisi kelas abstrak, dan subkelas yang mewarisi kelas abstrak harus mengganti metode abstrak di kelas induk.

Antarmuka /Interface

Antarmuka adalah abstraksi lebih lanjut dari kelas abstrak. Melalui pewarisan antarmuka dan teknologi panggilan balik antarmuka, “pewarisan berganda” dapat diwujudkan, dan polimorfisme dalam “perilaku” dapat diwujudkan. Di Java warisan banyak memiliki antarmuka! Antarmuka adalah kumpulan konstanta dan metode abstrak.

Format Definisi:

[modifier] interface interface name [extends parent interface list]
{
[public][static][find] data type variable name = constant value;
[public][abstract] return value type method name (parameter list);
}


Format implementation:

class class name [extends class name] [implements interface list,...]
{
class member variables and member methods;
Write method bodies for all methods in interface A and implement interface A;
Write method bodies for all methods in interface B to implement interface B;
}


Teknologi panggilan balik polimorfisme antarmuka:

interface object name=new instance class constructor();

Kesimpulan


Akhir kata, belajar pemrograman Java Object Oriented Programming bukanlah proses belajar semalaman. Tidak peduli berapa banyak buku yang Anda baca, lebih baik mengetik sendiri kodenya. Hanya dengan mengambil tindakan Anda dapat menjadi dewa pemrograman suatu hari nanti.

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *