본문 바로가기
반응형

분류 전체보기340

[파이썬&루비] 오버라이드(Override) 오버라이드(Override) 오버라이드는 재정의라는 의미를 내포하고 있다.상속이라는 개념에서 상당히 중요한 기능이며, 복잡해진 객체 지향을 좀 더 잘 사용하기 위해 만들진것이다. 오버라이드는 상속 받은 메소드를 재정의 하는 것을 말한다.부모 객체에서 자식 객체로 메소드가 넘어갈 때 이 메소드의 기능을 수정 하기 위해해당 메소드의 코드를 다시 작성하는데 이것이 오버라이드이다. 123456789101112131415161718192021222324# pythonclass C1: def m(self): return 'parent'class C2(C1): def m(self): return super().m() + ' child' passo = C2()print(o.m()) # rubyclass C1 def m.. 2017. 6. 2.
[파이썬&루비] 클래스 멤버(Class Member) 클래스 멤버(Class Member) 1234567# rubyrequire 'date'd1 = Date.new(2000, 1, 1)d2 = Date.new(2010, 1, 1) p d1.year()p d2.year()p Date.today()cs 지금까지 배운 변수와 메소드는 '인스턴스 멤버'였다.이번에 배울 내용은 '클래스'에 소속 되어있는 변수와 메소드이다.그렇다면 인스턴스의 멤버와 클래스멤버의 차이점과,왜 이런 차이점을 가지고 있는지에 대해 생각해보자. 먼저 루비에서 날짜에 대한 기능을 가지고 있는 객체를 살펴보자require 로 date객체를 불러온 후 d1이라는 변수에 Date 객체를 이용해서 인스턴스를 만든다.똑같은 방법으로 d2 변수에도 인스턴스를 만든다. 현재 d1에는 2000년 1월 1일.. 2017. 6. 1.
[파이썬&루비] 상속(Inheritance) 상속(Inheritance) 우선 비유를 통해 상속을 알아보자. 우리가 자전거를 만든다고 했을때, 부품들을 조합해서 만들게된다.이렇게 사용되는 부품을 함수라고 생각해보자. 이렇게 함수라는 부품을 조합해서 자전거라는 객체를 만들었다.그리고 이 자전거를 다른사람에게 팔았는데, 팔린 후 새로운 기능을 달고싶어했다.결국, 자전거에 전조등을 달게 되었는데 기존에 깔끔하게 자전거 기능만 담고있던 자전거에전조등의 기능을 추가하면서 새로운 객체가 되었다. 위의 예 처럼 새로운 기능을 추가해서 새로운 객체를 만드는 것.이것을 상속(Inheritance)이라고한다. 123456789101112131415161718#pythonclass Class1(object): def method1(self): return 'm1' c.. 2017. 6. 1.
[파이썬&루비] 캡슐화(Encapsulation) 캡슐화(Encapsulation) 객체는 규모 있는 애플리케이션을 만드는 과정에서 필요한 기능이다.따라서 일반적인 프로그래밍 과정에서 객체의 필요성에 대해 못 느낄 수도 있다.객체는 부품과 같다. 이러한 객체를 조립해서 큰 프로젝트를 만들어 가는 것이다.따라서 좋은 객체를 만드는 것은 좋은 부품을 만드는 것이며, 이를 위해서 여러가지 조건을 충족해야한다.그 중에 하나가 인캡슐레이션, 즉 캡슐화이다. 캡슐화란 객체가 어떤 일을 하는지와 상관없이 견고한 케이스로 감싸듯 외부의 영향을 받지 않게 하는 것이다.즉, 이러한 케이스, 캡슐을 씌우는 것은 외부로부터 영향을 받아 변경되지 않도록 하는 것이다.함수나 변수도 캡슐로 감싼 예 중의 하나이다.함수의 조건문 반복문 등도 함수라는 캡슐로 싼 것이나 다름없고, 이.. 2017. 6. 1.
반응형