Daftar isi
- Pendahuluan
- Struktur dasar Program C#
- Class
- Static Class Member
- Objek
- Method
- Constructor
- Akses Modifier
- Properties
- Namespace dan using
- Parameter Method
- Method Overloading
- Overload Constructor
- Komposisi
- Penggunaan referensi “this”
- Inheritance (pewarisan)
- Class Abstrak
- Method abstrak
- Method Virtual
- Menyembunyikan method class induk dgn keyword “new”
- interface
Pendahuluan
Untuk memahami pemrograman C#
kita wajib mengerti konsep dasar pemrograman berorientasi Object(PBO).
Konsep PBO pada C# pada dasarnya sama dengan yg diterapkan pada C++
,VB.Net, JAVA, dll.
Pengetahuan dasar pemrograman berorientasi
Object(PBO) sudah saya tulis pada artilel disini atau
anda bisa membacanya di artikel lain
Ada 3 jenis aplikasi C# untuk
yang bisa kita buat
1. Aplikasi konsol
2. Aplikasi Visual
3. Aplikasi Class library.
4. Aplikasi WPF
Pelajaran dasar C# biasanya menggunakan
aplikasi konsol supaya kita fokus kepada kode programnya saja.
Struktur dasar Program C#
Secara hirarki Program C# terdiri dari
Namespace-> class-> method dan data
|
1
2
3
4
5
6
7
8
|
namespace
{
class
{
data
method
}
}
|
Langsung saja kita lihat contoh program C#
paling sederhana :
|
1
2
3
4
5
6
7
8
|
class Clscontoh
{
static void Main(string[]
args) // method Main
{
Console.WriteLine(“
Apa kabar? \n”);
}
}
|
Penjelasan program
Program C# minimal harus terdiri dari 1
class dan 1 methode Main().
Contoh diatas terdiri dari 1
class dgn nama Clscontoh dan ClsContoh mempunya 1
methode Main().
Langkah-langkah kompilasi / menjalankan
program diatas :
1. Ketik program diatas pada
notepad dan simpan dengan nama ex1.cs (nama terserah yg
penting berextensi *.cs)
2. Pada prompt dos ketik
c:>csc ex1.cs
3. Untuk menjalankanya ketik
c:>ext1.exe
Program C# terbentuk dari class sedangkan program C terdiri dari fungsi fungsi.
Program C# terbentuk dari class sedangkan program C terdiri dari fungsi fungsi.
Untuk menyederhanakan program yg bersekala
besar adalah dengan cara memecah program menjadi bagian/modul modul yg
lebih kecil, Modul tersebut diantaranya adalah berbentuk class dan
method.
Class
Semua code dalam C# harus berada dalam class
dan tiap class terdiri dari data dan method . method
dan data disebut juga sebagai member Class . Data dalam class
dimanipulasi melalui method . data disebut juga member variable atau instance
variable. instance variable dideklarasikan di luar method.
Static Class Member
Static class member adalah member class yg
diakses melalui class tdk melalui objek. jadi seolah oleh member static
bersifat global di semua objek. Jika instance variable
static maka tiap objek mempunyai instance variable yg sama.
Sebaliknya pada instance variable yg bukan static maka
tiap objek mempunyai salinan (instance variable) masing masing.
Contoh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
namespace gamepesawat
{
class peswatTempur
{
public
string namaPilot;
public
static int TotalTertembak=0;
pulic
int tembakmusuh()
{
totalTertembak++;
return
TotalTertembak;
}
}
Class
gamestart()
{
static
void Main(string[] args) // method Main
{
//membuat
objek pesawatTempurF16 dan F22
pesawatTempur
F16 = new pesawatTempur();
pesawatTempur
F22 = new pesawatTempur();
F16.namaPilot
= "fatih";
F16.tembak();
F16.namaPilot=
"dede";
F16.tembak();
// mengakses statik variable totalTertembak
dgn nama class pesawattempur bukan nama objek
system.console.writeln("total
tertembak={0}" pesawatTempur.TotalTertembak)
}
}
}
|
Dari contoh diatas kita bisa melihat bahwa
static instance variable totalTertembak adalah hanya ada 1 dan sama ditiap
objek. dan cara mengaksesnya melalui nama class. jika kita mencoba mengakses
dgn nama objek spt F16.totalTertembak akan menyebabkan error saat dikompilasi.
Objek
setelah class dibuat maka yg digunakan dalam
program adalah objek dari class. cara membuat objek dari class (instance)
adalah sbb:
class objek = new class.
class objek = new class.
misal nya kita buat class kalkulator dan
sebuah method jumlah(int a, int b) dlm class tsb dan objek yg kita buat adalah
casio
kalkulator casio = new kalkulator
untuk penggunaan objek casio tsb dgn cara :
hasil = casio.jumlah(2,3)
contoh konkritnya ada di bagian bawah
artikel.
Method
Method mirip seperti fungsi ,
yaitu potongan kode yg melaksanakan tugas tertentu , method
mempunyai format sbb:
akses modifier-return_type-nama_method
(parameter)
{
{
badan method
}
contoh method :
public int jumlah(int bil1, int bil2)
{
return bil1 + bil2;
}
{
return bil1 + bil2;
}
contoh method tanpa return value :
public void tampilkanhasil(int hasil)
{
System.Console.WriteLine(“hasil operasi = {0}”, hasil);
}
{
System.Console.WriteLine(“hasil operasi = {0}”, hasil);
}
Ringkasan hal hal yang terkait dgn method:
- methode terdiri dari header dan body method
- method bisa memiliki return value bisa juga tidak (ditandai dgn void)
- method bisa memiliki 1 atau lebih parameter
- method bisa memiliki parameter objek dan array.
- variable yg dideklarasikan di dlm method bersifat lokal hanya bisa diakses di dlm method saja. jika didalam method ada nama variable yg sama dgn instance variable, maka yg berlaku adalah variable lokal.
- untuk mengakses instance variable yg mempunyai nama yg sama dgn lokal variable gunakan this.nama_instance_variable
- method dlm class yg sama dipanggil dgn menuliskan nama method dan menuliskan argument untuk tiap parameternya. type argument harus sesuai dgn type parameter pada deklarasi method.
- memanggil method pd class yg berbeda menggukana statemen objekreferensi.namaMethod
- method bisa digunakan berulang ulang didalam program
- diusahakan membuat method sesederhana mungkin dgn satu tugas spesifik.
- diusahakan nama method sesui tugas yg dikerjakan oleh method.
- didalam method tdk boleh ada deklarasi method lain.
- didalam method bisa memanggil method lain
- methode terdiri dari header dan body method
- method bisa memiliki return value bisa juga tidak (ditandai dgn void)
- method bisa memiliki 1 atau lebih parameter
- method bisa memiliki parameter objek dan array.
- variable yg dideklarasikan di dlm method bersifat lokal hanya bisa diakses di dlm method saja. jika didalam method ada nama variable yg sama dgn instance variable, maka yg berlaku adalah variable lokal.
- untuk mengakses instance variable yg mempunyai nama yg sama dgn lokal variable gunakan this.nama_instance_variable
- method dlm class yg sama dipanggil dgn menuliskan nama method dan menuliskan argument untuk tiap parameternya. type argument harus sesuai dgn type parameter pada deklarasi method.
- memanggil method pd class yg berbeda menggukana statemen objekreferensi.namaMethod
- method bisa digunakan berulang ulang didalam program
- diusahakan membuat method sesederhana mungkin dgn satu tugas spesifik.
- diusahakan nama method sesui tugas yg dikerjakan oleh method.
- didalam method tdk boleh ada deklarasi method lain.
- didalam method bisa memanggil method lain
Constructor
Constructor adalah method yg dijalankan
setiap kali objek dibuat.method ini mempunyai ciri ciri:
-nama sama dgn nama class.
-tidak mempunyai return type.
-modifiernya “public”
-nama sama dgn nama class.
-tidak mempunyai return type.
-modifiernya “public”
Salah satu kegunaan constructor adalah untuk
inisialisasi kondisi awal objek. Jika kita tdk membuat constructor maka secara
otomatis C# akan membuatkan secara default tapi constructor tsb tdk
melaksanakan apapaun .
contoh constructor:
contoh constructor:
class termometer
}
public termometer()
{
}
public termometer()
{
}
}
Akses Modifier
Akses modifier mendefinisikan
ruang lingkup pengaksesan member class . Dari mana saja
method dan instance variable bisa diakses , bisa diatur melalui akses
modifier ini. Ada 4 akses modifier tapi untuk tahap awal kita akan
membicarakan 2 lebih dahulu yaitu :
1. Public , member class bisa
diakses dari semua objek .
2. Private , member class hanya bisa diakses dari dlm class
2. Private , member class hanya bisa diakses dari dlm class
untuk default akses modifier member class
adalah private. jadi biasanya data dlm sebuah class tdk bisa
diakses langsung dari luar class tapi melalui method. sedangkan method biasanya
dibuat public sehingga bisa dipangggil dari luar class, sedangkan method
yg private digunakan hanya dlm class itu sendiri(dipanggil/digunakan oleh
method dlm kelas yg sama) sehingga private method disebut “helper method” .
Untuk memanggil method di dlm class yg sama
cukup dengan menulis nama method beserta argument tiap parameternya. Sedangkan
untuk memanggil method dari class yg berbeda harus menggunakan format
nama_referensi.nama_method.
contoh program C# yg terdiri dari 2 class
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
using System;
class classpertama
{
static void Main(string[] args)
{
Console.WriteLine("
Apa kabar1? ")
classkedua objek1 =
new classkedua();
objek1.tampil();
Console.WriteLine("data
class ke 2 ");
Console.WriteLine(objek1.usia);
Console.readline()
// supaya console tdk langsung menutup
}
}
class classkedua
{
public int usia =10;
public void
tampil() // akses modifier method ini diset
public , supaya bisa diakses dari luar class ini.
{
Console.WriteLine("Apa
kabar2? ");
}
}
|
Jika sebuah program C# terdiri banyak class
,eksekusi program akan di mulai pada class yang memiliki methode Main().
Class yg memiliki method main disebut sebagai entry point.
Pada class kedua, method tampil() akses
modifiernya ‘public’ supaya method ini bisa dipangggil dari luar class
kelaskedua.
Properties
Pada class kedua contoh diatas, akses
modifier data adalah public :
public int usia = 10;
Keadaan ini tidak baik sebab data bisa
dirubah dgn mudah dari luar class . misalnya program kita sudah besar dan
kompleks bisa terjadi ada baris program yg merubah data tanpa sengaja. Untuk
mencegah hal ini maka diatasi dgn cara data(instance variable usia) dibuat
menjadi private dan membuat properties yg bertugas mengakses data secara aman.
Anggota class private tidak dapat diakses
langsung dari luar class. Akses ke data private harus dikontrol secara
hati-hati dengan method dlm class yg sama .
Untuk memungkinkan class lain untuk membaca nilai data private , class dapat mendefinisikan properties yang memungkinkan kode klien untuk mengakses data private ini dengan aman . Propertinya berisi method accessor yang menangani rincian memodifikasi dan menbaca data.
Untuk memungkinkan class lain untuk membaca nilai data private , class dapat mendefinisikan properties yang memungkinkan kode klien untuk mengakses data private ini dengan aman . Propertinya berisi method accessor yang menangani rincian memodifikasi dan menbaca data.
Definisi properti dapat berisi accessor get ,
accessor set atau keduanya .
- accessor get memungkinkan klien untuk membaca nilai data private ;
- accessor set memungkinkan klien untuk mengubah nilai tersebut.
- accessor get memungkinkan klien untuk membaca nilai data private ;
- accessor set memungkinkan klien untuk mengubah nilai tersebut.
Properties tampaknya akan melanggar gagasan
data private . Namun, accessor set dapat memberikan kemampuan data
validasi (seperti pemeriksaan range data yg valid ) untuk memastikan
bahwa nilai yg di set benar . Sebuah accessor set juga dapat menerjemahkan
antara format data yang digunakan dalam antarmuka.
Demikian pula, accessor get tidak perlu mengekspos data dalam format aslinya, lebih tepatnya accessor get dapat mengedit data dan membatasi pandangan klien dari data tersebut.
Demikian pula, accessor get tidak perlu mengekspos data dalam format aslinya, lebih tepatnya accessor get dapat mengedit data dan membatasi pandangan klien dari data tersebut.
berikut ini contoh property Umur memanipulasi
instance variable usia
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public int Umur
{
get
{
return usia;
}
set
{
usia = ( ( value >= 17 &&
value < 55 ) ? value : 0 );
}
} //
|
contoh program lengkapnya:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
using System;
class classpertama
{
static void Main(string[] args)
{
Console.WriteLine("
Apa kabar1? ")
classkedua objek1 =
new classkedua();
objek1.tampil();
Console.WriteLine("data
class ke 2 ");
Console.WriteLine(<span
class="skimlinks-unlinked">objek.Umur</span>);
//menset nilai instance
variable usia melalui property Umur
objek1.Umur =
35;
//tambahkan baris kode
berikut supaya ,console tdk close:
Console.ReadLine();
}
}
class classkedua
{
private int usia =10;
public int Umur
{
get
{
return usia;
}
set
{
usia = ( ( value >= 17 &&
value < 55 ) ? value : 0 );
}
} //
public void
tampil() // akses modifier method ini diset
public , supaya bisa diakses dari luar class ini.
{
Console.WriteLine("Apa
kabar2? ");
}
}
|
Namespace dan using
Namespace adalah kata kunci yang digunakan
untuk mengorganisasikan class class. Pengorganisasian class class pada
namespace mirip direktory direktory yg penyimpan file,
Namespace nama_namespace
{
Class class1
{
}
Class class2
{
}
}
{
Class class1
{
}
Class class2
{
}
}
class library yg sudah disediakan juga
disimpan dlm namespace , untuk menggunakan class yg ada di class library kita
harus menyertakan namespace nya dgn perintah “using” contoh:
using System :
menyertakan class class utama kedalam program .
Berikut ini beberapa namespace yg
sudah tersedia di framework class library (FCL) :
-System.Data : Berisi class
yang membentuk ADO NET, digunakan untuk database. akses dan manipulasi.
-System.Drawing : Berisi class yang digunakan untuk menggambar dan grafis.
-System.IO : Berisi class untuk input dan output data, seperti pada akses file.
- dan masih banyak lagi..
-System.Drawing : Berisi class yang digunakan untuk menggambar dan grafis.
-System.IO : Berisi class untuk input dan output data, seperti pada akses file.
- dan masih banyak lagi..
Aktualnya framework class library pada
C# adalah file file berektensi *.dll
Namespace Bercabang/berjenjang
Seperti halnya direktory, namespace juga bisa
bercabang/berjenjang contoh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
namespaceA1
{
namespaceB
{
class1
{
}
}
namespaceC
{
class2
{
}
}
}
|
Untuk mengakses/menggunakan class1 dengan
cara
using namespaceA.namespaceB
Parameter Method
Di dalam C# ada 3 jenis parameter yaitu
parameter nilai, parameter referensi dan parameter output.
berikut ini contoh perbedaan parameter nilai dan parameter
referensi:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System;
using System.Collections.Generic;
using <span
class="skimlinks-unlinked">System.Linq</span>;
using <span
class="skimlinks-unlinked">System.Text</span>;
namespace testParameter
{
class Program
{
// var1 sbg parameter nilai, var2 sebagai
parameter referensi
public static void jumlah(int var1, ref int
var2)
{
var1 = var1 + 5;
var2 = var2 +
5;
}
static void
Main(string[] args)
{
int var1 = 10;
int var2 = 10;
jumlah(var1,
ref var2);
Console.WriteLine("Nilai
var1 = {0}", var1);
Console.WriteLine("Nilai
var2 = {0}", var2);
}
}
}
|
Jika program di atas dijalankan akan
menghasilkan output sbb:
Nilai var1=10
Nilai var2=15
Kita melihat dari hasil tsb : setelah method
jumlah() dijalankan, parameter nilai tdk merubah
variabel di luar method sedangkan parameter referensi merubah nilai
variable diluar method.
Contoh C# class calculator
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
using System;
using System.Collections.Generic;
using <span
class="skimlinks-unlinked">System.Linq</span>;
using <span
class="skimlinks-unlinked">System.Text</span>;
namespace kalkulator
{
class class_pertama
{
static
void Main(string[] args)
{
int
hasiljumlah=0;
int
bil1 = 30;i
int
bil2 = 5;
//===membuat objek casiocalc
===================
classkalkulator
casiocalc = new classkalkulatorku("casio");
hasiljumlah
= casiocalc.jumlah(bil1 , bil2);
casiocalc.tampilkanhasil(hasiljumlah);
//===membuat objek polytroncalc
================
classkalkulator
polytroncalc = new classkalkulatorku("polytron");
hasiljumlah
= polytroncalc.jumlah(bil1, bil2);
polytroncalc.tampilkanhasil(hasiljumlah);
System.Console.ReadLine();
// supaya console tdklangsung close
}
}
class
classkalkulatorku
{
public
classkalkulator(string merk) // constructor
{
System.Console.WriteLine("=====object
dibuat============");
System.Console.WriteLine("buatan
" + merk);
}
public
int jumlah(int bil1, int bil2)
{
return
bil1 + bil2;
}
public
int kurang(int bil1, int bil2)
{
return
bil1 - bil2;
}
public
void tampilkanhasil(int hasil)
{
System.Console.WriteLine("hasil
operasi = {0}", hasil);
}
}
} // penutup namespace
|
Method Overloading
Method overloading adalah method dgn nama
yang sama tetapi mempunyai parameter yang berbeda. contoh
|
1
2
3
4
5
6
7
8
9
10
11
|
public int hitung luaspersegipanjang(int
panjang, int lebar)
{
int luas = panjang * lebar;
return luas
}
public double hitung
luaspersegipanjang(double panjang, double lebar)
{
double luas = panjang * lebar;
return luas
}
|
pada contoh diatas kedua method mempunyai
nama yg sama yaitu luaspersegipanjang akan tetapi keduanya mempunyai parameter
yg berbeda , method pertama parameternya berupa bilangan integer method kedua
parameternya bilangan double. C# akan secara otomatis menyesuaikan method mana
yg dipakai berdasar nilai parameter yg diberikaan.
Overload Constructor
Seperti method, constructor juga bisa di
overload artinya setia objek dijalankan akan ada consructor yg dijalankan sesui
jumlah, type atau urutan argument yg diberikan untuk parameter constructornya.
contoh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class serialkomunikasi
{
public
serialkomunikasi( int baudrate)
{
}
public
serialkomunikasi(int baudrate, int data )
{
}
}
class penggunaanSerial
{
static void Main(string[]
args)
{
seserialkomunikasi Com1 =
new serialkomunikasi(9600);
// atau
serialkomunikasi Com1 =
new serialkomunikasi(9600,8);
}
|
Komposisi
Komposisi adalah Objek Referensi sebagai
Instance Variabel class Lain
Pada situasi tertentu membuat referensi obyek yang sudah ada lebih mudah daripada menulis ulang kode objek untuk class baru dalam proyek-proyek baru.
Penggunaan referensi ke obyek dari sebuah class yang sudah ada sebagai anggota objek baru ini disebut komposisi.
Salah satu bentuk reusable dlm perangkat lunak adalah komposisi, di mana member class memiliki referensi ke objek dari class lainnya.
Pada situasi tertentu membuat referensi obyek yang sudah ada lebih mudah daripada menulis ulang kode objek untuk class baru dalam proyek-proyek baru.
Penggunaan referensi ke obyek dari sebuah class yang sudah ada sebagai anggota objek baru ini disebut komposisi.
Salah satu bentuk reusable dlm perangkat lunak adalah komposisi, di mana member class memiliki referensi ke objek dari class lainnya.
Penggunaan referensi “this”
Setiap objek dapat mengakses referensi ke
dirinya sendiri, yang disebut referensi this. Referensi this dapat merujuk
secara implisit ke variable instance, properties dan method dari sebuah objek.
Keyword this umumnya digunakan di dalam methods, di mana this adalah referensi ke objek yang sedang digunakan oleh method tsb.
Keyword this umumnya digunakan di dalam methods, di mana this adalah referensi ke objek yang sedang digunakan oleh method tsb.
Contoh this
|
1
2
3
4
5
6
7
8
9
10
11
12
|
class contohsaja
{
private int dataku =10;
public int tambahkan()
{
int dataku = 33;
// variable lokal
this.dataku++;
// instance variable dataku + 1 = 10 +1
}
}
|
this.dataku mengacu ke instace variable
(private int dataku =10 , bukan lokal variable int dataku =33 ).
Inheritance (pewarisan)
Kita bisa membuat class baru dengan cara
menurunkan(inherit) class yg sudah ada. Jadi kita tidak perlu repot membuat
class baru dari nol . Sebagai contoh kita ingin membuat class kalkulator
Statistik yg mempunyai method hitung rata rata. Kita tak perlu membuat class
kalkulator statistik baru dari awal ,kita bisa membuat class turunan
dari class kalkulator yg sudah ada.
Member Class turunan dapat mengakses member class public dan protected dari class induk. Member class protected dari class induk dapat diakses oleh class turunan
Method dari class induk dapat ditulis kembali (redefined) di kelas turunannya dalam bentuk :
- Abstract method pada class abstract (class induk yg berisi abstrak method)
- Virtual method pada non class abstract.
method yg ditulis kembali di dahului oleh keyword “override”
Member Class turunan dapat mengakses member class public dan protected dari class induk. Member class protected dari class induk dapat diakses oleh class turunan
Method dari class induk dapat ditulis kembali (redefined) di kelas turunannya dalam bentuk :
- Abstract method pada class abstract (class induk yg berisi abstrak method)
- Virtual method pada non class abstract.
method yg ditulis kembali di dahului oleh keyword “override”
Objek dari classInduk adalah bukan objek
classTurunan, objek classTurunan adalah objek classInduk. misal class induk :
mobil class turunan : toyota,honda,hyundai ,toyota adalah mobil
tapi mobil adalah bukan toyota.
Contoh Penerapan class induk – class turunan pada aplikasi kalkulator
..
Berikut ini contoh Diagram Class induk
kalkulatorSederhana dan 2 buah Class turunannya.
Class turunan mewarisi data dan method dari
Class induk , melihat pada contoh diatas kedua Class turunan tdk perlu
lagi membuat method jumlah() dan method kurang() karena Class
turunan mewarisi keduanya.
Cara Class induk mewarisi Class turunannya:
NamaClass_Turunan : namaClass_Induk
Class Abstrak
Class Abstrak adalah class yg digunakan sebagai Class induk dan methodnya tidak ada implemantasinya hanya berupa deklarasi saja . Implementasi dari class abstrak dilakukan pada class turunannya. Class turunan wajib meng-implementasi semua method abstrak dari class induk. Class abstrak di dahului keyword “abstract”
Class Abstrak adalah class yg digunakan sebagai Class induk dan methodnya tidak ada implemantasinya hanya berupa deklarasi saja . Implementasi dari class abstrak dilakukan pada class turunannya. Class turunan wajib meng-implementasi semua method abstrak dari class induk. Class abstrak di dahului keyword “abstract”
contoh class abstrak :
|
1
2
3
4
5
6
|
public abstract class
mobil // mobil adalah class abstrak
{
public
abstract starterMesin(); // method abstract krn tdk ada implentasi
public
abstract tekanPedalGas();
public
abstract tekanPedalRem();
}
|
Method abstrak
Method abstrak hanya ada di dalam class
abstrak, penulisan method ini di dahului dgn keyword “abstract”. Method
abstrak tidak mempunyai implementasi hanya deklarasi saja.
contoh Class dan method abstrak :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
namespace contohClassAbstak
{
public abstract class
kalkulatorInduk
{
public abstract int
jumlah(int x, int y);
publik
abstract int kurang(int x, int y);
}
public class
statistikKalkulator : kalkulatorInduk // kalkulatorInduk sbg class induk
{
public
override int jumlah(int x, int y)
{
return x + y;
}
public
override int jumlah(int x, int y)
{
return x - y;
}
} // penutup class
} //penutupn namespace
|
Method Virtual
berbeda dgn method abstract, method virtual adalah method dari class induk yg ditulis kembali dari pada class turunan dan pada class induk method tsb juga punya implementasinya .
berbeda dgn method abstract, method virtual adalah method dari class induk yg ditulis kembali dari pada class turunan dan pada class induk method tsb juga punya implementasinya .
Contoh:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class classInduk
{
public
virtual methodA
{
//code
program
}
}
class classAnak : classInduk
{
public
override methodA
{
//code
program
}
}
|
Menyembunyikan method class induk dgn
keyword “new”
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using System;
class induk
{
public void
methodInduk()
{
Console.WriteLine("
method induk");
}
}
class anak : induk
{
public new void
methodInduk() // method ini menyembunyikan methodinduk dari base class.
{
console.WriteLine("method
anak");
}
}
class Program
{
static void Main()
{
induk ref1 = new
induk();
induk ref2 = new
anak();
anak ref3 = new
anak();
ref1.methodInduk();
ref2.methodInduk();
ref3.MethodInduk();
}
}
|
Output
method induk
method induk
method anak
method induk
method anak
istilah istilah yang anda harus ketahui:
namespace.
using.
framework class library (FCL).
class.
objek.
method.
inheritance.
polymorphisme
instance.
instance variable.
modifier (public,private,internal,protected).
constructor.
parameter / argument.
referensi parameter, value parameter.
return value.
class abstrak
method abstrak
overloading method.
overiding method
virtual method
sealed method
interface
using.
framework class library (FCL).
class.
objek.
method.
inheritance.
polymorphisme
instance.
instance variable.
modifier (public,private,internal,protected).
constructor.
parameter / argument.
referensi parameter, value parameter.
return value.
class abstrak
method abstrak
overloading method.
overiding method
virtual method
sealed method
interface






0 comments:
Post a Comment