반응형
클래스 사용법
- 기본 사용법
class 클래스명:
def __init__(self):
self.전역변수명1 = 데이터
def 함수명1:
self.전역변수명1 = 데이터
# java의 main
if __name__ == '__main__':
클래스명이름 = 클래스명()
print(클래스명이름.전역변수명1)
- 단일 상속시 사용법
class 클래스명:
def __init__(self):
self.전역변수명1 = 데이터
def 함수명1:
self.전역변수명1 = 데이터
# 상속
class 클래스2(클래스명):
def __init__(self):
super().__init__()
self.전역변수명2 = 데이터
def 함수명2:
self.전역변수명2 = 데이터
# java의 main
if __name__ == '__main__':
클래스명이름 = 클래스2()
print(클래스명이름.전역변수명1)
print(클래스명이름.전역변수명2)
- 다중 상속 사용법
class 클래스1:
def __init__(self):
self.전역변수명1 = 데이터
def 함수명1:
self.전역변수명1 = 데이터
class 클래스2:
def __init__(self):
self.전역변수명2 = 데이터
def 함수명2:
self.전역변수명2 = 데이터
# 다중 상속
class 클래스3(클래스1, 클래스2):
def __init__(self):
클래스1.__init__(self)
클래스2.__init__(self)
# java의 main
if __name__ == '__main__':
클래스이름 = 클래스3()
print(클래스이름.전역변수명1)
print(클래스이름.전역변수명2)
클래스 사용 예시
- Java 코드 -> Python 코드1
package day03;
public class Animal {
int life_span = 10;
void fightTiger() {
life_span = 0;
}
}
package day03;
public class OopTest01 {
public static void main(String[] args) {
Animal ani = new Animal();
System.out.println("life_span : " + ani.life_span);
ani.fightTiger();
System.out.println("life_span : " + ani.life_span);
}
}
class Animal:
def __init__(self):
self.life_span = 10
def fightTiger(self):
self.life_span = 0
if __name__ == '__main__':
ani = Animal()
print("life_span : ", ani.life_span)
ani.fightTiger()
print("life_span : ", ani.life_span)
- Java 코드 -> Python 코드2
package day03;
public class Human extends Animal{
int money = 0;
void work() {
money += 30000;
}
}
package day03;
public class OopTest02 {
public static void main(String[] args) {
Human h = new Human();
System.out.println("life_span : " + h.life_span);
System.out.println("money : " + h.money);
h.fightTiger();
h.work();
System.out.println("life_span : " + h.life_span);
System.out.println("money : " + h.money);
}
}
class Animal:
def __init__(self):
self.life_span = 10
def fightTiger(self):
self.life_span = 0
class Human(Animal):
def __init__(self):
super().__init__()
self.money = 0
def work(self):
self.money += 30000
if __name__ == '__main__':
hum = Human()
print("life_span : ", hum.life_span)
print("money : ", hum.money)
hum.fightTiger()
hum.work()
print("life_span : ", hum.life_span)
print("money : ", hum.money)
- Java 코드 -> Python 코드3
package day03;
public class Wonbin {
boolean flag_ugly = true;
void plastic() {
flag_ugly = false;
}
}
class Wonbin:
def __init__(self):
self.flag_ugly = True
def plastic(self):
self.flag_ugly = False
if __name__ == '__main__':
won = Wonbin()
print("ugly",won.flag_ugly)
won.plastic()
print("ugly",won.flag_ugly)
- Java 코드 -> Python 코드4
package day03;
public class Mavely {
int weight = 100;
void eat(int amount) {
weight += amount;
}
}
class Mavely:
def __init__(self):
self.weight = 100
def eat(self, amount):
self.weight += amount
if __name__ == '__main__':
mav = Mavely()
print("weight",mav.weight)
mav.eat(5)
print("weight",mav.weight)
- 다중 상속 예시
from day03.ooptest03 import Wonbin
from day03.ooptest04 import Mavely
class YoungHun(Wonbin, Mavely):
def __init__(self):
Wonbin.__init__(self)
Mavely.__init__(self)
# super().__init__() # 이런 경우 Wonbin만 반복받기에 둘 다 상속 받을 수 있게 해줘야 함
if __name__ == '__main__':
yh = YoungHun()
print("weight",yh.weight)
print("ugly",yh.flag_ugly)
yh.eat(100)
yh.plastic()
print("weight",yh.weight)
print("ugly",yh.flag_ugly)
반응형
'Python' 카테고리의 다른 글
[Python] 7장 자바 SWING (0) | 2024.03.28 |
---|---|
[Python] 6장 자바 SWING 설치 방법 및 생성, 실행 방법 (0) | 2024.03.27 |
[Python] 4.5장 과제 (0) | 2024.03.26 |
[Python] 4장 리턴 (0) | 2024.03.26 |
[Python] 3장 함수와 pass, 랜덤 (0) | 2024.03.26 |