공부/AIFFEL

FUNDAMENTAL 10. 당신의 행운의 숫자는? 나만의 m면체 주사위 위젯 만들기

dong_dong_2 2021. 1. 20. 18:21

1. 객체란
    - 파이썬에서 모든 것은 객체다. 그리고 대부분의 객체는 속성과 메소드를 갖는다
    - 파이썬에서 object라 불리는 것들은 모두 변수에 할당될 수 있고, 함수의 인자로 넘겨질 수 있다.
    - 변수란 단지 이름일 뿐, 데이터가 담긴 객체에 그냥 이름을 붙이는 것이다.
    - upper, id, append, copy, deepcopy
2. 객체 지향 프로그래밍이란
    - OOP : Object Oriented Programming
    - 객체 지향과 절차 지향
3. 클래스 선언 및 인스턴스화
    - 클래스 선언 : class
    - 인스턴스화 : 클래스로 객체를 만드는 것. ex = class()
4. 클래스 속성과 메소드
    - 속성은 상태를 표현한다. 속성은 변수로 나타낸다
    - 메소드는 동작을 표현한다. 메소드는 def를 사용하여 나타낸다. 첫번째 인자는 self값을 적어준다.
    - 인스턴스의 속성으로 사용하고 싶은 변수는 self.를 사용한다.
5. 생성자
    - __init__ : 초기화 기능, 인스턴스화는 못한다.
6. 클래스 변수와 인스턴스 변수
    - 클래스 내 변수를 선언하는 방법은 2가지가 있다.
    - 하나는 변수와 동일하게 변수명을 쓰고 값을 할당하는 방법
    - 다른 하나는 __init__ 메소드 안에 self.와 함께 설정하는 방법
    - 클래스 변수 : 클래스에 배로 선언된 속성이다. 클래스에 의해 생성된 모든 객체에서 같은 값을 조회할 때 가능하다.
    - 인스턴스 변수 : __init__()안에서 self를 사용해 선언된 변수를 말한다. 객체가 인스턴스화 될 때마다 새로운 값이 할당되며 서로 다른 객체 간에는 값을 공유할 수 없다.
    - 즉, 객체 단위로 변경되는 변수는 인스턴스 변수로 선언하라
7. 객체 지향 프로그래밍을 하는 이유
    - 추상화와 캡슐화를 하기 위함이다.
    - 추상화 : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.
    - 캡슐화 : 객체의 속성과 행위(메서드)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다.(-> 모듈, 패키지, 라이브러리)
8. 클래스, 조금 더 알아보기 -> 상속
    - 새로운 클래스(기존 클래스)로 선언함
    - 기존의 클래스와 비슷한 기능과 속성을 유지한 채 작은 변화만 추가해 다른 클래스를 만들고 싶을 때 사용함
    - 상속 받은 클래스를 "자식 클래스", "서브 클래스", "파생된 클래스" 라고 부른다
    - 기존 클래스를 "부모 클래스", "슈퍼 클래스", "베이스 클래스" 라고 부른다
    - add(메소드 추가하기), override(메소드 재정의하기), super(부모 메소드 호출하기)