Tabel Konten
Inheritance Class
Class-class bisa menurunkan properti dan method yang ada pada class lainya. Class yang diturunkan biasanya disebut subclass sedangkan class yang menurunkanya disebut parent class. Inheritace sendiri bisa digunakan menggunakan kata extends. Seperti dalam penggunaan class pemain dan class kiper
class pemain{
public $nama;
public function tendang(){
echo "tendang bola";
}
}
class kiper extends pemain{
}
$yusuf = new kiper();
$yusuf -> tendang();
Tampilan Properti Dan Method PHP
Pada artikel sebelumnya kita sering menggunakan kata public sebelum membuat properti dan method pada class Buku di file yang kita bernama buku.php. Kata public tersebut menandakan bahwa setiap orang dari manapun bisa mengaksesnya. Ini disebut tampilan properti dan method atau visibility properti dan method. PHP sendiri memiliki 3 tampilan dalam menampilkan properti dan method yakni:
Jenis Visibility/Tampilan | Hak akses |
---|---|
private | Hanya mengizinkan untuk mengakses member dari class yang sama. Jika class A dan B menginstance ke class C. Maka class A bisa mengakses class B maupun sebaliknya. |
protected | Memberikan akses ke member class ketika proses inheritance |
public | Semua class dan file bisa mengaksenya tanpa terkecuali |
Mari kita buat class Konsumen pada file konsumen.php dengan menggunakan private, agar data dari konsumen kita tidak bisa dilihat oleh sembarang orang.
<?php
class Konsumen {
private $id;
private $namadpn;
private $namablkg;
private $email;
public function __construct(
int $id,
string $namadpn,
string $namablkg,
string $email
) {
$this->id = $id;
$this->namadpn = $namadpn;
$this->namablkg = $namablkg;
$this->email = $email;
}
public function getId(): id {
return $this->id;
}
public function getNamadpn(): string {
return $this->namadpn;
}
public function getNamablkg(): string {
return $this->namablkg;
}
public function getEmail(): string {
return $this->email;
}
public function setEmail(string $email) {
$this->email = $email;
}
}
Lalu buatlah class buku seperti ini:
<?php
class Buku {
private $isbn;
private $judul;
private $pengarang;
private $tersedia;
public function __construct(
float $isbn,
string $judul,
string $pengarang,
int $tersedia = 0
) {
$this->isbn = $isbn;
$this->judul = $judul;
$this->pengarang = $pengarang;
$this->tersedia = $tersedia;
}
public function getIsbn(): float {
return $this->isbn;
}
public function getJudul(): string {
return $this->judul;
}
public function getPengarang(): string {
return $this->pengarang;
}
public function tersedia(): int {
return $this->tersedia;
}
public function getPrintableTitle(): string {
$result = '<i>' . $this->judul . '</i> - ' . $this->pengarang;
if (0>$this->tersedia) {
$result .= ' <b>Tidak tersedia</b>';
}
return $result;
}
public function getCopy(): bool {
if ($this->tersedia < 1) {
return false;
} else {
$this->tersedia--;
return true;
}
}
public function addCopy() {
$this->tersedia++;
}
}
?>
Kemudian untuk menggunakanya kita menggunakan class init.php dengan code sebagai berikut:
<?php
required_once("/buku.php");
required_once("/konsumen.php");
$buku1 = new Buku(9785267006323,"1984", "George Orwell", 12);
$buku2 = new Buku(9780061120084,"To Kill a Mockingbird", "Harper Lee", 2);
$konsumen1 = new Konsumen(1, 'John', 'Tor', '[email protected]');
$konsumen2 = new Konsumen(2, 'Mary', 'Vania', '[email protected]');
?>
Dengan demikian kode yang kamu buat lebih rapi dan mudah untuk digunakan.
PHP Interface
Sebuah interface atau antarmuka pada php yang digunakan untuk daftar method digunakan untuk setiap class. Tetapi method tidak dijabarkan. Untuk menggunakannya kamu bisa menggunakan kata kunci implements. Buatlah file bernama implementasi.php dengan script kode sebagai berikut:
<?php
interface bukuInterface{
public function tersedia();
}
class Buku implements bukuInterface{
public $tersedia;
public function __construct(int $tersedia){
$this->tersedia = $tersedia;
}
public function tersedia(){
if ($this->tersedia > 0){
echo "tersedia";
}
}
}
$bukuDongeng = new Buku(12);
$bukuDongeng -> tersedia();
?>
static dan final Method / Properti
static adalah kata kunci yang digunakan untuk mendefinisikan static method atau properti yang bisa diakses tanpa membuat suatu object di class tersebut.
class Konsumen{
static $nama = "konsumen baru";
static function getNama(){
echo self::$nama;
}
}
$ucup = new Konsumen();
$ucup::getNama();
Sedangkan kata kunci final didefinisikan method atau properti tidak bisa diganti pada childclass. Sehingga tidak bisa diturunkan (inherit) pada yang lain.
class Ayah{
final function gunakanUang(){
echo "Gunakan sebijak-bijaknya";
}
}
class Anak extends Ayah{
public function bermain(){
echo "bermain dengan teman teman";
}
}
Class Abstract
Kata kunci abstrak digunakan untuk membuat class dan method abstrak. Method abstak hanya bisa diguanakan pada abstrak class. Keuntungan abstrak class dapat digunakan hanya ketika diturunkan pada child class, dan harus mengimplementasikan semua abstrak method.
abstract class AdminFee{
abstract public function pembayaran($bayar);
protected function addFee(){
return 2;
}
}
class Total extends AdminFee{
public function pembayaran($bayar){
return $this->addFee() + $bayar;
}
}
$transaksi = new Total();
echo $transaksi->pembayaran(6000); //menampilkan 6002
Tidak ada komentar:
Posting Komentar