• 검색 결과가 없습니다.

클래스와 객체

N/A
N/A
Protected

Academic year: 2022

Share "클래스와 객체"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

1

클래스와 객체

1

클래스 : 속성과 오퍼레이션을 캡슐화

객체 : 클래스의 인스턴스

(2)

2

객체와 속성

객체 : 속성과 오퍼레이션을 가진 애플리케이션의 독립된 존재

속성 : 객체의 특징을 결정

객체의 구조

소프트웨어 모듈(객체) = 자료구조 + 함수

객체는 상태(state), 능력(behavior), 정체성(identity)을 가짐

상태

능력 : 연산(operation)을 수행 할 수 있는 능력

정체성 : 구별 가능성

2

(3)

3

캡슐화(Encapsulation)

캡슐화의 정의

속성과 관련된 오퍼레이션을 클래스 안에 묶어서 하나로 취급하는 것

•예> 대학 학사 관리 시스템

데이터 : 학번, 이름, 주소 캡슐화

함수 : 평점 계산, 주소 변경, 수강 신청 캡슐화

추상화의 수단

객체의 속성, 오퍼레이션 등의 세부사항은 차후에 생각

정보은닉(information hiding)

캡슐 속에 있는 항목에 대한 정보를 외부에 감추는 것

외부의 직접적 접근 불가, 일종의 블랙박스

구현에 따라 선택 가능

문법 : public, private, protected

3

(4)

4

연관(association)

객체는 일반적으로 상호작용하여 동작

객체에 있는 서비스를 호출하면 두 객체는 관계가 맺어져야 함

상호작용할 필요가 있는지 찾아내는 작업이 필요

연관

하나 또는 그 이상의 클래스와의 관계

예> 은행시스템과 학사업무 시스템

4

(5)

5

관계(relation)

참고, 채흥석, CBD 실전 프로젝트(한빛미디어), 10장

5

(6)

6

관계(relation)

6

Customer Account

Professor

Course

Student

(7)

7

관계(relation)

가시성(visibility) : 객체의 접근 가능성

관계를 맺는 두 객체가 서로를 알게 하고 접근하게 하는 방법

1) 관계된 객체(Course)를 전역으로 선언하여 클라이언트 객체(Student)가 접근할 수 있게 함

2) 관계된 객체(Course)를 클라이언트 객체(Student)의 메시지 호출 오퍼레이션의 매개변수로 만듬

3) 관계된 객체(Course)를 클라이언트 객체(Student)의 일부로 만듬 4) 관계된 객체(Course)를 클라이언트 객체(Student)에서 선언

이중 1)~3)은 의존관계(dependency)로 표현 됨 4)는 연관관계(association)로 표현 됨

7

(8)

1

관계(relation)

참고, 채흥석, CBD 실전 프로젝트(한빛미디어), 10장

1

(9)

2

관계(relation)

2

Customer Account

Professor

Course

Student

(10)

3

관계(relation)

가시성(visibility) : 객체의 접근 가능성

관계를 맺는 두 객체가 서로를 알게 하고 접근하게 하는 방법

1) 관계된 객체(Course)를 전역으로 선언하여 클라이언트 객체(Student)가 접근할 수 있게 함

2) 관계된 객체(Course)를 클라이언트 객체(Student)의 메시지 호출 오퍼레이션의 매개변수로 만듬

3) 관계된 객체(Course)를 클라이언트 객체(Student)의 일부로 만듬 4) 관계된 객체(Course)를 클라이언트 객체(Student)에서 선언

이중 1)~3)은 의존관계(dependency)로 표현 됨 4)는 연관관계(association)로 표현 됨

3

(11)

4

관계(relation)

5장_part1의 Slide 11에서

관계를 맺는 두 객체가 서로를 알게 하고 접근하게 하는 방법

1) 관계된 객체(ConfManager)를 전역으로 선언하여 클라이언트 객체(Client)가 접근할 수 있게 함

2) 관계된 객체(RandomGenerator)를 클라이언트 객체(Client)의 메시지 호출 오퍼레이션의 매개변수로 만듬

3) 관계된 객체(VisualDialogBox)를 클라이언트 객체(Client)의 일부로 만듬

4) 관계된 객체(Course)를 클라이언트 객체(Student)에서 선언

이중 1)~3)은 의존관계(dependency)로 표현 됨 4)는 연관관계(association)로 표현 됨

4

(12)

5

의존 관계는 연산의 인자, 지역 객체, 전역 객체와의 관계를 표현한다.

(13)

6

클래스 간의 의존 관계는 연산 범위에서 존재한다.

의존 관계의 발생

class Class3 {

public void op31(Class4 arg) { arg.op4() ;

}

public void op32() {

Class5 c5 = new Class5() ; c5.op5() ;

}

public void op33() { Class6::op6() ; }

}

(14)

7

관계(relation)

Slide 66에서

관계를 맺는 두 객체가 서로를 알게 하고 접근하게 하는 방법

1) 관계된 객체(ConfManager)를 전역으로 선언하여 클라이언트 객체(Client)가 접근할 수 있게 함

2) 관계된 객체(RandomGenerator)를 클라이언트 객체(Client)의 메시지 호출 오퍼레이션의 매개변수로 만듬

3) 관계된 객체(VisualDialogBox)를 클라이언트 객체(Client)의 일부로 만듬

4) 관계된 객체(Class2)를 클라이언트 객체(Class1)에서 선언

이중 1)~3)은 의존관계(dependency)로 표현 됨 4)는 연관관계(association)로 표현 됨

7

(15)

8

연관 관계는 참조변수를 선언함으로 가능

연관 관계의 발생

class Class1 {

private Class2 aClass2 ; public void op11() {

aClass2.op2() ; }

public void op12() { aClass2.OOOO() ; }

참조

관련 문서

 인자로 들어온 콜백 함수를 계속해서 호출하여 배열의 요소들을 왼쪽에서 오른쪽 방향으로 나아가면서 하나의 값으로 줄임. – 콜백 함수: 어떻게 배열의 원소들을

[r]

select title, author, (day, month, year) as date, set(keyword) as

또한 수목에 대한 모델링 결과와 GNSS 및 AR 기법을 이용한 조사는 현장에서 조사하는 수목에 대한 좌표와 수고 및 흉고직경 등의 속성정보를 확인할 수 있어 특정 객체의

[r]

본 논문에서는 특정 지역 내 진입한 객체에 대한 검출 과 객체의 GPS 좌표 정보를 이용한 추적 방안에 대해 논 의하였다. 객체 추적은 특정 지역 내에 진입한 객체에 대 해

 동적 메모리 할당 (dynamic memory allocation) 이란 프로그램이 실행 도중에 동적으로 메모리를 할당받는 것 을 말한다 .... 동적

[r]