클래스 (Class)

bong·2022년 6월 7일

Python

목록 보기
4/9

클래스?

여기서는 객체지향 프로그래밍에 대한 내용은 제외하고 클래스 자체의 사용법에 대해서만 정리한다.


클래스 만들기

1. 클래스, 변수, 메서드

  • 클래스 이름은 파스칼 케이스로
  • 변수, 메서드 선언 가능
class Human():
	def greeting(self):
    	print("Hello!")
        
h = Human()
h.greeting()

2. 접근제어자 (Access Modifier)

  • public, protected, private
  • 언더바로 접근제어자 표현
  • 파이썬에서는 protected, private로 설정해도 실제로 런타임에서 접근을 제한하지는 않음
  • 참고

2. 생성자 (Constructor)

  • 객체 생성시에 자동으로 실행되는 메서드
class Human():
	def __init__(self, name, age):
    	self.name = name
        self.age = age
        
    def greeting(self):
    	print("안녕하세요!")
        
h1 = Human("철수", 16)

3. 상속 (Inheritance)

  • 부모 클래스의 기능을 그대로 물려받을 수 있음
  • 기존 클래스를 변경하지 않고 기능을 추가하거나 기존 기능을 변경하려고 할 때 사용?
class Soldier(Human):
    def set_army_inform(self, army_name, rank):
        self.army_name = army_name
        self.rank = rank
        
s = Soldier("민수", 30)
s.set_army_inform(12345, "대위")

4. 메서드 오바라이딩 (Method Overriding)

  • 자식 클래스에서 부모 클래스의 메서드와 동일한 이름의 메서드를 다시 작성하는 것
  • 부모 클래스의 메서드 대신 자식 클래스에서 오버라이딩한 메서드가 호출됨
class Soldier(Human):
    ...
    
    def greeting(self):
        print("충성!")
        
s = Soldier("민수", 30)
s.greeting()

5. 클래스 변수

  • 클래스이름.클래스변수 로 사용 가능
  • 클래스로 만든 모든 객체에 공유 (변경하면 모든 객체에 적용)
  • 객체 변수를 훨씬 많이 사용하긴 함
class Family:
    lastname = "김"

a = Family()
b = Family()
c = Family()

print(a.lastname, b.lastname, c.lastname)

Family.lastname = "박"

print(a.lastname, b.lastname, c.lastname)

0개의 댓글