반응형

 

클래스 사용법

 

 

 

  • 기본 사용법
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);
	}
}

 

결과 화면1

 

 

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)

 

결과 화면3

 

 

  • 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);
	}
}

 

결과 화면2 : 상속 받을 경우 다 사용 가능

 

 

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)

 

결과 화면4

 

 

  • 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)

 

결과 화면5

 

 

 

  • 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)

 

결과 화면6

 

 

 

  • 다중 상속 예시
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)

 

결과 화면7

 

 

반응형

'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