• Tidak ada hasil yang ditemukan

CSG2H3 Object Oriented Programming. Inheritance -RSM-

N/A
N/A
Protected

Academic year: 2021

Membagikan "CSG2H3 Object Oriented Programming. Inheritance -RSM-"

Copied!
40
0
0

Teks penuh

(1)

D 8 FE B 2 0 1 3

CSG2H3

Object Oriented Programming

(2)

INHERITANCE (Part 1)

Class Hierarchies

Extending Objects

Overriding Methods

extends

interface

abstract

implements

super

(3)

8 FE B 2 0 1 3

Inheritance Examples

Person

- String name

- String address

+ Person ()

+ Person (String name, String

address)

+ Setter

+ Getter

Student

- String name

- String address

+ Student ()

+ Student (String name, String

address)

+ Setter

+ Getter

(4)
(5)
(6)
(7)

8 FE B 2 0 1 3

Penyederhanaan kelas student dgn

meng-extends kelas person

kelas Student tampak

„tidak punya‟ method &

(8)

Main

Akan memanggil constructor

Student()

Hasil pemanggilan constructor

(9)

8 FE B 2 0 1 3

(10)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Inheritance

Inheritance models “

is a

” relationships

object “is an” other object if it can

behave in the same

way

inheritance uses

similarities

and

differences

to model

(11)

8 FE B 2 0 1 3

Inheritance is a way of:

organizing

information

grouping

similar classes

modeling similarities

among classes

(12)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Inheritance

First, let‟s discuss some important facts about

inheritance…

(13)

8 FE B 2 0 1 3

Inheritance

Where there‟s inheritance, there‟s an

Inheritance Hierarchy

of classes

We can say:

Reptile, Mammal

and

Fish

inherit from

Animal

Dog, Cat,

and

Moose

inherit from

Mammal

Animal

Reptile

Mammal

Fish

Cat

Moose

Dog

(14)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

(15)

8 FE B 2 0 1 3

Superclasses and Subclasses

Animal is called

superclass

or

base class

or

parent class

in our car example,

Vehicle

is called

superclass

Fish is called

subclass

or

derived class

or

child class

in our car example,

SportsCar

is

subclass

Any class can be both at same time

e.g.,

Mammal

is

superclass

of

Moose

and

subclass

of

Animal

(16)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Another Examples

(17)

8 FE B 2 0 1 3

Questions - 1

Apa yang diwariskan oleh

superclass ke subclass –

(18)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Inheriting Capabilities and Properties

Subclass

inherits

all

public

capabilities

of its

superclass

if

Animal

s eat and sleep, then

Reptile

s

,

Mammal

s, and

Fish

eat and sleep

As a general pattern, subclasses:

inherit

public

capabilities

(methods)

inherit

private

properties

(instance variables)

only

indirect

access via inherited superclass methods that

make use of them (pseudo inheritance)

(19)

8 FE B 2 0 1 3

Question - 2

Apakah

behaviour

subclass

HARUS

mirip 100 %

dengan

behaviour

superclass ?

(20)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Subclass

specializes

its superclass, by:

adding

new methods,

overriding

existing methods

,

and

defining

“abstract”

methods

declared by parent

that have no code in them  next lecture !!

Superclass

factors out

capabilities common

among its subclasses

subclasses are defined by their

differences

from their

(21)

8 FE B 2 0 1 3

Adding new method

Menambahkan atribut

NIM

dan method

setNIM()

(22)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Overriding (Redefining) Methods

Method dgn nama sama namun

behaviour

berbeda

Baris ini ditambahkan pada

method getName() di

kelas Student

Partial

overriding

(23)

getName() yg

dipanggil dari kelas

mana ??

Dari kelas

mana?

(24)

super () pada method

Pemanggilan method tulisUmur()

ini akan menghasilkan apa?

(25)
(26)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Super pada constructor

Memanggil

constructor di

(27)

8 FE B 2 0 1 3

Contoh penggunaan

(28)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Question

Why is the statement that invokes the parent's

constructor called super()?

Does a child constructor always invoke a parent

constructor?

(29)

8 FE B 2 0 1 3

Method Resolution

First, Java checks to see if the instance‟s class

defines the method; if so, Java calls it

If not, Java “walks up the class inheritance tree”

from subclass to superclass until it either:

finds method, in which case it calls the inherited method

doesn‟t find method; this is a compile-time error (sending

a message for which there is no method)

(30)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Inheritance as Form of Abstraction

The root of a class hierarchy is the most general

object, because it is the superclass to every other

object in the hierarchy

can always say much more about how a subclass behaves

(31)

8 FE B 2 0 1 3

5 things you might find in

an

Inheritance Hierarchy

:

1)

superclass is

too general to declare all behavior

, so each subclass adds its own

behavior

2) superclass legislates an

abstract

behavior

and therefore delegates implementation

to its subclasses

3)

superclass

specifies behavior

, subclasses inherit behavior

4) superclass specifies behavior,

subclasses can choose

to

override

behavior

completely

just because a subclass inherits a method doesn‟t mean that it must act in the same way as its

superclass

subclass can choose to reject its superclass‟ implementation of any method and “do it my way”

5) superclass specifies behavior, subclasses can choose to override behavior

in part

(32)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Bagaimana membuat

agar

atribut/method

di

kelas

Parent

(superclass) tidak

(33)

8 FE B 2 0 1 3

(34)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Method

goodBehaviour()

tidak bisa

di-override

di kelas

(35)

8 FE B 2 0 1 3

final pada atribut

Jadi konstanta

lho…

(36)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

Atribut final tidak boleh diubah isinya lho…

Error: Cannot assign a

value to final variable

(37)

8 FE B 2 0 1 3

Question?

(38)

Exercise

Person

- String nama

- int umur

- String alamat

- String jenisKelamin

+ Person (String nama, int umur, String alamat, String jenisKelamin)

+ Setter

+ Getter

Student

- String ID

- int nilaiMath

- int nilaiBahasa

- int nilaiSains

+ Student (String ID, String nama, int umur, String alamat, String jenisKelamin, int nilaiMath, int nilaiBahasa, int nilaiSains)

+ Setter

+ Getter

(39)

E D 8 FE B 2 0 1 3

Kelas Person

Atribut

: nama, umur, alamat, jenis

kelamin

Buat constructor untuk set nilai atribut

Buat method getter/accessor

Kelas Student extends Person

Atribut

: ID, nilaiMath, nilaiBahasa,

nilaiSains

Buat Constructor untuk set nilai atribut

Buat method getter/accessor

Buat method:

hitungNilaiRata ()

Override method:

getAlamat

menambahkan

tulisan kota dan propinsi pada akhir

penulisan alamat (contoh:

[alamat]-Bandung- Jawa Barat

)

Implementasika kelas2 tsb

dengan bahasa Java

Buat driver untuk mengetes

kelas di atas dengan skenario:

Buat objek Student dengan ID 11301,

nama Budi, umur 18, alamat Jl. Setia

Budi, jenis kelamin L, nilai Math 70,

nilai Bahasa 80, nilai Sains 75

Tampilkan semua informasi Student

Tampilkan nilai rata-rata Student

(40)

12 -CR S -0 1 0 6 R E V IS E D 8 FE B 2 0 1 3

THANK YOU

Referensi

Dokumen terkait

Permasalahan yang akan dibahas dalam skripsi ini adalah apakah dokter gigi umum dalam melakukan pemasangan behel gigi yang seharusnya merupakan kewenangan dari dokter gigi

Selanjutnya menurut Davis dan Blake (1974), terdapat 11 variabel antara yang memengaruhi fertilitas yang salah satunya adalah umur pertama melakukan hubungan seksual, dengan

“I told you I was going to take piano lessons at the Shreek School, remember.. Then you got this strange look on your face, and you

Tidak hanya merebut kekuasan ekonomi, kaum buruh harus merebut kekuasaan politik. Salah satu tugas utama dari kaum buruh adalah menghancurkan mesin-mesin Negara borjuis yang lama. Kaum

Semoga laporan ini dapat bermanfaat untuk penulis khususnya dan bermanfaat untuk kegiatan Prakerin di 3D computer sekamung, pada tahun yang akan datang.. Akhirnya dengan segala

Passing adalah salah satu metode mengoper bola dari obyek satu ke obyek yang lain di lapangan dengan menggunakan kaki. Tujuan mengoper bola antara lain untuk menyerang, bertahan

User /admin dapat menambahkan unit baru dengan menekan tombol tambah data yang tersedia di submenu unit, setelah itu akan diarahkan ke menu tambah data ke unit.. Admin