Presentation is loading. Please wait.

Presentation is loading. Please wait.

자바 5.0 프로그래밍.

Similar presentations


Presentation on theme: "자바 5.0 프로그래밍."— Presentation transcript:

1 자바 5.0 프로그래밍

2 chapter 07 : 클래스 고급 Ⅱ

3 학습목표 static singleton 패턴 final abstract 클래스 interface 내부클래스
member 내부클래스 local 내부클래스 static 내부클래스

4 특징 사용 static 프로그램 실행시 static으로 지정된 클래스의 멤버가 자동으로 메모리에 로드된다.
프로그램 종료시 소멸된다. 객체생성과 무관하다. ( 객체생성 前인 프로그램 시작과 관련이 있다 ) 단 한번 실행된다. static 멤버 접근은 클래스이름.멤버 로 접근한다. 대표적인 메소드는 main 메소드이다. 사용 클래스 : inner 클래스에서 사용 멤버변수 : 인스턴스간 공유 목적으로 사용 멤버메소드 : 객체생성없이 접근할 목적으로 사용

5 static 예제

6 static 메소드 사용시 주의할 점 static static 메소드에서 인스턴스변수를 사용하지 못한다.
로컬변수 static 변수

7 정의 작성단계 Singleton 디자인 패턴 단 하나의 인스턴스만 생성하는 경우에 사용할 수 있는 static을 이용한 패턴.
1단계 : 생성자를 private로 지정한다.

8 Singleton 디자인 패턴 2 단계 : 자신의 클래스에서 객체생성한다. static으로 지정하여 프로그램 실행시 객체생성이 된다.

9 Singleton 디자인 패턴 3 단계 : 다른 클래스에서 접근할 수 있는 방법을 제공한다. 객체생성 없이 접근할 수 있는 방법으로 제공한다. 메소드 접근은 클래스이름.메소드 로 접근한다.

10 특징 용도 상수 final ‘금지’ 의 의미가 있다. 클래스 – 상속 금지 멤버메소드 – overriding 금지
멤버변수 - 상수 상수 프로그램 시작부터 끝까지 동일한 값을 갖는다. 모든 클래스에서 동일한 값을 공유해야 한다. 대문자로 상수명을 지정한다. public static final TOTAL_NUM = 40 ;

11 추상메소드 ( abstract method )
정의 실체가 없는 추상적인( 구현되지 않은 ) 의미. 내용은 없고 껍데기만 있는것을 의미. 용도 클래스 - 추상클래스. 멤버메소드 – 추상메소드. 추상메소드 ( abstract method ) 구현되지 않은 메소드, 즉 body가 없는 메소드. public abstract void run(); 구현메소드 ( concrete method ) 구현된 메소드, 즉 body가 있는 메소드. public void run(){ … }

12 정의 특징 용도 추상클래스 ( abstract class ) 클래스 선언시 abstract 지정자로 선언된 클래스.
객체생성이 불가능하다. 멤버 : 멤버변수 , 생성자 , concrete메소드 , abstract메소드 등 모두 가능하다. 추상메소드가 없어도 추상클래스로 선언 가능하다. 추상메소드가 있으면 반드시 추상클래스로 선언한다. 하위클래스를 이용하여 멤버를 재사용한다. Type으로 사용 가능하다. 하위클래스에 강제성과 통일성을 줄 수 있다. 용도 하위클래스에서 반드시 구현해야하는 메소드를 상위클래스에서 정의할 때 상위클래스에서 메소드구현을 하지않고 실제 구현은 하위클래스에서 한다. 이때 상위클래스에서 메소드는 추상메소드로 선언하여 강제성과 통일성을 줄수 있다.

13 예제 : 추상메소드 사용전 추상클래스 ( abstract class ) 문제점
상위 클래스에서 구현한 메소드를 무시하고 하위 클래스에서 추가된 메소드로 구현한다. 강제성과 통일성이 없다.

14 예제 : 추상메소드 사용후 추상클래스 ( abstract class ) 해결
상위 클래스에서 선언한 추상 메소드를 하위 클래스에서 구현. 강제성과 통일성을 준다. 즉, 재사용이 가능하다.

15 정의 특징 용도 인터페이스 ( interface ) class 대신 interface로 선언한 객체를 의미한다.
객체생성이 불가능하다. 멤버 : 상수, 추상메소드 만 가능하다. 하위클래스를 이용하여 멤버를 재사용한다. Type으로 사용 가능하다. 하위클래스에 강제성과 통일성을 줄 수 있다. 단일상속의 단점을 보완할 수 있다. 하위클래스에서는 extends 대신 implements 를 사용한다. 하위클래스에서는 다중 implements 가 가능하다. 용도 기능만을 상위에서 하위클래스로 강제하기 위해 사용한다.

16 예제 인터페이스 ( interface ) 상위 인터페이스에서 선언한 추상 메소드를 하위 클래스에서 구현.
강제성과 통일성을 준다.

17 정의 용도 내부 클래스 ( inner class ) 특정 클래스 내부에 또 다른 클래스가 정의되는 것을 의미한다.
class Outer { class Inner {   … } 용도 서로 독립적인 관계가 아닌 하나의 멤버처럼 사용될 수 있는 경우. 대표적으로 GUI 와 GUI 이벤트를 구현할 때 사용되어질 수 있다.

18 특징 종류 내부 클래스 ( inner class ) 내부 클래스는 외부 클래스의 모든 멤버를 자신의 멤버처럼 사용할 수 있다.
static내부 클래스를 제외한 다른 모든 내부클래스는 항상 외부 클래스를 이용하여 접근할 수 있다. 종류

19 member 내부 클래스 구성 내부 클래스 ( inner class ) 외부클래스의 멤버처럼 정의된 클래스.
내부클래스를 생성하려면 먼저 외부클래스를 생성해야 한다. 구성 class Outer { class Inner { }

20 내부 클래스 ( inner class ) 예제

21 local 내부 클래스 구성 내부 클래스 ( inner class ) 외부클래스의 멤버메소드안에서 정의된 클래스.
멤버메소드안에서 내부클래스를 객체생성한다. 멤버메소드의 로컬변수와 같이 동작한다. 메소드 호출시 생성되고 끝나면 소멸한다. 외부클래스의 멤버변수와 상수만 접근가능하다. 구성 class Outer { public vod methodA() { class Inner { } }//end methodA()

22 내부 클래스 ( inner class ) 예제

23 static 내부 클래스 구성 내부 클래스 ( inner class )
내부클래스내에 static멤버가 있는 경우에 static 내부클래스로 정의한다. 외부클래스의 멤버변수 접근은 불가능하다. 구성 class Outer { static class Inner { }

24 내부 클래스 ( inner class )

25 static을 이용한 Singleton 패턴 추상클래스 interface 내부클래스
요약 정리 static , final static을 이용한 Singleton 패턴 추상클래스 interface 내부클래스


Download ppt "자바 5.0 프로그래밍."

Similar presentations


Ads by Google