자바 5.0 프로그래밍.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
10. 예외 처리.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
5장. 객체지향과 클래스.
JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.
클래스 구성 요소 1개의 클래스는 최대 8개의 구성 요소를 가질 수 있다
Chapter 05. 클래스Ⅱ.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
제 8 장 상속.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
제 3장. C보다 나은 C++ II.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
12 ███████████ 12.
6장. 클래스.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Java 6장. 클래스 : 속성 public class SumTest {
Lesson 7. 클래스와 메소드 - 1.
자바네트워크 제2주 실습 네트워크기초, 스레드.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
자바 5.0 프로그래밍.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Java 9장. 인터페이스와 예외처리 public class SumTest {
Method & library.
자바 5.0 프로그래밍.
Chapter 11 객체지향 프로그래밍의 기초 01 클래스 02 생성자 03 인스턴스 변수와 클래스 변수 예제 모음 요약
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
1주차 : 자바기본 소제목 : 자바 프로그래밍 기본.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Effective Java [Issue 1 and 2]
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
자바 5.0 프로그래밍.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
Power Java 제11장 상속.
JA A V W. 06.
10장 상속 Section 1 상속의 개요 Section 2 상속과 한정자 Section 3 상속과 생성자
Java Programming Java Programming 3장 백석대학교 인터넷멀티미디어 LAB1111호.
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
C# 07장. 객체 지향 개념.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
3. 모듈 (5장. 모듈).
서브클래스 조 병 규 한 국 교 통 대 학 교 SQ Lab..
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 07. 상속의 이해.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
자바 객체 지향 프로그래밍 Ps lab 김윤경.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
6 객체.
Presentation transcript:

자바 5.0 프로그래밍

chapter 07 : 클래스 고급 Ⅱ

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

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

static 예제

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

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

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

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

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

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

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

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

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

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

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

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

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

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

내부 클래스 ( inner class ) 예제

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

내부 클래스 ( inner class ) 예제

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

내부 클래스 ( inner class )

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