8000 oop:access modifier · jagongoding-com/python-menengah@6b27fb9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6b27fb9

Browse files
committed
oop:access modifier
1 parent 45c60e7 commit 6b27fb9

File tree

4 files changed

+73
-0
lines changed

4 files changed

+73
-0
lines changed

05-oop/05-enkapsulasi/01-public.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Segitiga:
2+
3+
def __init__(self, alas, tinggi):
4+
self.alas = alas
5+
self.tinggi = tinggi
6+
self.luas = 0.5 * alas * tinggi
7+
8+
9+
segitiga_besar = Segitiga(100, 80)
10+
11+
# akses variabel alas, tinggi, dan luas dari luar kelas
12+
print(f'alas: {segitiga_besar.alas}')
13+
print(f'tinggi: {segitiga_besar.tinggi}')
14+
print(f'luas: {segitiga_besar.luas}')

05-oop/05-enkapsulasi/02-protected.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Mobil:
2+
def __init__(self, merk):
3+
self._merk = merk
4+
5+
6+
class MobilBalap(Mobil):
7+
def __init__(self, merk, total_gear):
8+
super().__init__(merk)
9+
self._total_gear = total_gear
10+
11+
def pamer(self):
12+
# akses _merk dari subclass
13+
print(
14+
f'Ini mobil {self._merk} dengan total gear {self._total_gear}'
15+
)
16+
17+
ferrari = MobilBalap('Ferrari', 8)
18+
ferrari.pamer()

05-oop/05-enkapsulasi/03-private.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Mobil:
2+
def __init__(self, merk):
3+
self.__merk = merk
4+
5+
def tampilkan_merk(self):
6+
print(f'Merk: {self.__merk}')
7+
8+
jip = Mobil('Jeep')
9+
# print(f'Merk: {jip.__merk}')
10+
jip.tampilkan_merk()
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Mobil:
2+
def __init__(self, tahun):
3+
self.tahun = tahun
4+
5+
@property
6+
def tahun(self):
7+
return self.__tahun
8+
9+
@tahun.setter
10+
def tahun(self, tahun):
11+
if tahun > 2021:
12+
self.__tahun = 2021
13+
elif tahun < 1990:
14+
self.__tahun = 1990
15+
else:
16+
self.__tahun = tahun
17+
18+
sedan = Mobil(2200)
19+
20+
# tidak error
21+
print(f'Mobil ini dibuat tahun {sedan.tahun}')
22+
23+
# error
24+
# print(f'Mobil ini dibuat tahun {sedan.__tahun}')
25+
26+
# tidak error
27+
sedan.tahun = 1800
28+
# tidak error tapi tidak berubah
29+
# sedan.__tahun = 2021
30+
31+
print(f'Mobil ini keluaran {sedan.tahun}')

0 commit comments

Comments
 (0)
0