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