데이터처리프로그래밍 Data Processing Programming
08 객체와클래스
목차 1. 객체와클래스 2. 인스턴스변수, 클래스변수 3. 클래스매직메소드 4. 클래스의상속 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 3
1. 객체와클래스
객체 Object 객체란존재하는모든것들을의미 현실세계는객체로이루어져있고, 모든사건들은사물간의상호작용을통해발생 객체란객체의속성을이루는데이터들뿐만아니라그데이터의조작방법에대한내용도포함 객체는속성와기능을가지고있는것이핵심 https://www3.ntu.edu.sg/home/ehchua/progra mming/webprogramming/python1a_oop.html 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 5
객체지향프로그래밍Object Oriented Programming 객체개념을다루는것이객체지향 객체지향프로그래밍은컴퓨터프로그래밍기법중하나 프로그램을단순히데이터와처리방법으로나누는것이아니라, 프로그램을수많은 ' 객체 ' 라는단위로구분하고, 이객체들의상호작용하는방식 각각의객체는메시지를주고받고, 데이터를처리 https://www3.ntu.edu.sg/home/ehchua/programming/webprogr amming/python1a_oop.html 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 6
클래스 Class 객체의구성요소를담는개념 여러개의변수 ( 속성 attribute ) 와함수 ( 메소드 method ) 들을포함하는개념 객체를정의하는틀또는설계도 실제생성된객체는인스턴스 Instance 인스턴스는메모리에할당된객체를의미 클래스문법 class Book(object): class: 클래스예약어 Book: 클래스명 object: 상속받는객체명 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 7
Book 클래스정의 클래스이름 : Book 속성 저자 : author 책이름 : name 출판사 : publisher 출판일 : date 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 8
Book 클래스의메소드정의 클래스이름 : Book 속성 저자 : author 책이름 : name 출판사 : publisher 출판일 : date 메소드 책정보출력 : print_info(self) self 가있어야만실제로인스턴스가사용할수있는메소드로선언 print_info(self) 에서 self 는실제적으로 b1 인스턴스를의미 메소드안에서속성값을사용하지않을경우에는 self 생략가능 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 9
Lab. Book 클래스를이용해책추가하기 자신만의책생성하기 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 10
2. 인스턴스속성, 클래스속성
인스턴스속성 인스턴스속성은객체로부터인스턴스가생성된후에인스턴스에서활용하는속성 저자제목출판사발행일 클래스 저자제목출판사발행일 저자제목출판사발행일 인스턴스 저자제목출판사발행일 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 12
인스턴스변수 Book 클래스에서생성된인스턴스 b1 에서변수를활용 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 13
클래스속성 클래스속성은클래스자체에서사용되는속성 저자제목출판사발행일 클래스 저자제목출판사발행일 저자제목출판사발행일 인스턴스 저자제목출판사발행일 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 14
클래스변수 Book 클래스자체에서사용되는변수 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 15
인스턴스변수와클래스변수의활용 인스턴스변수 저자 author 제목 title 출판사 publisher 출판일 year 클래스변수 수량 count 클래스 저자제목출판사출판일 수량 공유 저자제목출판사출판일 수량 저자제목출판사출판일 수량 저자제목출판사출판일 수량 인스턴스 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 16
인스턴스변수와클래스변수의활용 인스턴스변수와클래스변수를목적에맞도록나누어서활용 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 17
3. 클래스매직메소드
_ 기능 for 문을사용하면서 iterator 역할을위해서 i 변수가필요 for 문이후에는 iterator 변수 i 가필요하지않음 이후에사용되지않을변수에어떤이름을부여하고싶지않을때 _ 를사용
기능 _ 를 2개붙여서매직메소드또는속성에사용가능 클래스에포함된매직메소드 init : 객체의초기화를위해클래스생성시호출되는동작을정의 str : 클래스의인스턴스에서 str() 이호출될때의동작을정의 repr : 클래스의인스턴스에서 repr() 이호출될때의동작을정의 new : 객체의인스턴스화에서호출되는첫번째메소드 del : 객체가소멸될때호출되는메소드 dir : 클래스의인스턴스에서 dir() 이호출될때의동작을정의 getattr : 존재하지않는속성에엑세스하려고시도할때행위를정의 setattr : 캡슐화를위한방법정의 add : 두인스턴스의더하기가일어날때실행되는동작정의 lt, le, gt, ge, eq, ne : 인스턴스간의 <, <=, >, >=, ==,!= 비교메소드 을속성앞에붙이면가시성을위한속성으로사용
init () 메소드이용 init () 메소드를이용하여클래스의속성들을초기화 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 21
str () 메소드이용 str () 메소드를이용하여인스턴스출력 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 22
매직메소드예제 : Line 클래스 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 23
가시성예제 items 속성은 Box 객체외부에서보이지않도록캡슐화와정보은닉이가능 외부에서 items 속성에접근하면속성오류발생 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 24
4. 클래스상속
상속 클래스상속 Inheritance : 기존클래스에있는속성과메소드를그대로상속받아새로운클래스를생성 공통된클래스를부모로두고자식들이상속을받아클래스를생성하므로일관성있는프로그래밍가능 클래스상속 class SubClass(SuperClass):
클래스상속, 추상메소드, 메소드오버라이딩 SuperClass 로부터 SubClass1 와 SubClass2 가클래스상속 SuperClass 의 method() 는정의되지않은추상메소드 SubClass1 의 method() 는 SuperClass 의추상메소드를오버라이딩 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 27
상속계층예제 Vehicle Car Bus Truck Bicycle Sedan Coach Pick-up truck Mountain bicycle Coupe Minibus Car transporters Road bicycle Wagon Airport bus Cement truck Time trial bicycle SUV School bus Chiller truck Cyclo-cross bicycle Convertible Low-floor bus Crane Fixed-gear bicycle Hatch-back Double-decker bus Box truck Racing bicycle Limousine Transit bus Flat-bed trailer Tandem bicycle VAN Refuse truck Folding bicycle Logging truck Cruiser bicycle Tanker Recumbent bicycle Tipper truck Tow truck
클래스상속, 메소드오버라이딩예제 Vehicle 클래스를상속받아 Car 클래스와 Truck 클래스생성 Car 클래스와 Truck 클래스는 up_speed 메소드를오버라이딩 Car 클래스는속도가 240 초과되면 240 으로조정 Truck 클래스는속도가 180 초과되면 180 으로조정 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 29
데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 30