Semoga Bermanfaat :)
Selasa, 08 Oktober 2013
RANGKUMAN TENTANG OBJECT ORIENTED PROGRAMMING ( OOP ) DI C#
Apa bedanya class
dengan object?. Jika anda ingin membangun rumah Class adalah blueprint / gambar
(berisi spesifikasi lengkap dari rumah yang akan dibuat, ukuran, jumlah, dll).
Sedangkan object adalah bentuk fisik / rumah yang dibangun berdasarkan
blueprint / class yang sudah ada, biasa disebut instan class / object.
Dalam object oriented programming kita mulai mengenal adanya
class & object. Class adalah sebuah bagian
dari program , yang memiliki semua atribut atribut seperti halnya yang dimiliki
oleh program biasa akan tetapi class tidak bersifat “Main” atau utama, sehingga
sebuah class tidak akan bisa dirun dan dieksekusi tanpa menggunakan main class,
atau class utama. Atribut merupakan segala
sesuatu yang melekat pada Object. Didalam
penerapan didalam program, atribut adalah Variabel Pada pemrograman struktural kita menaruh kodingan kita pada main
class sehingga kita langsung bisa mengkompile dan mengeksekusi program kita
tersebut, dimana pada pemrograman berorientasi object sekarang ini kita akan
mulai menggunakan class untuk menaruh program kita, sehingga program kita dapat
digunakan kembali dan dipadukan dengan program program lain oleh orang
lain. Ketika menggunakan class, kita tidak dapat menyamakannya seperti
saat kita memprogram dengan basis pemrograman struktural. Class disini hanya
bersifat sebagi cetakan atau “blueprint” dari program yang kita buat, untuk
dapat mengeksekusi sebuah class kita harus melakukan “instansiasi” yaitu
membuat sebuah object dari class yang telah kita buat. Untuk lebih mudahnya
kita ibaratkan sebuah class adalah sebuah cetakan roti dan roti adalah sebuah
object dimana proses pembuatan roti disebut sebagai instansiasi. Dalam hal ini
sama halnya seperti cetakan roti, sebuah class juga bisa digunakan berkali kali
untuk membuat sebuah object, dimana satu object dengan yang lainnya tidaklah
memiliki keterkaitan meskipun berasal dari kelas yang sama. Dalam pembuatan
suatu class kita bisa jadikan satu file dengan main class atau juga bisa kita
pisahkan menjadi file sendiri. Dimana dalam menaruh program kita di class
tersebut, kita tidak bisa sembarang menaruh dalam class tersebut, melainkan
kita harus membuat fungsi fungsi, yang nantinya akan bisa kita eksekusi melalui
instance object yang telah kita buat. Untuk lebih jelasnya perhatikan contoh
dibawah ini :
- using System;
-
- namespace Test
- {
- class Program
- {
- static void Main(string[] args)
- {
- Penjumlahan p = new Penjumlahan(5, 9);
- Penjumlahan q = new Penjumlahan(7, 9);
- Console.WriteLine(p.hitungPenjumlahan());
- Console.WriteLine(q.hitungPenjumlahan());
- }
- }
- class Penjumlahan
- {
- int a;
- int b;
- public Penjumlahan(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- public int hitungPenjumlahan()
- {
- return a + b;
- }
- }
- }
Dalam contoh tersebut
Penjumlahan adalah suatu class yang memiliki constructor(fungsi yang pertama
kali dieksekusi ketika class diinstansiasi) yang membutuhkan passing 2 variable
integer. Dimana dalam class tersebut juga terdapat Method untuk menjumlahlkan
dua bilangan yang telah dipassing pada constructor tersebut. class Penjumlahan adalah
pendefinisian nama class public Penjumlahan(int
a, int b) merupakan
constructor dari class penjumlahan tersebut int hitungPenjumlahan() merupakan
Method yang digunakan untuk menjumlahkan dua variabel integer yang telah
dipassingkan pada constructor tadi Penjumlahan p = new Penjumlahan(5,9) proses
instansiasi dari class penjumlahan yang membentuk object p, dimana object p
mengacu pada struktur yang ada dalam class penjumlahan. Keyword new adalah
keyword yang digunakan untuk menginstansiasi sebuah object dari sebuah class
dimana berikutnya diikuti oleh construcor dari class tersebut. Operator this
adalah operator yang digunakan untuk mengakses variabel yang paling global dari
suatu class jika terdapat dua variabel yang memilki nama yang sama dam scope
yang berbeda. Operator (.) dot adalah operator yang digunakan untuk mengakses atribut
yang terdapat didalam class yang telah diinstansiasi tersebut. Didalam contoh
tersebut akan menghasilkan dua output yang berbeda yaitu 14 & 16, meskipun
berasal dari class yang sama akan tetapi dalam contoh tersebut terdapat dua
object yang berbeda. Hal ini membuktikan bahwa tidak ada keterkaitan pada satu
object dengan object lainnya meski berasal dari class yang sama Access
Modifier Didalam contoh tersebut kita juga bisa melihat keyword
keyword seperti public , private dan protected , keyword keyword semacam itu
disebut dengan access modifier yaitu memberikan spesifikasi akses pada class
maupun Method. public : Adalah ditujukan
untuk atribut atribut yang dapat diakses oleh siapapun dan dimanapun senyampang
masih dalam scopenya private : Adalah pembatasan akses hanya untuk di dalam class tersebut protected : Adalah ditujukan untuk atribut atribut yang hanya dapat
diakses oleh child class dari class tersebut (child class akan dibahas lebih
lanjut pada inheritance)
Method merupakan suatu
operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method
didefinisikan pada class akan tetapi dipanggi lmelalui object.
Contoh : pada object
mangga : terdapat method ambilRasa , kupasKulit dll.
Metode menentukan
perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta berbagai
operasi yang dapat dilakukan objek sepanjang hidupnya.
Method atau fungsi
dalam C# adalah suatu cara untuk memecah program menjadi beberapa bagian,
sehingga ketika mengerjakan program tersebut bisa dilakukan pembagian tugas
kepada beberapa orang. Ketika kita sudah mendevelop program dalam sekala besar
maka kita perlu menggunakan yang namanya Method. Untuk lebih jelasnya
perhatikan program dibawah ini :
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Print();
- }
- static void Print()
- {
- Console.WriteLine("Method Print Sukses Dipanggil!!!");
- }
- }
Keyword static disini diperlukan karena Method
tersebut berada di main class yang juga bersifat static sehingga Method Method
menyertainya juga harus bersifat static.
Keyword void merupakan salah satu indikasi bahwa Method ini tidak mereturn/mengembalikan nilai apapun, untuk Method yang mereturn/mengembalikan suatu nilai tertentu akan kita bahas nanti.
Method diatas adalah salah satu Method yang tidak menerima passing variable apapun dan juga tidak mereturn variable apapun, untuk contoh Method yang menerima passing variable tertentu perhatikan contoh dibawah ini :
Keyword void merupakan salah satu indikasi bahwa Method ini tidak mereturn/mengembalikan nilai apapun, untuk Method yang mereturn/mengembalikan suatu nilai tertentu akan kita bahas nanti.
Method diatas adalah salah satu Method yang tidak menerima passing variable apapun dan juga tidak mereturn variable apapun, untuk contoh Method yang menerima passing variable tertentu perhatikan contoh dibawah ini :
- using System;
-
- class Program
- {
- static void Main(string[] args)
- {
- Maksimum(5, 7);
- }
- static void Maksimum(int a, int b)
- {
-
- if (a < b)
- Console.WriteLine("Nilai Maksimumnya Adalah : " + a);
- else if (b > a)
- Console.WriteLine("Nilai Maksimumnya Adalah : " + b);
- else
- Console.WriteLine("Dua Bilangan Tersebut Sama Besar");
- }
- }
Dari contoh diatas dapat kita ketahui bahwa Method Maksimum membutuhkan dua variable integer untuk dipassingkan, dan dari dua variable integer yang dipassingkan tersebut akan dicetak variable mana yang lebih besar. Selain itu ada juga Method yang memiliki nilai kembalian, atau return value, sebagai contoh perhatikan program untuk mencari nilai kuadrat bilangan integer dibawah ini dibawah ini :
- using System;
-
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine(Kuadrat(5));
- }
- static int Kuadrat(int n)
- {
- return n * n;
- }
- }
Object
Object adalah merupakan suatu bentuk dari class.
Misalnya object dari class Hewan adalah Burung, Kambing, Ayam, Kuda.. Mereka
adalah contoh dari class Hewan. Semua dari mereka adalah Hewan yang mempunyai nama, kaki, Jenis makanan dst.
Dan bisa berlari, bersuara, berkembang biak dll.
o contoh :
public class
Peliharaanmu{
public static void
main(String[] args){
Hewan punyaku=new
Hewan();
punyaku.hewanku();
}
}
Cara membuat Object
Untuk membuat object, kita menggunakan
perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari
class tersebut.
Contoh :
class Date
class Date
{
Date hari = new Date();
Date hari = new Date();
}
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
Contruktor
Contruktor
merupakan suatu method yang akan memberikan nilai awal pada saat suatu objek
dibuat. Pada saat program dijalankan, constructor akan langsung memberikan
nilai awal pada saat perintah new, membuat suatu objek
Pada
saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan,
yaitu :
1. Nama Constructor sama dengan nama Class.
2. Tidak ada return type yang diberikan
kedalam Constructor Signature.
3. Tidak ada return stetement, didalam tubuh
constructor.
Karasteristik OOP
Encapsulation
Encapsulation
adalah proses packing semua variable dalam suatu class menjadi private dan
membuat Method mutator dan accessor pada class tersebut. Untuk lebih jelasnya
perhatikan contoh dibawah ini :
- using System;
- namespace Test
- {
- class Program
- {
- static void Main(string[] args)
- {
- Penjumlahan p = new Penjumlahan(5, 9);
- Penjumlahan q = new Penjumlahan(7, 9);
- Console.WriteLine(p.hitungPenjumlahan());
- Console.WriteLine(q.hitungPenjumlahan());
- }
- }
- class Penjumlahan
- {
- private int a;
- private int b;
- public Penjumlahan(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- public int hitungPenjumlahan()
- {
- return getA() + getB();
- }
- public int getA()
- {
- return a;
- }
- public void setA(int a)
- {
- this.a = a;
- }
- public int getB()
- {
- return b;
- }
- public void setB(int b)
- {
- this.b = b;
- }
- }
- }
Dalam contoh
sebelumnya variable a dan b tidak memiliki access modifier, sehingga dianggap
public oleh C#, sekarang kita meletakan access modifier private pada variable
tersebut sehingga varibel tersebut tidak dapat dengan bebas diakses dari luar
class, sehingga untuk merubah variable tersebut kita memerlukan Method yang
bernama mutator yaitu public int getA() & public int getB() yang mereturn
nilai a dan b. Dan untuk dapat mendapatkan / mengetahui nilai dari a & b
kita menggunakan Method yang bernama Accessor yaitu public void setA(int a)
& public void setB(int b) dimana Method tersebut akan meng-assign nilai a
dengan nilai a baru yang kita passingkan pada variable tersebut. Encapsulation
ini berfungsi untuk membatasi akses pada variable varibel yang ada didalam
class secara bebas dari luar class, sehingga kita dapat membuat program yang
lebih efektif dan efisien.
Dalam pemrograman berorientasi object kita mengenal suatu
istilah yaitu “Polimorfisme”, yaitu suatu teknik dalam programming yang lebih
mengarahkan kita untuk memprogram secara general dari pada secara spesifik.
Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil”
dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class
“Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan
tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class
tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan
menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan
perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan
300Km. Hal inilah yang kita sebut sebagai Polimorfisme, yaitu penggunaan method
yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class
yang menggunakan method tersebut. Berikut ini adalah contoh program yang
menggunakan polimorfisme :
- //Class kendaraan.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Polymorphism
- {
- class Kendaraan
- {
- public Kendaraan(int posisi)
- {
- this.posisi = posisi;
- }
- private int posisi;
- public int Posisi
- {
- get { return posisi; }
- set { posisi = value; }
- }
- public virtual void Move()
- {
- return;
- }
- }
- }
- //Class motor.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Polymorphism
- {
- class Motor : Kendaraan
- {
- public Motor(int posisi)
- : base(posisi)
- { }
- public override void Move()
- {
- base.Posisi = base.Posisi + 30;
- }
- }
- }
- //Class Mobil.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Polymorphism
- {
- class Mobil : Kendaraan
- {
- public Mobil(int posisi)
- : base(posisi)
- { }
-
- public override void Move()
- {
- base.Posisi = base.Posisi + 70;
- }
- }
- }
- //Class pesawat.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Polymorphism
- {
- class Pesawat : Kendaraan
- {
- public Pesawat(int posisi)
- : base(posisi)
- { }
-
- public override void Move()
- {
- base.Posisi = base.Posisi + 300;
- }
- }
- }
- //Class program.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Polymorphism
- {
- class Program
- {
- static void Main(string[] args)
- {
- int posisi = 10;
-
- Kendaraan[] kendaraan = new Kendaraan[3];
- kendaraan[0] = new Motor(posisi);
- kendaraan[1] = new Mobil(posisi);
- kendaraan[2] = new Pesawat(posisi);
-
- Console.WriteLine("Intansiasi 3 Object Turunan Class Kendaraan");
- Console.WriteLine(" -kendaraan[0] merupakan instantsiasi dari class " + "Motor dengan posisi awal " + posisi);
- Console.WriteLine(" -kendaraan[1] merupakan instantsiasi dari class " + "Mobil dengan posisi awal " + posisi);
- Console.WriteLine(" -kendaraan[2] merupakan instantsiasi dari class " + "Pesawat dengan posisi awal " + posisi);
-
- for (int i = 0; i < kendaraan.Length; i++)
- {
- Console.WriteLine("Object [" + i + "] memanggil method move");
- Console.WriteLine("Posisi sebelum method move() dipanggil : " + kendaraan[i].Posisi);
- kendaraan[i].Move();
- Console.WriteLine("Posisi setelah method move() dipanggil : " + kendaraan[i].Posisi);
- Console.WriteLine();
- }
- }
- }
- }
Inherintence atau pewarisan merupakan konsep dimana suatu object
memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki
tertentu.
Hal ini memungkinkan satu kelas (sub-class) harus didasarkan
atas yang lain (kelas super) dan mewarisi semua fungsi secara otomatis. Kode
tambahan kemudian dapat ditambahkan untuk membuat versi yang lebih khusus dari
kelas. Dalam contoh kendaraan, sub-kelas untuk mobil atau motor dapat dibuat.
Masing-masing masih akan memiliki semua perilaku kendaraan tetapi dapat
menambahkan metode khusus dan properti.
Inheritance adalah
salah satu teknik pemrograman berorientasi object yang digunakan agar suatu
codingan dapat digunakan kembali oleh programmer lain / reuseable. Hal tersebut
dilakukan dengan cara membuat turunan dari suatu class yang sudah ada, yaitu
dengan membuat child class. Contohnya adalah jika ada programmer yang membuat
suatu class yaitu shape yang memiliki atribut atribut luas, dan position kita
tidak perlu membuat class baru ketika kita ingin membuat suatu class rectangle
yang notabennya juga termasuk shape, jadi kita cuma perlu untuk menurunkan
class shape tadi ke class rectangle yang akan kita buat.
Dari gambar diatas
dapat kita ketahui hierarki dari penurunan class shape menjadi class class
lainya yang notabennya masih termasuk dalam class shape. Selain itu dalam
iheritance ini kita juga mulai mengenal yang dinamakan access modifier, yaitu
keyword untuk merubah atribut dari suatu field dalam suatu class, dimana dalam
C# access modifier tersebut ada 4, yaitu: (none) -> Akses ke field tersebut
hanya terbatas pada suatu package Public -> Field tersebut dapat diakses
dari semua tempat, asal masih dalam satu scope Private -> Akses ke field
tersebut hanya terbatas pada class dimana field tersebut ada Protected ->
Akses ke filed tersebut hanya terbatas pada class dimana field tersebut ada,
beserta class turunan dari class field tersebut. Untuk contoh program dapat
dilihat dibawah ini, yang merupakan inheritance class person menjadi class
student.
- //class Person.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Inheritance
- {
- class Person
- {
- protected String name;
- protected int age;
-
- public Person(String name, int age)
- {
- this.name = name;
- this.age = age;
- }
-
- public String getName()
- {
- return this.name;
- }
- public int getAge()
- {
- return this.age;
- }
- }
- }
- //class Student.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Inheritance
- {
- class Student : Person
- {
- private String schoolName;
- public Student(String name, int age, String schoolName)
- : base(name, age)
- {
- this.schoolName = schoolName;
- }
- public String getSchoolName()
- {
- return this.schoolName;
- }
- }
- }
- //class Program.cs
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Inheritance
- {
- class Program
- {
- static void Main(string[] args)
- {
- Person person = new Person("Yohanda", 19);
- Student student = new Student("Mandala", 18, "SMAN 2");
-
- Console.WriteLine("Informasi tentang object person : ");
- Console.WriteLine("Name : " + person.getName());
- Console.WriteLine("Age : " + person.getAge());
- Console.WriteLine();
-
- Console.WriteLine("Informasi tentang object student : ");
- Console.WriteLine("Name : " + student.getName());
- Console.WriteLine("Age : " + student.getAge());
- Console.WriteLine("School Name : " + student.getSchoolName());
- }
- }
- }
Maka setelah kita
compile dan kita eksekusi maka akan manghasilakan output seperti dibawah ini
:
- Informasi tentang object person :
- Name : Yohanda
- Age : 19
-
- Informasi tentang object student :
- Name : Mandala
- Age : 18
- School Name : SMAN 2
Untuk melakukan
inheritance di C#, kita menggunakan keyword “:”. Dalam contoh program diatas
class Studentlah yang mengiheritance class Person sehingga class Student yang
melakakukan “:”, dimana dalam pendefinisian class nya menjadi class Student :
Person. Dalam proses inheritance ini derived class bisa mengakses semua field
dari super classnya, kecuali yang beratribut private. Akan tetapi base class
tidak bisa mengakses field dari derived class apapun atributnya. Dalam program
diatas sudah dicontohkan bahwa method getName dan getAge yang hanya terdapat
pada class Person dapat dengan bebas diakses oleh Class turunannya yaitu class
Student. Mengenai constructornya adalah sebagai berikut, dalam class person ia
membutuhkan dua variable dalam constructornya, yaitu String name, dan int age,
dan dalam class student ia membutuhkan 3 variable ketika membuat constructornya
yaitu String name, int age, dan String schoolName, dimana dapat kita lihat
bahwa 2 dari 3 variabel constructor dari class student sama dengan variable
pada class person, maka kita tidak perlu membuatnya lagi, akan tetapi hanya
perlu menggunakan keyword “base” untuk memanggil constructor dari base class.
Abstraction
Pesawat yang telah dicontohkan masuk dalam kelas
kendaraan, kelas kendaraan merupakan contoh abstraction. Abstraction adalah
proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam
kelas dan objek. Hal ini berarti dalam pengembangan perangkat lunak seorang
programmer akan menggunakan atau menciptakan sejumlah object dimana object
tersebut akan ada dan berperilaku pada sistem.
Ketika membangun objects dalam aplikasi
OOP, adalah penting untuk menggabungkan konsep abstraction ini. Jika kamu
membangun aplikasi shipping, kamu harus membangun object produk dengan atribut seperti
ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan
harus dibuang. Tetapi ketika kamu membangun orderentry application, warna menjadi
penting dan harus termasuk atribut object produk.
Setiap tipe Window pasti mempunyai bentuk tampilan yang
berbeda misal combobox, listbox, button, dll. Berarti setiap class turunan dari
Window harus mempunyai method DrawWindow() nya sendiri yang berbeda satu sama
lain. Untuk memastikan bahwa setiap class turunan Control harus mempunyai
method DrawWindow() maka anda harus mendefinisikan class tersebut sebagai abstract class dan memiliki
method abstract yang belum diimplementasikan.
Abstract method tidak mempunyai
implementation, abstract method hanya semacam kontrak yang harus dipenuhi.
Semua class yang diturunkan dari class yang mempunyai abstract method harus
mengimplementasikan method tersebut.
Class yang didefinisikan sebagai
abstract class tidak dapat dibuat instan class / objek, class yang
didefinisikan abstract hanya dapat digunakan dengan cara diturunkan.
1: public abstract class Control {
2:
private int top;
3:
private int left;
4:
5:
protected int Top {
6: get { return this.top;}
7: set { this.top = value;}
8:
}
9:
protected int Left {
10: get {return this.left;}
11: set {this.left = value;}
12:
}
13:
public Control(int top, int left) {
14: Top = top;
15: Left = left;
16:
}
17:
//abstract method harus diimplementasikan
18:
public abstract void DrawWindow();
19:
}
20:
21:
public class ListBox : Control {
22:
private string listBoxContent;
23:
public ListBox(int top, int left, string contents)
24: : base(top, left) {
25: this.listBoxContent = contents;
26:
}
27:
28:
public override void DrawWindow() {
29: Console.WriteLine("Position
:({0},{1})", Top, Left);
30: Console.WriteLine("Menuliskan
string pada listbox: {0}",
31: listBoxContent);
32:
}
33:
34:
}
35:
36:
public class Button : Control {
37:
public Button(int top, int left) : base(top, left) { }
38:
public override void DrawWindow() {
39: Console.WriteLine("Menggambar
button pada ({0},{1})", Top, Left);
40:
}
41:
}
42:
class LatAbstract {
43:
static void Main(string[] args) {
44: Control[] winArray = new
Control[3];
45: winArray[0] = new ListBox(5, 10, "Pada
ListBox");
46: winArray[1] = new Button(5, 6);
47: for (int i = 0; i < 2; i++) {
48: winArray.DrawWindow();
49: }
50:
}
51:
}
Tapi untuk kasus diatas abstract
masih mempunyai keterbatasan, jika anda ingin membuat class DropDownList yang
hendak diturunkan dari class ListBox, maka anda tidak dapat memaksakan method
DrawWindow() harus ada di class tersebut.
Aggregation
Aggregation
adalah kondisi ketika object berisi gabungan dari object-object yang berbeda
dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda,
objects mesin, object pisau dan lain-lain. Object mesinpun merupakan gabungan
dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah
satu feature yang powerful yang memungkinkan model menjadi akurat. Pemrograman
visual membawa OOP ke level berikutnya. Tujuan pemrograman visual adalah agar
pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses
oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya
secara grafis atau visual. Pemrograman visual memungkinkan pengguna untuk lebih
focus pada pemecahan masalah ketimbang cara menangani bahasa pemrograman.
Overloading
Overloading adalah suatu cara membuat lebih dari
constructor pada suatu class. Supaya pengaksesan constructor tersebut lancar,
maka sebagai pembedanya adalah tipe parameter dan atau jumlah parameternya.
Pada C# anda dapat mendeklarasikan method atau konstruktor dengan
nama yang sama pada sebuah class, tetapi parameter method tersebut harus
berbeda bisa jumlah atau tipe datanya. Pada contoh dibawah ini akan ditunjukan
bagaimana cara menggunakan overloading konstruktor
1: public class Time
2: {
3:
// private member variables
4:
private int Year;
5:
private int Month;
6:
private int Date;
7:
private int Hour;
8:
private int Minute;
9:
private int Second;
10:
11:
// public accessor methods
12:
public void DisplayCurrentTime()
13:
{
14:
System.Console.WriteLine("{0}/{1}/{2} {3}:{4}:{5}",
15: Month, Date, Year, Hour, Minute,
Second);
16:
}
17:
// constructors
18:
public Time(System.DateTime dt)
19:
{
20: Year = dt.Year;
21: Month = dt.Month;
22: Date = dt.Day;
23: Hour = dt.Hour;
24: Minute = dt.Minute;
25: Second = dt.Second;
26: }
27:
public Time(string strTime) // overloading konstruktor
28:
{
29: Console.WriteLine(strTime);
30:
}
31:
32:
public Time(int Year, int Month, int Date,
33:
int Hour, int Minute, int Second) // overloading konstruktor
34:
{
35: this.Year = Year;
36: this.Month = Month;
37: this.Date = Date;
38: this.Hour = Hour;
39: this.Minute = Minute;
40: this.Second = Second;
41:
}
42:
}
43:
44:
class Tester
45:
{
46:
public void Run()
47:
{
48: System.DateTime currentTime =
System.DateTime.Now;
49:
Time time1 = new
Time(currentTime);
50: time1.DisplayCurrentTime();
51: Time time2 = new Time(2000, 11,
18, 11, 03, 30);
52: time2.DisplayCurrentTime();
53:
}
54:
55:
static void Main()
56:
{
57: Tester t = new Tester();
58: t.Run();
59:
}
60:
}
Langganan:
Postingan (Atom)