728x90

상속 5

(코틀린) 상속과 오버라이딩

클래스 상속 형식 open class Super {// 상속할 수 있게 open 키워드 이용 } class Sub: Super() {// Super를 상속받아 Sub 클래스 선언 } 참고) 매개변수가 있는 상위 클래스의 생성자 호출 open class Super(name: String){ } class Sub(name: String): Super(name){ } 오버라이딩 예시 open class Super { open var someData = 10 open fun someFun(){ println("i am super class function : $someData") } } class Sub: Super(){ override var someData = 20 override fun someFun(){..

SOLID 원칙 (부제 객체지향)

이전 포스팅에서 객체지향 프로그래밍이 등장하게 된 배경을 기반으로 OOP 의 핵심 키워드와, 4가지 큰 특징에 대해서 알아보았다. 이번 포스팅에선 객체지향 프로그래밍의 특성과 장점을 최대한으로 끌어올리기 위해 프로그램을 어떻게 설계해야 하는 지에 대한 이야기를 다뤄본다. 객체지향 설계과정 요구사항 (제공해야 할 기능) 을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다. 기능을 구현하는 데에 필요한 데이터를 객체에 추가한다. 해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화) 객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다. 객체지향 설계원칙 흔히 SOLID 라고 부르는 5가지 설계원칙이 존재한다. 솔직히 원문 그대로 해석하면 외계어가 따로 없다. (공돌이의 한계인 듯 하..

객체지향 프로그래밍 다시 보기

객체지향을 이해하려면 객체지향 프로그래밍에 대해 설명해보라 하면 대부분 말문이 막힐 것이다. 그나마 대답한다고 하면, '어... 실세계의 사물 개념을 고대로 옮겨서 프로그래밍하는 방식..?' 이라고 대답할 것이다. 객체지향 프로그래밍의 개념을 이해하려면, 무작정 OOP 가 어떤 것이다 하고 외우기보단 등장 배경에 대해 알 필요가 있다. 따라서 객체지향 프로그래밍이 등장하기 이전의 프로그래밍 패러다임을 몇 가지 알아보자. 순차적 (비구조적) 프로그래밍 정의한 기능의 흐름에 따라 순서대로 동작을 추가하며 프로그램을 완성하는 방식이다. 간단한 프로그램의 경우, 이렇게 코드를 짜게 되면 흐름이 눈으로 보이기 때문에 매우 직관적일 것이다. 그러나, 조금이라도 프로그램의 규모가 커지게 되면 곤란해진다. 만일 A →..

파이썬 클래스 예제 1-9

1. 다음 코드가 동작하도록 자전차 클래스를 수정하세요. >> bicycle = 자전차(2, 100, "시마노") >> bicycle.정보() 바퀴수 2 가격 100 정답확인 -> class 차: def __init__(self, 바퀴, 가격): self.바퀴 = 바퀴 self.가격 = 가격 def 정보(self): print("바퀴수 ", self.바퀴) print("가격 ", self.가격) class 자동차(차): def __init__(self, 바퀴, 가격): super().__init__(바퀴, 가격) class 자전차(차): def __init__(self, 바퀴, 가격, 구동계): super().__init__(바퀴, 가격) self.구동계 = 구동계 bicycle = 자전차(2, 100,..

알고리즘 2022.04.27

파이썬 클래스 예제 1-8

1. 다음 코드가 동작하도록 차 클래스를 정의하세요. >> car = 차(2, 1000) >> car.바퀴 2 >> car.가격 1000 정답확인 -> class 차: def __init__(self, 바퀴, 가격): self.바퀴 = 바퀴 self.가격 = 가격 car = 차(2, 1000) print(car.바퀴) print(car.가격) 2. 차 클래스를 상속받은 자전차 클래스를 정의하세요. 정답확인 -> class 차: def __init__(self, 바퀴, 가격): self.바퀴 = 바퀴 self.가격 = 가격 class 자전차(차): pass 3. 다음 코드가 동작하도록 자전차 클래스를 정의하세요. 단 자전차 클래스는 차 클래스를 상속받습니다. >> bicycle = 자전차(2, 100) >..

알고리즘 2022.04.25
728x90