7.7 객체지향적으로 생각하기(Object-Oriented Thinking) - 프로그래밍의 절차지향적(procedural) 패러다임은 함수를 설계하는데에 초점을 둔다. - 객체 지향적(object-oriented) 패러다임은 데이터와 메소드 둘 다 하나의 객체로 결합하는데 있다. - 객체지향적(object-oriented) 패러다임을 이용하는 소프트웨어는 객체(objects)와 객체의 동작(operation)에 중점을 둔다. - 이번 챕터에서는 절차지향적 프로그래밍과 객체지향적 프로그래밍의 차이점을 확인 할 수 있다. - 4장에서 배운 BMI 프로그램 코드를 이용하여 두 패러다임의 차이점을 확인해보자. *절차 지향적으로 만든 BMI 프로그램(BMI.py) 1 2 3 4 5 6 7 8 9 10 11 12..
7.6 클래스 추상화와 캡슐화(Class Abstraction and Encapsulation) - 클래스 추상화(abstraction)은 클래스 사용(use)과 구현(implementation)을 분리하는 개념이다. - 클래스의 구현(implementation)을 사용자로 부터 숨기는 것을 의미하며, 클래스 캡슐화(class encapsulation)라고도 알려져 있다. - 이전 챕터 6에서는 함수 추상화(function abstaction)를 배우고 이를 단계적 개선법으로 사용하였다. - 이와 비슷하게, 클래스 추상화(class abstraction)는 클래스의 사용과 구현을 분리하는 것을 의미한다. - 이전에 배운바와 같이, 클래스를 사용하는 유저(user)는 클래스가 어떻게 구현되어 있는지 알 필..
7.4 불변 객체와 가변 객체(Immutable Objects vs. Mutable Objects) - 가변 객체(mutable object)를 함수에 전달할 때, 가변 객체의 내용물을 바꿀 수 있다. - 숫자(numbers)와 문자열(strings)은 불변 객체(immutable objects)이다. - 이러한 불변 객체의 내용물은 바뀌지 않는다. - 하지만, 가변 객체(mutable object)를 함수에 전달한다면 이 객체의 내용물을 바꿀 수 있다. - 아래의 예제가 불변 객체(Immutable Objects)와 가변 객체(mutable Objects)의 차이점을 보여주는 예제이다. * 불변 객체와 가변객체 예제(TestPassMutableObject.py) 1 2 3 4 5 6 7 8 9 10 1..
7.2.5 예시 : 클래스 사용하기(Example: Using Classes) - 이전 포스트에서 객체와 클래스의 개념에 대해서 배웠다. - 이번에는 반지름이 각기 다른 3개의 circle 객체를 생성하고 각 원의 넓이를 출력하는 프로그램을 만들어 볼 것이다. *TestCircle.py(circle 객체 사용 예제) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from Circle import Circle def main() : # 반지름 1인 circle 객체 circle1 = Circle() print("Tre area of the circle of radius", circle1.radius,"is",circle1.getArea()) # ..
7.2.2 객체 생성하기(Constructing Objects) ※ constructor 와 initializer를 번역함에 있어 영어로는 간단히 구분이 가능 하지만 한국어로는 간단히 구분히 되지 않아 둘 다 편의상 생성자로 번역하였습니다. 아래의 포스팅을 보기 전에 이 둘의 의미를 아래와 같이 이해하시기 바랍니다. ◇ initializer(__init__) : __init__메소드를 사용하여 생성자를 만든 경우, 이 생성자를 initializer 라고 표현 ◇ constructor : initializer(__init__) 메소드를 이용하여 정의한 생성자를 사용(use)할 경우, 이 생성자를 constructor 라고 표현. - 클래스(class)가 정의되어 있을 떄, 클래스의 생성자(construct..
7.1 객체와 클래스(Objects and Classes) - 객체 지향 프로그래밍(object-oriented programming)은 큰 스케일의 프로그램과 GUI를 효과적으로 개발 할 수 있게 해준다. - 루프문이나 선택문을 이용해 간단한 프로그램을 만들 수는 있지만, 규모가 큰 프로그램이나 그래픽 유저 인터페이스(Graphical User Interface,GUI)를 개발하기에는 조금 부족하다. - 이번 챕터에서는 객체 지향 프로그래밍(object-oriented programming)을 통해 GUI와 큰 규모의 프로그램을 빌드하는데 쓰일 기초를 배울 예정이다. 7.2 객체를 위한 클래스 정의하기(Defining Classes for Objects) - 클래스는 객체의 속성(properties)과..
6.13.2 탑-다운(보텀-업) 구현 (Top-Down and/or Bottom-Up Implementation) 이전 포스트 함수 추상화와 단계적 개선(1) 을 보려면 ●클릭하기● *printCalendar 도식화 - 앞서 분할-정복으로 문제를 세분화 시켰다면, 이제는 그 문제들을 해결할 코드를 구현 할 차례다. - 일반적으로, 서브 문제(subproblem, 분할-정복 시 생겼던 하위 문제들)들은 함수를 구현한 코드에 상응하지만, 일부는 불필요할 정도로 단순하다. - 우리는 어떤 모듈로 함수를 구현 할 지, 그리고 어떻게 다른 함수들과 조합할 지 결정해야 한다. - 이전 포스트 부터 배웠던 방법을 토대로 코드를 구현한다면, 코드를 해석할 때 훨씬 읽기 쉬워진다. - 이전 포스트에서 예로 들었던 pri..
6.12 사례 연구: 랜덤 ASCII 문자 생성하기(Generating Random ASCII Characters) - 문자는 정수로 작성이 가능하다. 랜덤 문자 생성은 정수를 생성하는 것과 같다. - 아스키 문자는 0부터 127 까지의 정수로 이루어진 아스키코드를 가지고 있다. - 랜덤 아스키 문자를 생성하기 위해서, 0부터 127까지 정수를 랜덤으로 발생시켜야 한다. - 그 후 chr 함수를 이용하여 정수로 부터 문자를 얻을 수 있다. chr(randint(0, 127)) - 소문자의 아스키코드를 랜덤으로 생성하기 위해서 ord 함수를 이용할 수 도 있다. ord('a') - 그래서 소문자 a 부터 z까지의 아스키 코드를 얻기 위해선 ord('a') 와 ord('z')를 이용해 아래와 같이 코드를 얻..
- Total
- Today
- Yesterday
- 파이썬 단계적 개선
- css 그리드
- 파이썬 함수
- 파이썬 객체
- 파이썬 문자열
- 자료구조
- 백준 1874
- 자바
- 파이썬 클래스
- 파이썬 if문
- css 박스
- 백준 11501
- 파이썬 리스트
- 파이썬 선택문
- 명품 c++ 실습
- 백준
- css
- 파이썬 진수 변환
- 자바 에센셜 실습문제
- 버츄어박스
- 파이썬 예제
- 파이썬 터틀
- 자바스크립트 자료구조
- 자바스크립트 그래프
- 파이썬 for
- 웹
- 백준 10451
- 파이썬 연산자
- 파이썬
- 파이썬 while
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |