[핵심 키워드] : 객체, 객체 지향 프로그래밍 언어, 추상화 ,클래스, 인스턴스, 생성자, 메소드
[핵심 포인트] : 클래스와 객체에 대해 알아본다.
class 구성 요소 - 사물의 속성은 변수로, 동작은 함수로 표현.
멤버
메소드.
모델링.
캡슐화.
students = [
{"name" : "윤인성", "korean" : 87, "math" : 98, "english" : 88, 'science' : 95},
{"name" : "윤인성", "korean" : 92, "math" : 98, "english" : 96, 'science' : 98},
{"name" : "윤인성", "korean" : 76, "math" : 96, "english" : 94, 'science' : 90},
{"name" : "윤인성", "korean" : 98, "math" : 92, "english" : 96, 'science' : 92},
{"name" : "윤인성", "korean" : 95, "math" : 98, "english" : 98, 'science' : 98},
{"name" : "윤인성", "korean" : 64, "math" : 88, "english" : 92, 'science' : 95}
]
print("이름", "총점", "평균", sep = "\t")
for student in students:
score_sum = student["korean"] + student["math"] + \
student["english"] + student["science"]
score_average = score_sum / 4
print(student["name"], score_sum, score_average, sep = "\t")
여러 가지 속성 가질 수 있는 모든 대상.
예시 - 객체를 만드는 함수.
def create_student(name, korean, math, english, science):
return {
"name" : name,
"korean" : korean,
"math" : math,
"english" : english,
"science" : science
}
students = [
create_student("윤인성", 87, 98, 88 ,95),
create_student("연하진", 92, 98, 96, 98),
create_student("구지연", 76, 96, 94, 90),
create_student("나선주", 98, 92, 96, 92),
create_student("윤아린", 95, 98, 98, 98),
create_student("윤명월", 64, 88, 92, 92)
]
print("이름", "총점", "평균", sep="\t")
for student in students:
score_sum = student["korean"] + student["math"] +\
student["english"] + student["science"]
score_average = score_sum / 4
# 출력합니다.
print(student["name"], score_sum, score_average, sep = "\t")
객체를 조금 더 효율적으로 생성하기 위해 만들어진 구문.
class 클래스 이름:
클래스 내용
인스턴스 이름(변수 이름) = 클래스 이름()
생성자 사용하여 이러한 클래스 기반으로 만들어진 객체.
class student:
pass
student = Student()
student = [
Student(),
Student(),
Student(),
Student(),
Student(),
Student()
}
클래스 이름과 같은 함수.
클래스 선언 형식.
class 클래스 이름:
def __init__(self, 추가적인 매개변수):
pass
class Studnet:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
students = [
Student("윤인성", 87, 98, 88, 95),
Student("연하진", 92, 98, 96, 98),
Student("구지연", 76, 96, 94, 90),
Student("나선주", 98, 92, 96, 92),
Student("윤아린", 95, 98, 98, 98),
Student("윤명월", 64, 88, 92, 92)
]
student[0].name
student[0].korean
class Human:
def _init_(self, age, name):
self.age = age
self.name = name
def intro(self):
print(str(self.age) + "살" + self.name + "입니다.")
kim = Human(29, "김상형")
kim.intro()
lee = Human(45, "이승우")
lee.intro()
클래스가 가지고 있는 함수.
class 클래스 이름:
def 메소드 이름(self, 추가적인 매개변수):
pass
class Student:
def __init__(self, name, korean, math, english, science):
self.name = name
self.korean = korean
self.math = math
self.english = english
self.science = science
def get_sum(self):
return self.korean + self.math +\
self.english + self.science
def get_average(self):
return self.get_sum() / 4
def to_string(self):
return "{}\t{}\t{}".format(\
self.name,\
self.get_sum(),\
self.get_average())
students = [
Student("윤인성", 87, 98, 88 ,95),
Student("연하진", 92, 98, 96, 98),
Student("구지연", 76, 96, 94, 90),
Student("나선주", 98, 92, 96, 92),
Student("윤아린", 95, 98, 98, 98),
Student("윤명월", 64, 88, 92, 92)
]
print("이름", "총점", "평균", sep = "\t")
for student in students:
print(student.to_string())
# 키워드로 정리하는 핵심.
- 객체 : 속성을 가질 수 있는 모든 것 의미.
- 객체 지향 프로그래밍 언어 : 객체를 기반으로 프로그램 만드는 프로그래밍 언어.
- 추상화 : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것.
- 클래스 : 객체를 쉽고 편리하게 생성하기 위해 만들어진 구문.
- 인스턴스 : 클래스를 기반으로 생성한 객체.
- 생성자 : 클래스 이름과 같은 인스턴스 생성할 때 만드는 함수.
- 메소드 : 클래스가 가진 함수
class Phone:
def __init__(self, call, message):
self.call = call
self.message = message
class musicPhone(Phone):
def __init__(self, music):
Phone.__init__(self)
self.music = music
class smartPhone(musicPhone):
def __init__(self, game):
musicPhone.__init__(self)
self.game = game
from turtle import *
class Turtle1:
def __init__(self, x, y, shape, head):
self.x = x
self.y = y
self.turtle = Turtle()
self.turtle.goto(self.x, self.y)
self.turtle.shape(shape)
self.turtle.right(head)
def move(self):
for i in range(20):
self.turtle.fd(10)
t1 = Turtle1(-100, 100, "turtle", 0)
t2 = Turtle1(0, 200, "circle", 180)
t1.move
t2.move