2010학년도 2학기 객체지향의 이해.

Slides:



Advertisements
Similar presentations
Class diagram. 클래스 클래스 이름 연산 속성 2 class Transportation { private int maximumPassenger; private double speed; public void depart(); public void stop();
Advertisements

C++ Espresso 제1장 기초 사항.
객체지향 프로그래밍.
Programming for the java Virtual machine
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
16강. 자바 빈 빈 이란? 빈 만들기 빈 관련 액션 태그(useBean, getProperty, setProperty)
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
명품 JAVA Programming.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
소프트웨어공학 UML 학기.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Power Java 제10장 배열.
2장. UML 기본 개념.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
화면(UI) 기반 도메인모델 작성 2014년 8월.
명품 JAVA Essential.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
명품 Java Programming.
소프트웨어설계 UML 학기.
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
프로그램 분석의 구현.
윤 홍 란 4 장 클래스 작성 윤 홍 란
Power Java 제7장 클래스와 객체.
DataScience Lab. 박사과정 김희찬 (월)
인터페이스(Interfaces) 강원대학교.
김 정 석 Web Programming 김 정 석
6장 객체-지향 설계 ①.
Visual Studio 2010 프로젝트 생성하기 PC화면에서 Visual Studio 2010 아이콘을 더블클릭 하거나
제1장 서론.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
6장 객체-지향 설계 ①.
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
소프트웨어 공학 (Software Engineering)
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
C# 09장. 상속성.
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
JA A V W. 04.
내부 클래스와 내부 인터페이스에 대하여 내부 클래스의 선언 방법과 이용 방법 내부 인터페이스의 선언 방법과 이용 방법
3장. 클래스의 기본.
JA V A W. 07 Sb.L.
Chapter 02. 소프트웨어와 자료구조.
[ 단원 06 ] 상속과 다형성.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
3장,4장 발표 서정우.
Part 3 객체지향 Chapter 5 : 객체지향 개념 Chapter 6 : 클래스 : 속성
C# 10장. 참조형.
컴퓨터 프로그래밍: 실습 1 제 1장 . 서론.
Java 5장. 객체지향 개념 public class SumTest {
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
C# 09장. 클래스와 객체.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
C++ 언어의 특징
1. 객체-지향 프로그래밍.
Presentation transcript:

2010학년도 2학기 객체지향의 이해

이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 학생들은 객체지향 개념을 설명할 수 있다 객체지향의 원리에 대해 설명할 수 있다 추상화(Abstraction) 상속(Inheritance) 다형성(Ploymorphism) 캡슐화(Encapsulation) 메시지 전송(Message Sending) 연관(Association) 집합연관(Aggregation)

객체 - 어디서나 볼 수 있는 객체 (1) 객체(Object)란? 현대의 소프트웨어 객체 실세계(현실)에 존재하는 사물(물체)이나 개념 현대의 소프트웨어 실세계를 그대로 혹은 약간 본떠 만듦 즉, 우리 주변의 객체를 프로그램으로 흉내내는 것 객체 클래스의 한 인스턴스 구조(structure)를 가짐 특성(Feature) = 속성(Attribute) + 행동(Behavior)

객체 - 어디서나 볼 수 있는 객체 (2) 클래스(Class) 비슷한 속성과 공통적인 행동수단을 지닌 것들의 범주 / 그룹 객체를 생성하는 틀 혹은 템플릿(Template) : 붕어빵 기계 속성(Attribute)과 행동(Behavior)으로 정의 속성과 행동이 더 많이 반영될수록 현실세계에 더 가까운 모델 Washing Machine brandName modelName serialName capacity drumVolume internalTimer trap motor motorSpeed addClothes( ) addDetergent( ) removeClothes( ) addBleach( ) timeTheSoak( ) timeTheWash( ) timeTheRinse( ) timeTheSpin( ) Washing Machine brandName modelName serialName capacity addClothes( ) addDetergent( ) removeClothes( )

C# 프로그램에서의 클래스와 객체 using System; class Profile { private int age = 23; public string name = “돌이”; private string phone = “02-123-4567”; public void PrintInfo( ) Console.WriteLine(“My name is {0}”, name); Console.WriteLine(“My age is {0}”, age); Console.WriteLine(“My phone number is {0}”, phone); } class Access public static void Main( ) Profile MyProfile = new Profile( ); MyProfile.PrintInfo( );

java 프로그램에서의 클래스와 객체 class Profile { private int age = 23; public string name = “순이”; private string phone = “02-123-4567”; public void PrintInfo( ) System.out.println(“My name is ” + name); System.out.println(“My age is ” + age); System.out.println(“My phone number is ” + phone); } public static void Main(String args[ ]) Profile MyProfile; MyProfile = new Profile( ); MyProfile.PrintInfo( );

객체 지향의 몇 가지 개념(1) 추상화(Abstraction) 객체를 모델링할 때 필요로 하는 만큼의 속성과 오퍼레이션을 추출하는 것 객체의 용도에 따라 속성과 오퍼레이션이 달라질 수 있음 복잡성을 줄여서 단순하게 표현하는 것 예) 세탁기(제조기술자, 세탁물 출입관리 프로그램) 예)자동차(세무공무원, 중고딜러) Car carType displacement age residence addTax( )

객체 지향의 몇 가지 개념(2) 상속(Inheritance) 객체는 클래스의 한 인스턴스로 클래스의 속성과 오퍼레이션을 물려 받음 클래스는 객체의 탬플릿 (예) 붕어빵 기계와 붕어빵 서브 클래스는 수퍼 클래스의 속성과 오퍼레이션을 물려 받음 Appliance HouseholdItem Appliance Furniture

객체 지향의 몇 가지 개념(3) using System; class Parent { protected string name; protected int age; private int inheritedMoney; } class Son : Parent public Son( ) this.name = “아들”; this.age = 7; public void PrintInfo( ) { …… } class Inheritance public static void Main( ) class Car { int velocity; int wheelNum; String carName; Car( ) } void speedUp( int speed) velocity += speed; class Truck extends Car int ton; class Taxi extends Car boolean isPrivate; ……

객체 지향의 몇 가지 개념(4) 다형성(Ploymorphism) 동일한 이름의 오퍼레이션이라도 오퍼레이션이 일어나는 클래스에 따라 행동이 다름 각 클래스마다 자신의 오퍼레이션이 어떻게 행동하는 지를 앎 (예) open open door, open window, open newspaper, open present, open account, open conversation

객체 지향의 몇 가지 개념(5) 캡슐화(Encapsulation) 객체는 자신의 오퍼레이션을 수행하고 결과를 내놓지만, 오퍼레이션의 동작원리는 숨겨져 있음 객체는 자신의 동작원리를 클래스라는 껍데기로 캡슐화함(숨김) 정보은닉(Information Hiding)이라고 부르기도 함 (예) TV 소프트웨어 세계에서 불의의 사고를 사전 차단 한 객체의 오퍼레이션 수정이 다른 객체에 영향을 안 주므로 결국 다른 객체를 고칠 필요가 없음 (예) 컴퓨터시스템에서의 모니터 객체는 얼굴(Face)만 보임으로써 그 객체가 수행하는 오퍼레이션을 다른 객체나 외부세계에서 지시할 수 있도록 함. 이를 인터페이스(Interface)라 함 (예) 세탁기의 다이얼, TV 본체의 버튼, 리모콘의 버튼 컴포넌트 기반 프로그래밍이 가능해지게 됨

객체 지향의 몇 가지 개념(6) 메시지 전송(Message Sending) (예) TV와 리모콘 객체는 여러 가지의 인터페이스를 제공함 (예) TV의 인터페이스 (사람에게 제공하는 인터페이스 : 버튼, 리모콘에게 제공하는 인터페이스 : 적외선 수신기) message to turn on

객체 지향의 몇 가지 개념(7) 연관(Association) 한 객체와 다른 객체 간의 관계 단방향성(unidirectional; TV를 켜다)과 양방향성(bidirectional; 결혼하다) 다중성(Multiplicity) : 두개 이상의 연관 기타 다중성의 예는? is married to turn on is married to rides in is a coworker of is a friend of rides in

객체 지향의 몇 가지 개념(8) 집합연관(Aggregation) 전체/부분(whole/part)의 관계 즉, 구성요소 들이 모여서 시스템을 구성함 (예) PC 시스템

객체 지향의 몇 가지 개념(9) 복합연관(Composition) 집합연관과 밀접한 관계, 집합연관의 특별한 종류 컴포넌트가 복합체(Composite) 내에서만 컴포넌트로 존재 (예) 셔츠에서의 소매 (예) 복합체보다 컴포넌트가 먼저 죽는 경우 : 나무와 나뭇잎 (예) 복합체가 없어지면 컴포넌트도 없어짐 : 나무와 나뭇잎

결론은 ? 모든 시스템의 중심은 객체와 객체 사이의 연관관계를 이해하는 것 의뢰인의 요구사항을 조사할 때 가장 중요한 것은 의뢰인의 지식 도메인(Knowledge Domain)을 빨리 이해하는 것 - UML

이번 시간의 학습요약 객체지향 개념 객체와 클래스 속성과 행동 객체지향의 원리 추상화(Abstraction) 상속(Inheritance) 다형성(Ploymorphism) 캡슐화(Encapsulation) 메시지 전송(Message Sending) 연관(Association) 집합연관(Aggregation)