자바 5.0 프로그래밍.

Slides:



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

제 5 장 상속과 다형성.
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
3. C++와 객체지향 C++ 코딩 방법 객체 단위로 2 개의 파일 인터페이스 파일 구현파일
14. 위피 게임: 가위바위보 게임 초기에 점수=0 처음 이기면 10 점 그 다음부터 이기면 점수=현재 점수*2 지면
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
객체지향 프로그래밍.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
Programming for the java Virtual machine
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
16강. 자바 빈 빈 이란? 빈 만들기 빈 관련 액션 태그(useBean, getProperty, setProperty)
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
명품 JAVA Programming.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
2장. UML 기본 개념.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
화면(UI) 기반 도메인모델 작성 2014년 8월.
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
명품 JAVA Essential.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
명품 Java Programming.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
2010학년도 2학기 객체지향의 이해.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 08. 상속과 다형성.
인터페이스(Interfaces) 강원대학교.
김 정 석 Web Programming 김 정 석
UML exercise in Class.
제1장 서론.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Java 8장. 상속 public class SumTest {
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
소프트웨어 공학 (Software Engineering)
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
C# 09장. 상속성.
Web programming Chap 04 상속 김 정 석
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
[INA470] Java Programming Youn-Hee Han
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
JA A V W. 04.
Spring DI 이해 및 활용.
CACM 구현 public class CACM { public CACM(File file)
자바 5.0 프로그래밍.
JA V A W. 07 Sb.L.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
[ 단원 06 ] 상속과 다형성.
3장,4장 발표 서정우.
Part 3 객체지향 Chapter 5 : 객체지향 개념 Chapter 6 : 클래스 : 속성
자바 5.0 프로그래밍.
6장 클래스(상속).
Java 5장. 객체지향 개념 public class SumTest {
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
C++ 언어의 특징
1. 객체-지향 프로그래밍.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

자바 5.0 프로그래밍

chapter 06 : 클래스 고급 Ⅰ

학습목표 클래스들간의 관계 ( Relationship ) 상속 super this overriding 메소드 접근지정자 다형성( polymorphism )

정의 종류 클래스들간의 관계 ( Relationship ) 개체모델링을 통해서 추출된 클래스들간의 관계 Is a 관계 : 대학생 is a 학생 , 관리자 is a 직원 Has a 관계 : 자동차 has a 엔진 , 은행고객 has a 계좌 Use a 관계 : 프로그래머 use a 컴퓨터

정의 용도 형식 상속의 UML 표기법 상속 ( Inheritance ) Is a 관계가 성립되는 클래스들간의 관계. 특정 클래스가 가지는 일부 속성과 기능을 다른 새로운 클래스에게 제공하기 위해 맺는 클래스들간의 관계. 용도 비슷한 용도의 클래스들을 재사용 할 목적으로 상속을 한다. 하나 이상의 클래스 사이에서 구조나 행위를 공유할 목적. 형식 class sub클래스명 extends super클래스명 { …} 자식 클래스 부모 클래스 extends 상속의 UML 표기법

특징 상속관계로 만드는 방법 상속 ( Inheritance ) 자바언어는 단일 상속만 지원한다. ( 클래스의 계층구조가 명확 ) 부모에서 선언한 멤버는 자식에서 선언 없이 사용 가능하다. 생성자는 상속되지 않는다. 상속관계로 만드는 방법 일반화( Generalization ) : 다수의 클래스들간의 공통점을 발견하는 방법. 공통점을 가진 클래스는 부모 클래스고 선언하고 각각의 차이점을 가진 클래스를 자식 클래스로 선언한다. 대학생 , 고등학생 -> 학생 전문화( Specialization ) : 일반화 하고는 반대로 특정클래스에서 하위 클래스를 생성. 직원 -> 관리자 , 엔지니어 , 비서

장점 예제 상속 ( Inheritance ) 객체의 재사용성 코드의 간결함에 따른 개발시간 단축. 중학생 is a 학생. 대학생 is a 학생.

상속 ( Inheritance ) 예제

예제 소스분석 상속 ( Inheritance ) College 를 객체생성 Student 부모 생성자 호출 자식보다 부모가 먼저 생성 자식 생성자에서 부모 생성자를 자동호출 -> super(); 자동삽입 소스분석

정의 용도 super 부모 클래스의 인스턴스를 가리키는 변수. 자식 클래스에서 부모 클래스의 멤버 접근시 사용한다. 부모 생성자 호출 - 자식 생성자 첫라인에서 부모생성자를 호출한다. - 명시적으로 호출하지 않으면 super() 가 자동으로 삽입된다. - super(); , super( args ); 부모 클래스 멤버 호출 - 자식 클래스에서 부모 클래스의 멤버를 호출한다. - super.name; , super.getName();

super 예제 명시적인 부모생성자 호출시에는 반드시 첫라인에서 호출한다.

정의 용도 this 자기자신의 인스턴스를 가리키는 변수 자신의 멤버 호출시 사용한다. 다른 생성자 호출 - 생성자 첫라인에서 다른 생성자를 호출한다. - this(); , this( args ); 자신의 멤버 호출 - 로컬변수와 인스턴스변수 이름이 동일한 경우 - this.멤버 - String name; //인스턴스변수 public void setName( String name){ this.name = name; }

this 예제

정의 규칙 용도 overriding 메소드 상속관계시 부모의 메소드를 자식에서 수정하여 재정의한 메소드. 메소드 이름이 동일 리턴 타입이 동일 argument_list 가 동일 ( 순서 , 타입 , 개수 ) 접근 지정자는 확대만 가능 ( 축소 불가 ) Exception ( 예외) 처리는 축소만 가능( 확대 불가 ) static , final , private 은 overriding이 불가능하다. 용도 자식 클래스에서 추가작업이 필요한 경우에 수정하여 사용한다.

overriding 메소드 예제

정의 종류 접근 지정자 ( access modifier ) 클래스의 멤버에 대해서 제한된 방식으로 접근하도록 제어를 지정할 때 사용하는 지정자. 종류 public : 모든 클래스에서 접근이 가능 protected : 같은 패키지(폴더)에 있는 클래스와 상속관계의 클래스들만 접근 가능 default : 같은 패키지에 있는 클래스들만 접근 가능 private : 같은 클래스내에서만 접근 가능

사용법 접근 지정자 ( access modifier ) 클래스 – public , default 만 가능하다 멤버변수 – 모든 접근 지정자 가능하다. 멤버메소드 – 모든 접근 지정자 가능하다. 생성자 – 모든 접근 지정자가 가능하다. 로컬변수에는 접근 지정자를 사용할 수 없다.

접근 지정자 ( access modifier ) 사용법

정의 특징 형식 댜형성 ( Polymorphism ) 특정타입의 변수가 특정타입이 아닌 다른 타입도 가리킬수 있는 능력. 반드시 상속이 전제된다. 재사용성이 높아진다. 형변환과 instanceof 연산자가 주로 사용되어진다. 형식 상위타입 변수 = 하위타입;

댜형성 ( Polymorphism ) 상속의 계층구조 大 小

댜형성 ( Polymorphism ) 주의할 점

형 변환 ( type casting ) 다형성 사용용도 댜형성 ( Polymorphism ) 메소드 argument 에 사용되어진다. 재사용성이 높아진다.

댜형성 ( Polymorphism ) 예제

댜형성 ( Polymorphism ) instanceof 적용예제

요약 정리 is a 관계 상속 overriding 메소드 super 와 this 접근 지정자 다형성 및 적용