728x90
반응형
초기화블록 (Initializaion Block) |
||
필드=속성=멤버=인스턴스=Attribute=Property= Column 의 값을 초기화시키는 기능을 가지고 있는 블록 | ||
초기화 순서 : | ||
1. 필드의 자동초기화값 | int a; | |
2. 필드선언 시 초기값 바로 대입하는 경우 (명시적 초기화) |
int a = 10; | |
3. 인스턴스 필드 블록 초기화값 | {필드의 초기화명령문; (static필드, 인스턴스필드) } | { a = 20; } |
4. 클래스 필드(static필드) 블록의 초기화값 | static{필드의 초기화명령문; (static필드) } | static int a = 10; static { a = 55; } |
5. 생성자에서 초기화한 값 | Ex( ){ a = 77; } | |
6. setter메소드로 초기화한 값(단, setter메소드는 자동실행 안 됨. 실행하려면 반드시 호출해야함) | ||
멤버필드를 초기화 할 수 있는 방법 | ||
-초기화 블럭 사용 -생성자 사용 -setter메소드 사용 -명시적초기화(선언과 동시에 값 대입을 하는 방법) |
필드( =속성=멤버=인스턴스=Attribute=Property= Column 또는 클래스) 상수 예외 사항 : 반드시 선언과 동시에 초기값 설정을 해주어야 하나, 1)초기화블럭과 2) 생성자 중 딱 한 번은 초기값 설정을 할 수 있다. |
class Ex{ 1)인스턴스 초기화블록 final int MAX ; { MAX = 55; } 2)생성자 Ex(){ MAX = 10;} } |
InitializaionBlockEx.java
package interfaceex; public class InitializaionBlockEx { public static void main(String[] args) { System.out.println(InitBlock.classVar); InitBlock myInit = new InitBlock(); System.out.println(myInit.instanceVar); myInit.setInstanceVar(555); System.out.println(myInit.instanceVar); } } class InitBlock { //클래스변수 (명시적초기화) static int classVar = 10; //인스턴스변수 = 멤버변수(명시적초기화) int instanceVar = 10; //인스턴스상수 = 멤버상수(선언만) final int MAX; //클래스(static)필드 초기화 블록 static { classVar = 20; //static이 붙은 클래스변수만 초기화가능 // instaceVar = 555; } //인스턴스필드 초기화 블록 { this.instanceVar = 20; this.classVar = 50; MAX = 100; } //기본 생성자 public InitBlock() { instanceVar = 30; this.classVar = 77; // this.MAX = 100; //상수는 딱 한번만 } //setter메소드 public void setInstanceVar(int instanceVar) { this.instanceVar = instanceVar; } }
20 30 555
Return.java
return의 또 다른 쓰임새
package interfaceex; class Return { public void say_nick(String nick) { if ("fool".equals(nick)) { //equals객체열 안에 있는 값 비교 //return키워드의 또 다른 쓰임새, 메소드의 종료 중괄호로 빠져나감. return; } System.out.println("나의 별명은 " + nick + " 입니다."); } //if true - return값이 나오는 곳으로 출력되지 않음 } public class ReturnClass { public static void main(String[] args) { Return rt = new Return(); //default 기본생성자 호출 rt.say_nick("fool"); System.out.println("출력결과 "); } }
출력결과
Generic Type |
||
class 클래스명<클래스급이상자료형 변수명Aaa> { String a; public String getA( ){ return a; } pubic void setA(String a){ this.a = a; } } |
class 클래스명< T > { T a; public T getA( ){ return a; } pubic void setA(T a){ this.a = a; } } |
|
T => 한 개의 자료형을 변경하고자 하거나 어떤 변수를 지정할 지 모르는 경우는 대개 T변수를 쓴다. (자료형을 의미하는 Type의 약자에서 따온 명칭) |
||
E => 배열처럼 나열하는 목록의 자료형을 가지는 클래스의 요소 자료형을 지정할 때 사용하는 명칭(Element의 약자) | ||
K => Key요소의 자료형을 지정하는 명칭 | ||
V => Value요소의 자료형을 지정 | ||
N => Number자료형을 지정하는 명칭 | ||
? => WildCard : 전체 다, 무엇이든지 (*같은) 단독으로 사용불가하며, 반드시 소속된 클래스가 앞에 명시되어야한다. <? super : 조상클래스가 앞에 나오며 super앞에는 와일드카드만 명시가능하다. |
||
728x90
반응형
'[JAVA]' 카테고리의 다른 글
[18일차] HashMap Hashtable Anonymous InnerClass InstanceInner StaticInner Local Ramda (0) | 2024.01.05 |
---|---|
[17일차] Generic Wildcard Collection Framework (0) | 2024.01.04 |
[JAVA] 제어자 (0) | 2024.01.03 |
[16일차 오전] lotto Calendar SimpleDateFormat LocalDateTime DateTimeFormatter (0) | 2024.01.03 |
[15일차 오후] Scanner StringTokenizer Arrays binarySearch (0) | 2024.01.02 |