제 4장. 객체 지향 프로그래밍 시작하기 2011-1학기 프로그래밍언어및실습 (C++).

Slides:



Advertisements
Similar presentations
7 월 소식지에서는 도서관 분류에 대해 알아보았어요. 한국십진분류법은 0 에서 9 까지 열 개의 수를 가지고 이 세상 의 모든 것을 나누는 방법이라는 것. 이 세상의 모든 것이 이 열 개 가운데 어딘가에 꼭 들어가 야 한 다는 것 그럼,
Advertisements

아름다운 이들의 행복한 길음안나의 집.
RapidJson NEXT 김명찬.
명품 C++ 4장. 객체 포인터와 객체 배열, 객체의 동적 생성.
Power C++ 제6장 포인터와 문자열.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제1장 기초 사항.
객체지향 프로그래밍.
2017년 1/4분기 상1동 주민자치센터프로그램 수강생 모집【선착순】
꼼꼼한 청소법 생활의 지혜.
강좌명 : C++프로그래밍 (C++ Programming)
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
실전 프로젝트 2 : 숫자야구 숫자 야구를 구현해보자.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
제6장 객체배열과 벡터 객체 배열을 이해한다. 벡터(vector) 클래스를 사용할 수 있다.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
8. 객체와 클래스 (기본).
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
C++ Espresso 제9장 다형성.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
10장 템플릿과 표준 템플릿 라이브러리(STL)
제15장 STL과 람다식 STL의 개념을 이해하고 사용할 수 있다. 람다식을 이해하고 사용할 수 있다.
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
14장. 함수 1 01_ 함수의 기본 02_ 인자의 전달.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
Internet Protocol and Programming
Power Java 제7장 클래스와 객체.
C ++ 프로그래밍 시작.
Chapter 1 C++ 기초 Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
김 정 석 Web Programming 김 정 석
17장. 문자열 01_ 문자열 사용의 기본 02_ 문자열의 사용.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
제14장 예외처리와 템플릿 예외 처리의 개요를 학습한다. 예외 처리를 적용할 수 있다. 템플릿의 개념을 이해한다.
추상 데이터 타입 정의하기 Defining abstract data types
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Chapter 1 C와는 다른 C++. 최호성.
제2장 제어구조와 배열 if-else 문에 대하여 학습한다. 중첩 if-else 문에 대하여 학습한다.
제 12장. 사용자 정의형으로서의 클래스 학기 프로그래밍언어및실습 (C++).
4. 고급변수 사용 : 포인터와 관련하여 메모리 바라보기
Internet Protocol and Programming
호암초등학교 박대현 선생님의 음악 수업 안내.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
문자열 처리하기 working with Strings
C언어 (8) 정명희.
제 11장. 템플릿과 STL 학기 프로그래밍언어및실습 (C++).
3장,4장 발표 서정우.
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
Ch16_표준 템플릿 라이브러리.
6장 클래스(상속).
10장 템플릿과 표준 템플릿 라이브러리(STL)
Internet Protocol and Programming
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
성전기공식(안) 식 순 1. 기공미사 2. 기 공 식 3. 축 하 연 천주교 수원교구 퇴촌성당.
Java 5장. 객체지향 개념 public class SumTest {
새로운 타입 정의하기 Defining new types
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
17장. 문자열 01_ 문자열 사용의 기본 02_ 문자열의 사용.
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
접수번호 : MWC 2015 한국공동관 참가 지원서 - 프로젝트명(서비스/콘텐츠) : 업 체 명 :
배열.
Presentation transcript:

제 4장. 객체 지향 프로그래밍 시작하기 2011-1학기 프로그래밍언어및실습 (C++)

학습 목표 객체 지향 프로그래밍의 기본 개념과 장점을 알아본다. 클래스와 객체의 개념에 대해서 알아본다 객체 지향 프로그래밍의 세가지 특징인 캡슐화, 상속, 다형성에 대해서 알아본다. 2011-1학기 프로그래밍언어및실습 (C++)

객체 지향 프로그래밍이란 객체 지향 프로그래밍 인터페이스(interface) 관련된 함수와 변수를 묶어서 ‘객체(object)’를 만들고, 객체 단위로 프로그래밍하기 위한 방법 인터페이스(interface) 객체의 서비스에 대해서 미리 약속된 부분 v 2011-1학기 프로그래밍언어및실습 (C++)

소프트웨어의 부품화 객체 지향 프로그램에서의 객체는 프로그램을 구성하는 일종의 소프트웨어 부품 역할을 제공한다. 소프트웨어를 부품화하려면 객체의 사용 방법, 즉 인터페이스가 잘 정의되어 있어야만 한다. 2011-1학기 프로그래밍언어및실습 (C++)

객체 지향 프로그래밍의 장점 모듈간의 독립성이 증대된다. 재사용성이 증대된다. 융통성이나 확장성이 좋다. 특정 객체에서 문제가 발생하면 해당 객체의 구현만 수정하면 된다. 객체의 구현이 변경되더라도 객체의 사용 방법, 즉 객체의 인터페이스는 변경되어서는 안 된다. 재사용성이 증대된다. 클래스 라이브러리가 제공된다. 융통성이나 확장성이 좋다. 객체의 사용자는 객체의 서비스를 이용하기 위해서 객체의 인터페이스로 접근하는데, 인터페이스를 변경하지 않은 상태에서 객체의 내부 구현을 얼마든지 변경할 수 있다. v 2011-1학기 프로그래밍언어및실습 (C++)

클래스와 객체 (1) 클래스 객체가 가진 공통된 특성을 기술하는 것 일종의 데이터 형 역할 (사용자 정의 형) 2011-1학기 v 2011-1학기 프로그래밍언어및실습 (C++)

클래스와 객체 (2) 객체 클래스 형에 의해서 생성되는 변수 역할 구체적인 값을 갖는 실체(인스턴스) 2011-1학기 v 2011-1학기 프로그래밍언어및실습 (C++)

객체 지향 프로그래밍의 특징 캡슐화(encapsulation) 상속(inheritance) 다형성(polymorphism) v 2011-1학기 프로그래밍언어및실습 (C++)

캡슐화 (1) 캡슐화 정보 은닉 관련된 함수들과 변수들을 하나로 묶어주는 것 객체를 사용하기 위해서 필요한 부분을 제외한 나머지 부분을 캡슐로 감싸서 숨기는 것 정보 은닉 객체를 사용하기 위한 약속된 부분만 공개하고 객체의 내부 구현을 숨기는 것 객체를 잘못된 변경으로부터 보호할 수 있다. v 2011-1학기 프로그래밍언어및실습 (C++)

캡슐화 (2) Stack 클래스의 정보 은닉과 캡슐화 2011-1학기 프로그래밍언어및실습 (C++)

상속 상속 기존의 클래스가 가진 기능을 이어 받아서 새로운 클래스를 정의하는 것 재사용성 증대 파일 처리 기능 제공 (바이너리 입출력 기능) v 상속받은 바이너리 입출력 기능 + 텍스트 입출력 기능 2011-1학기 프로그래밍언어및실습 (C++)

다형성 다형성 같은 방법으로 객체의 서비스를 요청해도 어떤 객체가 사용되는지에 따라 다르게 동작하는 것 객체의 인터페이스가 같아도 내부적인 구현은 다르다. v 2011-1학기 프로그래밍언어및실습 (C++)

클래스와 객체 사용하기 string 클래스 vector 클래스 문자열에 대한 처리를 제공 실행 중에 크기를 변경할 수 있는 배열 기능을 제공 2011-1학기 프로그래밍언어및실습 (C++)

string 클래스 (1) 문자열 변경 : = 연산자 이용 문자열의 길이 구하기 : size 멤버 함수 이용 문자열 비교 : == 연산자 이용 string s1, s2; s1 = “hello world”; s2 = s1; string s1 = “abcde”; cout << s1.size(); string s1 = “abcde”; string s2 = s1; if( s1 == s2 ) cout << “s1과 s2는 같습니다.\n”; 2011-1학기 프로그래밍언어및실습 (C++)

string 클래스 (2) 문자열 입출력 : <<, >> 연산자 이용 공백 문자를 포함한 문자열 입력 : getline 함수 이용 string s1; cin >> s1; cout << s1 << “\n”; string s1; getline(cin, s1); 2011-1학기 프로그래밍언어및실습 (C++)

string 클래스 (3) const char* 형으로 변환 : c_str 멤버 함수 이용 string s1 = “abcde”; char *str = s1.c_str(); // 컴파일 에러 const char *str = s1.c_str(); // OK str[0] = ‘A’; // 컴파일 에러 char *tmp = new char[s1.size() + 1]; strcpy(tmp, s1.c_str()); // c_str 함수의 리턴 값을 복사함 tmp[0] = ‘A’; // OK 2011-1학기 프로그래밍언어및실습 (C++)

vector 클래스 (1) 실행 중에 크기를 변경할 수 있는 배열 기능을 제공 배열의 원소로 사용할 값의 데이터 형을 <>에 지정 (클래스 템플릿) 새로운 원소 추가 : push_back 멤버 함수 이용 vector<int> v1; // int 값을 저장하는 배열 vector<string> v2; // string 객체를 저장하는 배열 vector<WORD*> v3;// WORD 구조체 포인터를 저장하는 배열 WORD *pWord1 = new WORD; WORD *pWord2 = new WORD; v3.push_back(pWord1); // 배열의 원소를 추가 후 배열의 크기 증가 v3.push_back(pWord2); // 배열의 원소를 추가 후 배열의 크기 증가 2011-1학기 프로그래밍언어및실습 (C++)

vector 클래스 (2) 배열 원소의 개수 구하기 : size 멤버 함수 이용 배열의 원소 접근 : [] 연산자 이용 cout << “원소의 개수 : “ << v3.size() << “\n”; for(int i = 0 ; i < v3.size() ; i++ ) WORD* pWord = v3[i]; 2011-1학기 프로그래밍언어및실습 (C++)

정리 객체 지향 프로그래밍은 서로 관련된 함수와 변수를 하나로 묶어 객체를 정의하고, 객체 단위로 프로그래밍하는 것이다. 객체는 일종의 소프트웨어 부품으로 생각할 수 있다. 소프트웨어 부품을 조립해서 프로그램을 개발하는 방식에서 가장 중요한 것은 부품간의 연결을 위해서 약속된 부분, 즉 객체의 인터페이스가 필요하다는 점이다. 객체 지향 프로그래밍의 장점은 모듈화, 재사용성, 확장성이 증대된다는 것이다. 객체의 특성을 기술한 것을 클래스라고 하며, 클래스는 일종의 사용자 데이터 형이다. 클래스 형의 변수를 객체라고 한다. 객체 지향 프로그래밍의 세가지 특징은 캡슐화, 상속, 다형성이다. 클래스를 사용하는 사용자는 클래스에 구현된 기능을 믿고 사용할 수 있다. 즉, 객체를 사용하면 같은 기능을 안전하고 간편하게 이용할 수 있다. 2011-1학기 프로그래밍언어및실습 (C++)