Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데비안
- /etc/network/interfaces
- 알파회계
- d
- 목록처리
- ㅒ
- 선형대수
- 리눅스
- 자료구조와함께배우는알고리즘입문
- 네트워크 설정
- network configuration
- 처음 만나는 AI수학 with Python
- Kernighan의 C언어 프로그래밍
- baeldung
- 티스토리 쿠키 삭제
- 자료구조와 함께 배우는 알고리즘 입문
- iterator
- 친절한SQL튜닝
- 스프링 시큐리티
- 코드로배우는스프링웹프로젝트
- 페이징
- resttemplate
- GIT
- 이터레이터
- 처음 만나는 AI 수학 with Python
- 구멍가게코딩단
- 코드로배우는스프링부트웹프로젝트
- 서버설정
- 스프링부트핵심가이드
- 자바편
Archives
- Today
- Total
bright jazz music
파이썬 클래스 생성자 과제 본문
#2차원 상의 한 좌표점 나타내기
#2차원 상의 한 좌표점 (x, y)를 객체로표현하라.
#다음과 같이 객체를 생성할 수 있도록 하라.
#p1 = Point() #좌표값(0, 0)을 나타내는 객체 생성
#p2 = Point(2, 3) #좌표값(2, 3)을 나타내는 객체 생성
#현재 객체의 좌표값을 (x, y) 형식의 문자열로 출력하는 메서드 show()를 제공하라
#p2.show() #화면에 (2, 3)과 같이 출력
#다음과 같이 새로운 좌표값을 설정하는 메서드 set()을 제공하라
#p1.set(1, 2) #p1의 좌표값을 (1, 2)로 설정
#p1.show() #화면에 (1, 2) 출력
#객체가 갖고 있는 좌표값을 튜플로 반환하는 메서드 get()을 제공하라
#x, y = p2.get()
#print(f'x={x}, y={y}')
#클래스 선언부
class Point :
#생성자
def __init__(self, x=None, y=None) :
# __x, __y로 속성 비공개 처리
#x, y가 none이면 0으로 초기화.
#x, y 값이 존재할 경우 매개변수 값으로 초기화
if x is None:
self.__x = 0
else:
self.__x = x
if y is None:
self.__y = 0
else:
self.__y = y
def show(self):
print(f'({self.__x}, {self.__y})')
#클래스 인스턴스 내부에서는 비공개 속성 접근 가능
def set(self, x=None, y=None) :
#클래스 인스턴스 내부에서 비공개 속성 변경
if x is None:
self.__x = 0
else:
self.__x = x
if y is None:
self.__y = 0
else:
self.__y = y
def get(self) :
#튜플 선언과 동시에 반환
return (self.__x, self.__y)
#주프로그램부
p1 = Point() #매개변수 값 없이 초기화
p2 = Point(2, 3) #매개변수 입력 후 초기화
print('p1 ==>', end='')
p1.show()
print('p2 ==>', end='')
p2.show()
print()
p1.set(1, 2) #set 함수를 사용해 은닉 값 변경
print('p1.set(1,2) ==>', end='')
p1.show()
p2.set(4, 5) #set 함수를 사용해 은닉 값 변경
print('p1.set(4,5) ==>', end='')
p2.show()
print()
#get 함수를 사용해서 튜플값을 각각의 변수에 담기
x1, y1 = p1.get()
print(f'p1 tuple ==> x={x1}, y={y1}')
x2, y2 = p2.get()
print(f'p2 tuple ==> x={x2}, y={y2}')
#p1 ==>(0, 0)
#p2 ==>(2, 3)
#p1.set(1,2) ==>(1, 2)
#p1.set(4,5) ==>(4, 5)
#p1 tuple ==> x=1, y=2
#p2 tuple ==> x=4, y=5
#직사각형 클래스 과제
#Point 클래스를 사용해서 직사각형의 정보 나타내기
# Point 클래스 선언부
class Point :
def __init__(self, x=None, y=None) :
if x is None:
self.__x = 0
else:
self.__x = x
if y is None:
self.__y = 0
else:
self.__y = y
def show(self):
print(f'({self.__x}, {self.__y})')
def set(self, x=None, y=None) :
if x is None:
self.__x = 0
else:
self.__x = x
if y is None:
self.__y = 0
else:
self.__y = y
def get(self) :
return (self.__x, self.__y)
# Rectangle 클래스 선언부
class Rectangle :
# 생성자
def __init__(self, lx,ly, rx,ry) :
self.__lt = Point(lx, ly)
self.__rb = Point(rx, ry)
# 사각형 정보 보여주기
def show(self):
print(f'좌측 상단 꼭지점이 {self.__lt.get()}, 우측 하단 꼭지점이 {self.__rb.get()}인 사각형입니다.')
# 절대값 구하는 메서드
def absolute_value(self, val):
if val < 0 :
val = 0 - val
return val
# 너비 구하는 메서드
def getWidth(self):
p1 = self.__lt.get()
p2 = self.__rb.get()
width = self.absolute_value(p2[0] - p1[0]) #절대값 처리
return width
#높이 구하는 메서드
def getHeight(self):
p1 = self.__lt.get()
p2 = self.__rb.get()
height = self.absolute_value(p1[1] - p2[1]) #절대값 처리
return height
#면적을 구하는 메서드
def getArea(self):
area = self.getWidth() * self.getHeight()
return area
def getPerimeter(self):
perimeter = 2 * (self.getWidth() + self.getHeight())
return perimeter
#주프로그램부
rec = Rectangle(5,5,20,10)
rec.show()
width = rec.getWidth()
print(f'사각형의 너비 : {width}')
height = rec.getHeight()
print(f'사각형의 높이 : {height}')
area = rec.getArea()
print(f'사각형의 넓이 : {area}')
perimeter = rec.getPerimeter()
print(f'사각형의 둘레 : {perimeter}')
print()
#테스트 2
rec = Rectangle(1,1,4,5)
rec.show()
width = rec.getWidth()
print(f'사각형의 너비 : {width}')
height = rec.getHeight()
print(f'사각형의 높이 : {height}')
area = rec.getArea()
print(f'사각형의 넓이 : {area}')
perimeter = rec.getPerimeter()
print(f'사각형의 둘레 : {perimeter}')
#좌측 상단 꼭지점이 (5, 5), 우측 하단 꼭지점이 (20, 10)인 사각형입니다.
#사각형의 너비 : 15
#사각형의 높이 : 5
#사각형의 넓이 : 75
#사각형의 둘레 : 40
#좌측 상단 꼭지점이 (1, 1), 우측 하단 꼭지점이 (4, 5)인 사각형입니다.
#사각형의 너비 : 3
#사각형의 높이 : 4
#사각형의 넓이 : 12
#사각형의 둘레 : 14
Comments