캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

1. 던전 디자인 개요_1 1. ‘던전’ 룬스톤은 던전 한 층에도 여러 개가 존재하며, 각 룬스톤 마다 영향을 미치는 범위가 설정되어 있다. 룬스톤이 영향을 주는 범위에 일정시간 사용자가 위치해 있게 되면 사용자 캐릭터는 ‘유령화’ 되어 버리기 때문에, 사용자는.
주마등 신동진.
3. C++와 객체지향 C++ 코딩 방법 객체 단위로 2 개의 파일 인터페이스 파일 구현파일
C++ Espresso 제1장 기초 사항.
C++ Espresso 제2장 제어문과 함수.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
Internet Computing KUT Youn-Hee Han
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
Power Java 제4장 자바 프로그래밍 기초.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
C++ Espresso 제9장 다형성.
10장 객체-지향 프로그래밍 II ©창병모.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 14. 포인터와 함수에 대한 이해.
6. 기본 클래스 프로그래밍 6 컴퓨터공학과 신동일.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
7장 클래스.
Data structures 01.2: C++ classes 동의대학교 멀티미디어공학과 이광의교수.
윤 홍 란 4 장 클래스 작성 윤 홍 란
18장. 헤더 파일과 구현 파일 01_ 헤더 파일과 구현 파일의 사용.
2010학년도 2학기 객체지향의 이해.
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
C++ Programming: chapter 7 – inheritence
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 08. 상속과 다형성.
7. 자극과 반응 7-2. 신경계 3. 여러 가지 반응.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
C++ 개요 객체지향 윈도우즈 프로그래밍 한국성서대학교 유일선
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
명품 C++ 프로그래밍 1장. C++ 시작.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Chapter 3 클래스. 최호성.
DataScience Lab. 박사과정 김희찬 (월)
가상함수와 추상 클래스.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
주제 : 배열, 사용자정의 데이터형, 프로시저와 함수 등..
Python.
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
비주얼 프로그래밍 1분반 화/목.
3장. 클래스의 기본.
JA V A W. 07 Sb.L.
Chapter 02. 소프트웨어와 자료구조.
A Basic of C++.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
Signature, Strong Typing
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
3장,4장 발표 서정우.
Signature, Strong Typing
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
2015년 2학년 1반.
직장생활 예절 ① - 인사 1.내가 먼저 [인사의 5point] 2.상대방의 눈을 보고 미소지으며 3.상대방에 맞춰서
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Java 5장. 객체지향 개념 public class SumTest {
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
C# 09장. 클래스와 객체.
C.
C++ 언어의 특징
프로그래밍 기법 최적화 프로그래밍.
발 표 자 : 7조 손 창 국 윤 오 성, 박 진 완 객체 지향 프로그래밍 C++
Presentation transcript:

캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주

목 차 교육 목표 캡슐화(Encapsulation)란? 클래스(Class) 객체(Object) 구조체 & 공용체 프로그래밍 실습 생성자(Constructor) 소멸자(Destructor) 객체의 인수전달시 생성자/소멸자 멤버 접근 방법 정적 멤버(Static Member) 자기 참조(Self Reference) 두원공과대학 소프트웨어개발과 이 원 주

캡슐화(Encapsulation)란 ? Shape 정의 데이터(variable)와 연산(함수)를 하나로 결합시켜 모듈화하는 것 (Data) m_centerx m_centery Member variable 캡슐화 MoveTo() 연산 (Operation) Member Function 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (1) 정의 객체의 속성을 정의 Format Class 클래스명{ [private:] //전용 부분 객체가 표현하는 자료 메시지를 받았을 때 처리방식을 지정한 연산(함수) Format Class 클래스명{ [private:] //전용 부분 자료 선언; 함수 선언; public: //공용 부분 } [객체 변수]; 클래스명 객체변수, 객체변수,…. 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (2) 예 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (3) 클래스 내부의 멤버함수 선언 Format Class 클래스명{ …….. 자료형 함수명(인수 선언) { ...함수 본체... }; } 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (4) 예 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (5) 클래스 외부의 멤버함수 선언 Format Class 클래스명{ …….. 자료형 함수명(인수 선언); } [inline] 자료형 클래스명 :: 함수명(인수 선언) { 함수 본체 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (6) 예 두원공과대학 소프트웨어개발과 이 원 주

클래스(Class) (7) 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (1) 객체의 복사 동일한 클래스형으로 선언된 객체간의 자료 이동 가능 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (2) 객체의 인수전달 인수로 전달되는 객체는 Call by value 방식으로 전달된다. 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (3) 객체의 반환 함수의 반환형으로 클래스형 정의 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (4) 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (5) 객체의 배열 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (6) 객체의 포인터 객체 멤버 참조시 “->” 연산자 사용 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (7) 객체의 참조자 객체의 참조자를 사용하여 인수 전달(주소만 전달) 두원공과대학 소프트웨어개발과 이 원 주

객체(Object) (8) 두원공과대학 소프트웨어개발과 이 원 주

구조체 & 공용체 (1) 구조체 & 공용체 Member C++ 구조체 & 공용체 C C++ 자료; 자료; 연산(함수) 클래스와 유사 클래스와 차이점 구조체, 공용체로 선언된 자료와 연산은 특별히 명시하지 않으면 public으로 간주하여 외부에서 자유롭게 사용 가능 C C++ 자료; 자료; 연산(함수) 두원공과대학 소프트웨어개발과 이 원 주

구조체 & 공용체 (2) 예 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 실습 실습시간(30분) 아래 프로그램에서 잘못된 부분을 설명하고 수정하라. 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 결과 두원공과대학 소프트웨어개발과 이 원 주

생성자(Constructor) (1) 생성자 정의 기능 예 클래스와 동일한 이름을 가지며, 객체가 선언될 때 마다 자동적으로 호출되는 멤버함수 기능 클래스 내의 자료를 초기화 예 두원공과대학 소프트웨어개발과 이 원 주

생성자(Constructor) (2) 두원공과대학 소프트웨어개발과 이 원 주

소멸자(Destructor) (1) 소멸자 정의 기능 예 클래스와 동일한 이름을 가지며, 객체가 선언된 블록이 종료될 때 자동적으로 호출되는 멤버함수로 함수명 앞에 ~(tilde)를 붙여 생성자와 구별한다. 기능 동적으로 할당된 메모리 해제 예 두원공과대학 소프트웨어개발과 이 원 주

소멸자(Destructor) (2) 두원공과대학 소프트웨어개발과 이 원 주

객체의 인수전달시 생성자/소멸자 (1) 객체의 인수전달 문제점 해결방법 형태 생성자 소멸자 동적메모리 할당받은 경우 실인수가 가인수에 Call by value 형태로 복사되어 전달. 생성자 객체 복사시 호출되지 않는다 소멸자 함수 종료시 가인수의 객체가 소멸됨으로 소멸자 호출 문제점 동적메모리 할당받은 경우 소멸자를 호출하여 메모리를 해제하므로, 이후의 프로그램에서는 이 동적 메모리 사용시 error 발생 해결방법 객체의 참조자로 인수 전달 두원공과대학 소프트웨어개발과 이 원 주

객체의 인수전달시 생성자/소멸자 (2) 예 두원공과대학 소프트웨어개발과 이 원 주

객체의 인수전달시 생성자/소멸자 (3) Comment 처리후 compile 두원공과대학 소프트웨어개발과 이 원 주

멤버 접근 방법 (1) 클래스 전용부분의 자료 접근 방법 객체의 멤버함수만이 접근 가능(Encapsulation 구현) 클래스 전용부분 자료 멤버 함수 두원공과대학 소프트웨어개발과 이 원 주

멤버 접근 방법 (2) 일반 함수 or 다른 클래스 멤버함수의 접근방법 Friend 함수 선언 Format Class 클래스명{ 자료 선언; public: friend int func(); // Friend 함수 선언 } [객체 변수]; 두원공과대학 소프트웨어개발과 이 원 주

멤버 접근 방법 (3) 두원공과대학 소프트웨어개발과 이 원 주

정적(Static) 멤버 (1) 정적멤버 정의 특징 Format class Point{ static int x, y; 동일한 클래스명으로 선언된 여러 객체들이 하나의 자료를 공유할 수 있는 기능을 제공하는 것. 특징 모든 정적멤버 변수는 초기값을 지정하지 않으면 0으로 초기화된다. Format class Point{ static int x, y; public: setpt(int m, int n) { xval=m; yval=n; } } int Point::x, Point::y; //정적멤버 정의 void main() { //객체 Ob1과 Ob2가 정적변수 x, y를 공유 Point Ob1, Ob2; 두원공과대학 소프트웨어개발과 이 원 주

정적(Static) 멤버 (2) 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 실습 실습시간(10분) 아래 프로그램의 실행 결과는 ? 두원공과대학 소프트웨어개발과 이 원 주

자기 참조(Self-reference) (1) 기능 객체가 자신을 가리키는 포인터로 “this”를 사용한다. 예 class x { int value; public: void set_value(int value) { value = value; } // 어떤 value ? void show_value() { cout << value <<“\n”; } }; 두원공과대학 소프트웨어개발과 이 원 주

자기 참조(Self-reference) (2) 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 실습 실습시간(10분) 아래 프로그램을 this 포인터를 사용하여 클래스 멤버를 참조하도록 수정하시요. 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 결과 두원공과대학 소프트웨어개발과 이 원 주

정 리 캡슐화(Encapsulation)란? 클래스(Class) 객체(Object) 구조체 & 공용체 생성자(Constructor) 소멸자(Destructor) 객체의 인수전달시 생성자/소멸자 멤버 접근 방법 정적 멤버(Static Member) 자기 참조(Self Reference) 프로그래밍 실습 두원공과대학 소프트웨어개발과 이 원 주