Sekalipun awalnya pascal adalah bahasa pemrograman prosedural yang tidak menyediakan OOP (Object oriented programming). Tapi sekarang pascal bisa menggunakan OOP. Untuk mendeklarasikan class, kita bisa menggunakan kata "object". OOP dalam pascal tentu saja menyediakan constructor, destructor, inheritance, overloading, overriding seperti OOP lainnya.
program OOP;
uses crt;
type
Persegi_panjang = object
private
p, l: integer;
public
function Luas:integer;
procedure atur_panjang(x:integer);
procedure atur_lebar(x:integer);
end;
function Persegi_panjang.Luas:integer;
begin
Luas:=p*l;
end;
procedure Persegi_panjang.atur_panjang(x:integer);
begin
p:=x;
end;
procedure Persegi_panjang.atur_lebar(x:integer);
begin
l:=x;
end;
var pp:Persegi_panjang;
Begin
clrscr;
pp.atur_lebar(5);
pp.atur_panjang(6);
writeln('Luas = ', pp.luas);
readln
End.
Objek yang diwariskan dalam bahasa pascal diapit dalam tanda kurung setelah penulisan tipe "object". Dengan pewarisan kita tidak perlu mendeklarasikan ulang anggota yang sudah dideklarasikan dalam objek yang diwariskan kecuali kita akan melakukan method overloading atau overriding. Berikut ini adalah contoh cara menggunakan pewarisan / inheritance dalam bahasa pascal.
program helloworld;
uses crt;
type
Segitiga = object
private
a, t : integer;
public
function Luas (x:integer; y:integer) : real;
end;
Jajaran_genjang = object (Segitiga)
private
sisi1, sisi2:integer;
public
function Luas (x:integer; y:integer) : real;
function Keliling (s1:integer; s2:integer) : real;
end;
function Segitiga.Luas(x:integer; y:integer):real;
begin
a:=x;
t:=y;
Luas:=x*y/2;
end;
function Jajaran_genjang.Luas(x:integer; y:integer):real;
begin
a:=x;
t:=y;
Luas:=x*y;
end;
function Jajaran_genjang.Keliling(s1:integer; s2:integer) : real;
begin
Keliling:=(s1+s2)*2;
end;
var
bangun1:Segitiga;
bangun2:Jajaran_genjang;
Begin
clrscr;
writeln('Luas = ', bangun1.Luas(2, 3):2:2);
writeln('Luas = ', bangun2.Luas(2, 3):2:2);
readln
End.
Pada contoh di atas, selain menggunakan pewarisan, kita juga melakukan method overriding dengan mengubah isi dari method luas.
1 comments:
Klik di sini untuk berkomentarKok gue salah fokus sama tema terminalnya :v jangan-jangan agan pakek lubuntu ?
Jawab