두근두근 파이썬 수업 13장 객체란 무엇인가요?.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
두근두근 파이썬 수업 7장 프로젝트 I.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
이 자료는 확인 할 수 있습니다. Python Turtle with 함수 휘문고등학교 컴퓨터부 민경현 이 자료는 확인 할 수 있습니다.
두근두근 파이썬 수업 7장 프로젝트 I.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
두근두근 파이썬 수업 4장 자료의 종류에는 어떤 것들이 있나요?.
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
9강. AOP(Aspect Oriented Programming)-I
어서와 Java는 처음이지! 제7장 상속.
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
C++ Espresso 제12장 템플릿.
자바 5.0 프로그래밍.
두근두근 파이썬 수업 13장 객체란 무엇인가요?.
제4장 클래스와 객체 객체 지향 기법을 이해한다. 클래스를 작성할 수 있다. 클래스에서 객체를 생성할 수 있다.
제7장 클래스와 객체.
D / K / I / T / E / C / H / N / O / L / O / G / Y
Power Java 제14장 배치 관리자.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
자바 5.0 프로그래밍.
두근두근 파이썬 수업 7장 코드를 함수로 모아봅시다..
두근두근 파이썬 수업 14장 프로젝트 II.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Method & library.
어서와 C언어는 처음이지 제14장.
자바응용.
두근두근 파이썬 수업 5장 조건을 따져봅시다..
Chapter 11 객체지향 프로그래밍의 기초 01 클래스 02 생성자 03 인스턴스 변수와 클래스 변수 예제 모음 요약
10장 tkinter로 GUI 만들기.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Effective Java [Issue 1 and 2]
두근두근 파이썬 수업 2장 변수를 소개합니다..
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
Power Java 제11장 상속.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
두근두근 파이썬 수업 14장 프로젝트 II.
JA A V W. 06.
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
파일 입출력과 그리기.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
Flow Diagram IV While.
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
3. 모듈 (5장. 모듈).
함수, 모듈.
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
.Net FrameWork for Web2.0 한석수
JSP Programming with a Workbook
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
7 생성자 함수.
6 객체.
Presentation transcript:

두근두근 파이썬 수업 13장 객체란 무엇인가요?

이번 장에서 만들 프로그램 (1) 자동차를 나타내는 클래스를 정의하고 사용해본다. (2) 공을 나타내는 Ball 클래스를 정의하고 사용해본다.

객체 지향 프로그래밍 객체(object)는 함수와 변수를 하나의 단위로 묶 을 수 있 는 방법이다. 이러한 프로그래밍 방식을 객체지향(object- oriented)이라고 한다.

객체들 사이의 상호작용 텔레비전 리모콘은 모두 특정한 기능을 수행하는 객체라 고 생각할 수 있고 텔레비전과 리모콘은 메시지 를 통하 여 서로 상호 작용하고 있다.

객체란? 객체는 하나의 물건이라고 생각하면 된다. 객체는 속성 (attribute)과 동작(action)을 가지고 있다.

거북이도 객체 터틀 그래픽에서 거북이가 바로 객체 from turtle import * # turtle 모듈에서 모든 것을 불러올것 alex = Turtle() # 거북이 객체를 생성한다. alex.forward(100) # forward()는 거북이 객체의 메소드이다. alex.left(90) # left()는 거북이 객체의 메소드이다. alex.forward(200) # forward()는 거북이 객체의 메소드이다. 저도 객체였지요.

객체 생성하기 객체의 설계도를 작성하여야 한다. 클래스로부터 객체를 생성하여야 한다.

객체 생성 코드 class Car: def drive(self): self.speed = 10 myCar = Car() myCar.color = "blue" myCar.model = "E-Class" myCar.drive() # 객체 안의 drive() 메소드가 호출된다. print(myCar.speed) # 10이 출력된다.

객체 생성 코드 class Car: def drive(self): self.speed = 60 myCar = Car() myCar.speed = 0 myCar.model = "E-Class" myCar.color = "blue" myCar.year = "2017" print("자동차 객체를 생성하였습니다.") print("자동차의 속도는", myCar.speed) print("자동차의 색상은", myCar.color) print("자동차의 모델은", myCar.model) print("자동차를 주행합니다.") myCar.drive() 자동차 객체를 생성하였습니다. 자동차의 속도는 0 자동차의 색상은 blue 자동차의 모델은 E-Class 자동차를 주행합니다. 자동차의 속도는 60

생성자 class Car: def __init__(self, speed, color, model): self.speed = speed self.color = color self.model = model def drive(self): self.speed = 60 myCar = Car(0, "blue", "E-class") print("자동차 객체를 생성하였습니다.") print("자동차의 속도는", myCar.speed) print("자동차의 색상은", myCar.color) print("자동차의 모델은", myCar.model) print("자동차를 주행합니다.") myCar.drive() 자동차 객체를 생성하였습니다. 자동차의 속도는 0 자동차의 색상은 blue 자동차의 모델은 E-class 자동차를 주행합니다. 자동차의 속도는 60

하나의 클래스로 객체는 많이 만들 수 있다. 우리는 하나의 클래스로 여러 개의 객체를 생성할 수 있 다

하나의 클래스로 객체는 많이 만들 수 있다. class Car: def __init__(self, speed, color, model): self.speed = speed self.color = color self.model = model def drive(self): self.speed = 60 dadCar = Car(0, "silver", "A6") momCar = Car(0, "white", "520d") myCar = Car(0, "blue", "E-class")

__str__() 메소드 class Car: def __init__(self, speed, color, model): self.speed = speed self.color = color self.model = model def __str__(self): msg = "속도:"+ str(self.speed)+ " 색상:"+ self.color+ " 모델:"+ self.model return msg myCar = Car(0, "blue", "E-class") print(myCar) 속도:0 색상:blue 모델:E-class

self는 무엇인가? class Car: def __init__(self, speed, color, model): self.speed = speed self.color = color self.model = model def drive(self): self.speed = 60c myCar = Car(0, "blue", "E-class") yourCar = Car(0, "white", "S-class") myCar.drive() yourCar.drive()

Lab: 터틀 그래픽을 다시보자. 터틀 그래픽에서 각각의 거북이가 객체라는 것을 알았다. 거북이 객 체를 여러 개 생성하여서 서로 다르게 반복해보자.

Solution from turtle import * # turtle 모듈에서 모든 것을 불러온다. t1.shape("circle") t2 = Turtle() # 거북이 객체를 생성한다. t2.shape("turtle") t3 = Turtle() # 거북이 객체를 생성한다. t3.shape("square") t1.penup() # 펜을 든다. t2.penup() t1.goto(0, 100) # 거북이를 이동한다. t2.goto(0, 50) t1.pendown() # 펜을 내린다. t2.pendown() while True: t1.circle(100) # 원을 그린다. t2.circle(150) t3.circle(200)

Car 클래스 + Turtle 클래스 터틀 그래픽을 사용하여서 화면에 자동차를 그리고 움직 여 보자.

from turtle import * class Car: def __init__(self, speed, color, model): self.speed = speed self.color = color self.model = model self.turtle = Turtle() self.turtle.shape("car.gif") def drive(self): self.turtle.forward(self.speed) def left_turn(self): self.turtle.left(90) register_shape("car.gif") myCar = Car(200, "red", "E-class") for i in range(100): myCar.drive() myCar.left_turn()

Lab: Ball 클래스 컴퓨터 게임에서 많이 등장하는 것이 공을 나타내는 Ball 클래스이 다. Ball 클래스의 속성과 메소드를 생각해보자.

Ball의 속성 공의 위치(x, y) 공의 색상(color) 공의 속도(xspeed, yspeed) 공의 크기(size) 공을 움직이는 메소드 move()

Solution from turtle import * class Ball: def __init__(self, color, size, speed): # 공의 위치 self.x = 0 self.y = 0 # 공의 속도 벡터 self.xspeed = speed self.yspeed = speed # 공의 크기 self.size = size # 공의 색상 self.color = color

Solution self.turtle = Turtle() self.turtle.shape("circle") self.turtle.color(color, color) self.turtle.resizemode("user") self.turtle.shapesize(size, size, 10) # 메소드 정의 def move(self): self.x += self.xspeed self.y += self.yspeed self.turtle.goto(self.x, self.y) ball = Ball("red", 2, 1) for i in range(100): ball.move()

상속이란? 상속은 클래스를 정의할 때 부모 클래스를 지정하는 것이 다. 자식 클래스는 부모 클래스의 메소드와 변수들을 사 용할 수 있다.

MyTurtle 클래스 from turtle import * # turtle 모듈에서 모든 것을 불러온다. class MyTurtle(Turtle): def glow(self,x,y): self.fillcolor("red") turtle = MyTurtle() turtle.shape("turtle") turtle.onclick(turtle.glow) # 거북이를 클릭하면 색상이 빨강색으로 변경된

이번 장에서 배운 것 클래스는 속성과 동작으로 이루어진다. 속성은 인스턴스 변수로 표현되고 동작은 메소드로 표현된다. 클래스는 속성과 동작으로 이루어진다. 속성은 인스턴스 변수로 표현되고 동작은 메소드로 표현된다. 객체를 생성하려면 생성자 메소드를 호출한다. 생성자 메 소드는 __init__() 이름의 메소드이다. 인스턴스 변수를 정의하려면 생성자 메소드 안에서 self.변 수이름 과 같이 생성한다.

Q & A