주사위 속 CS

매일 공부(ML)·2021년 10월 1일
0

CS 

목록 보기
4/33

링크텍스트

목차

1. 객체 지향 프로그래밍

2. 클래스 기본 문법

객체 지향 프로그래밍

-객체: 속성(상태,변수) 과 메소드(동작, 함수)를 갖는 것으로
모든 변수에 할당할 수 있고 인자로 념겨지는 것들의 총칭

-객체 지향 프로그램: 객체를 활용한 프로그래밍으로 자신만의 데이터와 프로시저를 갖고 각 객체들을 서로 연결되어 다른 객체 제공하는 유기적 집합체

+)추상화(abstraction): 복잡한 자료, 모듈, 시스템으로 부터
핵심적인 개념 또는 기능 간추려 낸다

+)캡슐화(encapsulation): 객체의 속성(data fields)와 행위 (methods)를 하나로 묶음
:실제 구현 내용 일부를 은닉.
-id함수(): 내장함수, 객체의 고유값 반환

-copy() : 얕은 복사로 원본 데이터는 그대로 두고 참조 데이터 id만 복사

-deepcopy(): 깊은 복사로 원본 객체의 값을 복사

클래스 기본 문법

  1. 클래스 선언 및 인스턴스화
    -클래스 선언(class 키워드 이용)

    -객체 인스턴스화
    :클래스 객체 만들기 -> 클래스 이용
    +form) 선언한 클래스 이름에 괄호 적고 적당한 변수 할당
    +)객체 인스턴스화 시키는 것은 함수에 변수 할당과 유사하다.
    +)표기법: 카멜 케이스
    -클래스명은 주로 명사로 명명
    : 각 단어의 앞 글자를 대문자로 쓸 것

2.클래스 속성과 메소드

-클래스 속성 :상태 표현, 변수로 나타냄

:color = 'red', category = 'sports car'

:인스턴스 객체.속성명 [클래스 속성에 접근하는 법]
-메소드 :동작 표현, 함수로 나타냄., 키워드 def

:클래스의 메서드는 첫번째 인자는 self값 적어야함

:인스턴스객체.메소드명 [메소드를 호출하는 법]

:매직 메소드 https://rszalski.github.io/magicmethods/

:주행 메서드 : def drive(self) 메서드명 정의.

:가속 메서드 def accel(self,현재 속도 인자명, 가속할 값 인자명)

현재속도 인자명=current_speed.->self.speed_up
인자명= speed_up -> self.current_speed

  • 메소드호출 in 인터프리터(코드 한 줄씩 읽음)
    인자를 넣지 않아도 인터프리터에는 기본 인자 한개를 사용하고 있고 그것은 self입니다

3.접두사 self.

:인스턴스의 속성으로 사용하고 싶은 변수를 self.써줌
왜냐하면, self인자를 통해 선언된 객체 값. 의미한다

-self요약

1)self는 자기 자신입니다.

2)클래스에 의해 생성된 객체(인스턴스)를 가리킵니다.

3)클래스의 메서드는 인자로 해당 인스턴스(self)받음

4)메소드를 호출할 때는 self인자 전달X

5)self의 값은 인터프리터가 제공

6)인스턴스 변수 정의할 때 접두사 self.을 붙여줌

4.생성자

1)init

-메소드 안에 인자 전달로 객체의 속성값 초기화

-지정하고 싶을 때 값을 전달해줌

5.클래스 변수와 인스턴스 변수

1)변수명쓰고 값을 할당

2)init메소드 안에 self.함께 설정

3)클래스 변수
:클래스에 바로 선언된 속성.

:모든 객체에서 같은 값을 조회

4)인스턴스 변수

:init() 안에 self를 사용해 선언된 변수

:객체가 인스턴스화 되면 새로운 값 할당 (공유X)

  1. 상속

:기존 클래스 기능 유지한 채 새로운 속성만 추가하여 새로운 클래스를 선언할 때 사용.

:소괄호 안에 상속받을 클래스 입력을 적음

-자식 클래스,서브 클래스, 파생된 클래스

: 상속받은 클래스 - 부모클래스의 변경사항이 그대로 반영됨

-부모 클래스, 슈퍼 클래스, 베이스 클래스

: 기존 클래스

-상속 사용법

1)메소드 추가하기(add)

:새로운 메소드 추가

2)메소드 재정의하기(override)

:기존 메소드 변경

3)부모 메소드 호출하기(super())

ex)
def(부모클래스의)메소드이름():
super().메소드이름()

  1. 마지막 결과 도출
    if name == 'main'

:현재 스크립트 파일이 프로그램의 시작점이 맞는지 판단하는 작업입니다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글