1 - 강원대학교 데이터베이스 연구실

Download Report

Transcript 1 - 강원대학교 데이터베이스 연구실

This, static, final 지정 예약어
자바 4대 중첩 클래스
2014년 4월 9일 19:00
김재영
강원대학교 데이터베이스 연구실
1
▪ 개념 : this라는 예약어는 일반적으로 클래스 내부에서 자기 자신의 클래스를
지칭하는 객체로 이용된다.
▪ 사용방법 : this.Field
강원대학교 데이터베이스 연구실
2
1. Round11_Ex01이라는
클래스 생성
2. private x, y변수선언
3. 매개변수가 없는 생성자
4. 매개변수가 있는 생성자
5. disp 메서드
6. rd 객체 생성
7. rd객체내의 disp메서드
호출
강원대학교 데이터베이스 연구실
3
▷ 반드시 this를 사용해야 하는 경우
강원대학교 데이터베이스 연구실
4
* 결과
x=0
실제로 매개 변수로 사용되는 변수
명과 멤버로 사용되는 필드명이 동
일할 경우 반드시 두 개를 구분해 주
어야함
강원대학교 데이터베이스 연구실
5
 일반적으로 this가 내 것, 네 것을 구분하기 위한 개념이라면 static은 우리 모
두의 것 또는 공유라는 개념으로 생각하면 된다.
 사용방법 : 1) 접근제한자 static 자료형(클래스형) 필드명 ;
2) static{
초기화 내용부;
……
}
강원대학교 데이터베이스 연구실
6
①
②
강원대학교 데이터베이스 연구실
7
외부에서 접근하기 편하도록 Field
는 전부 public으로 함
클래스 A의 x 필드는 static으로 지정하지 않았
기 때문에 다른 클래스에서 불러와 쓸 수 없음
강원대학교 데이터베이스 연구실
8
 상수 변수를 지정하기 위해 사용하는 예약어
 형식 : 접근제한자 final 자료형(클래스형) 필드명 = 초기값;
 Ex) 파이(𝜋) ⇒ 𝑓𝑖𝑛𝑎𝑙 𝑑𝑜𝑢𝑏𝑙𝑒 𝒑𝒊 = 3.141592;
강원대학교 데이터베이스 연구실
9
 Static 예약어와 함께 사용될 수 있다.( 1. final static 2. static final )
강원대학교 데이터베이스 연구실
10
 하나의 대표 클래스 내에 다른 클래스들을 넣어 관리 할 수 있는 형식이다.
대표 클래스가 그들 모두에 있어 공통적인 속성 값만을 가지고 나머지는 각기
다른 중첩된 클래스에서 관리하도록 만든것.
강원대학교 데이터베이스 연구실
11
강원대학교 데이터베이스 연구실
12
 형식 – 중첩 클래스 접근
: Outer 객체1 = new Outer(); // Outer 클래스 객체 생성 방법
Outer.Inner 객체2 = 객체1.new Inner(); // Inner 클래스 객체 생성 방법
강원대학교 데이터베이스 연구실
13
 Outer 클래스 멤버를 Inner 클래스
에서 사용하여 main문에서 생성한
ot와 oi를 통해 Inner 클래스의 aaa
메서드를 호출함
강원대학교 데이터베이스 연구실
14
 앞선 예제와 반대로
Outer 클래스에서
Inner 클래스의 멤버를
사용할 수는 없다.
컴파일 에러!!
강원대학교 데이터베이스 연구실
15
 일반적으로 중첩 클래스의 내부에는 static 멤버를 선언할 수가 없다. 중첩 클
래스 내부에서 static멤버를 선언하기 위해서 사용하는 것이 정적 중첩 클래스
이다. 단순히 클래스 이름앞에 static 예약어만 붙이면 됨.
 형식 – 정적 중첩 클래스의 객체 생성 방법
: Outer.Inner 객체 = new Outer.Inner();
강원대학교 데이터베이스 연구실
16
Private int x = 100;
-> private static int x = 100;
강원대학교 데이터베이스 연구실
17
 일반적으로 클래스라는 것은 재사용을 염두에 두고 만들어진 것이다. 그런데
이런 클래스가 특정 메서드를 실행할 때에만 필요하고 사용할 경우가 거의 없
다면 굳이 외부에 드러난 형태로 만들 필요는 없다. 그래서 특정 메서드에만
사용할 클래스가 지역 중첩 클래스 이다.
 접근제한자와 지정 예약어를 사용할 수 없는 형태이다.
강원대학교 데이터베이스 연구실
18
☞ System.out.println(in.y)의
메서드 사용의 용도로만 쓰이
기 때문에 Inner 클래스를 굳이
외부에 쓰지 않고 main문 안에
쓴다.
강원대학교 데이터베이스 연구실
19
 지역 중첩 클래스의 변형된 형태
 Class라는 예약어와 클래스명을 가지지 않고 단지 instance의 생성과 내용부
의 정의만 가진다.
 중첩 클래스는 기존에 존재하는 것이어야만 하며, 사용할 수 있는 외부 데이터
가 final로 선언되어 있어야 한다.
강원대학교 데이터베이스 연구실
20
이미 기존에 선언한 Inner 클래스
외부데이터 x를 final로 선언
class라는 이름 가지지 않음
강원대학교 데이터베이스 연구실
21
강원대학교 데이터베이스 연구실
22
강원대학교 데이터베이스 연구실
23
Thanks you !
강원대학교 데이터베이스 연구실
24