Download presentation
Presentation is loading. Please wait.
1
자바 5.0 프로그래밍
2
chapter 06 : 클래스 고급 Ⅰ
3
학습목표 클래스들간의 관계 ( Relationship ) 상속 super this overriding 메소드 접근지정자
다형성( polymorphism )
4
정의 종류 클래스들간의 관계 ( Relationship ) 개체모델링을 통해서 추출된 클래스들간의 관계 Is a 관계
: 대학생 is a 학생 , 관리자 is a 직원 Has a 관계 : 자동차 has a 엔진 , 은행고객 has a 계좌 Use a 관계 : 프로그래머 use a 컴퓨터
5
정의 용도 형식 상속의 UML 표기법 상속 ( Inheritance ) Is a 관계가 성립되는 클래스들간의 관계.
특정 클래스가 가지는 일부 속성과 기능을 다른 새로운 클래스에게 제공하기 위해 맺는 클래스들간의 관계. 용도 비슷한 용도의 클래스들을 재사용 할 목적으로 상속을 한다. 하나 이상의 클래스 사이에서 구조나 행위를 공유할 목적. 형식 class sub클래스명 extends super클래스명 { …} 자식 클래스 부모 클래스 extends 상속의 UML 표기법
6
특징 상속관계로 만드는 방법 상속 ( Inheritance )
자바언어는 단일 상속만 지원한다. ( 클래스의 계층구조가 명확 ) 부모에서 선언한 멤버는 자식에서 선언 없이 사용 가능하다. 생성자는 상속되지 않는다. 상속관계로 만드는 방법 일반화( Generalization ) : 다수의 클래스들간의 공통점을 발견하는 방법. 공통점을 가진 클래스는 부모 클래스고 선언하고 각각의 차이점을 가진 클래스를 자식 클래스로 선언한다. 대학생 , 고등학생 -> 학생 전문화( Specialization ) : 일반화 하고는 반대로 특정클래스에서 하위 클래스를 생성. 직원 -> 관리자 , 엔지니어 , 비서
7
장점 예제 상속 ( Inheritance ) 객체의 재사용성 코드의 간결함에 따른 개발시간 단축.
중학생 is a 학생. 대학생 is a 학생.
8
상속 ( Inheritance ) 예제
9
예제 소스분석 상속 ( Inheritance ) College 를 객체생성 Student 부모 생성자 호출
자식보다 부모가 먼저 생성 자식 생성자에서 부모 생성자를 자동호출 -> super(); 자동삽입 소스분석
10
정의 용도 super 부모 클래스의 인스턴스를 가리키는 변수. 자식 클래스에서 부모 클래스의 멤버 접근시 사용한다.
부모 생성자 호출 - 자식 생성자 첫라인에서 부모생성자를 호출한다. - 명시적으로 호출하지 않으면 super() 가 자동으로 삽입된다. - super(); , super( args ); 부모 클래스 멤버 호출 - 자식 클래스에서 부모 클래스의 멤버를 호출한다. - super.name; , super.getName();
11
super 예제 명시적인 부모생성자 호출시에는 반드시 첫라인에서 호출한다.
12
정의 용도 this 자기자신의 인스턴스를 가리키는 변수 자신의 멤버 호출시 사용한다. 다른 생성자 호출
- 생성자 첫라인에서 다른 생성자를 호출한다. - this(); , this( args ); 자신의 멤버 호출 - 로컬변수와 인스턴스변수 이름이 동일한 경우 - this.멤버 - String name; //인스턴스변수 public void setName( String name){ this.name = name; }
13
this 예제
14
정의 규칙 용도 overriding 메소드 상속관계시 부모의 메소드를 자식에서 수정하여 재정의한 메소드. 메소드 이름이 동일
리턴 타입이 동일 argument_list 가 동일 ( 순서 , 타입 , 개수 ) 접근 지정자는 확대만 가능 ( 축소 불가 ) Exception ( 예외) 처리는 축소만 가능( 확대 불가 ) static , final , private 은 overriding이 불가능하다. 용도 자식 클래스에서 추가작업이 필요한 경우에 수정하여 사용한다.
15
overriding 메소드 예제
16
정의 종류 접근 지정자 ( access modifier ) 클래스의 멤버에 대해서 제한된 방식으로 접근하도록 제어를
지정할 때 사용하는 지정자. 종류 public : 모든 클래스에서 접근이 가능 protected : 같은 패키지(폴더)에 있는 클래스와 상속관계의 클래스들만 접근 가능 default : 같은 패키지에 있는 클래스들만 접근 가능 private : 같은 클래스내에서만 접근 가능
17
사용법 접근 지정자 ( access modifier ) 클래스 – public , default 만 가능하다
멤버변수 – 모든 접근 지정자 가능하다. 멤버메소드 – 모든 접근 지정자 가능하다. 생성자 – 모든 접근 지정자가 가능하다. 로컬변수에는 접근 지정자를 사용할 수 없다.
18
접근 지정자 ( access modifier )
사용법
19
정의 특징 형식 댜형성 ( Polymorphism ) 특정타입의 변수가 특정타입이 아닌 다른 타입도 가리킬수 있는 능력.
반드시 상속이 전제된다. 재사용성이 높아진다. 형변환과 instanceof 연산자가 주로 사용되어진다. 형식 상위타입 변수 = 하위타입;
20
댜형성 ( Polymorphism ) 상속의 계층구조 大 小
21
댜형성 ( Polymorphism ) 주의할 점
22
형 변환 ( type casting ) 다형성 사용용도 댜형성 ( Polymorphism )
메소드 argument 에 사용되어진다. 재사용성이 높아진다.
23
댜형성 ( Polymorphism ) 예제
24
댜형성 ( Polymorphism ) instanceof 적용예제
25
요약 정리 is a 관계 상속 overriding 메소드 super 와 this 접근 지정자 다형성 및 적용
Similar presentations