12 [인강] 자바의정석 ch06
Machine translation — switch to KO for the original.
| static 메서드와 인스턴트 메서드
인스턴트 메서드는 이미 객체가 호출되었으므로 인스턴스 변수 사용가능
static 메서드는 항상 호출가능
객체 없을 수 있으므로 인스턴스 변수 사용불가, 객체생성 후 가능
인스턴스 메서드(im) 호출할 수 없다
static 메서드 호출가능
인스턴스 멤버 (인스턴스 메서드, 인스턴스 변수)
| 오버로딩
한 클래스 안에 같은 이름 메서드를 여러 개 정의하는 것
void println()
void println(boolean x)
void println(char x)
오버로딩으로 조건
메서드 이름이 같아야 한다(작업동일)
매개변수 개수 또는 타입이 달라야
반환 타입은 영향 없다
| 생성자
인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'
Time t = new Time(12, 30, 20);
리턴값이 없고, void를 안 붙임
기본생성자
Point( ) { }
class Date_1 { //생성자가 하나도 없는 경우에는 컴파일러가 기본생성자 자동추가
int value;
}
class Data_2 {
int value;
Data_2( ) { } //기본생성자 추가필요
Date_2(int x) {
value = x;
}
}
class Ex6_11
public static void main(String[] args) {
Data_1 d1 = new Data_1( );
Data_2 d2 = new Data_2( );
}
}
class Car {
String color;
String gearType;
int door;
}
Car ( ) { }
Car c = new Car("white", "auto", 4);
| 생성자 this( ), 참조변수 this //무관
생성자에서 다른 생성자 호출시 사용, 코드의 중복제거
다른 생성자 호출시 첫 줄에서만 사용가능
선언없이 사용가능
class Car {
String color;
String geartype;
int door;
Car2( ) {
this("white", "auto", 4); //아래코드와 중복방지
}
Car(Stirng c, String g, int d) {
color = c;
geartype = g;
door = d;
}
}
참조변수 this
인스턴스 자신을 가리키는 참조변수, 인스턴스 메서드와 생성자에서만 사용가능
lv와 iv 구별에 사용
Car(Stirng color, String geartype, int door) {
this.color = color;
this.geartype = geartype;
this.door = door;
} //lv와 구별을 위해 iv에 this를 붙여야 한다. 같은 클래스내 생략가능(이름이 다른 경우)
| 변수의 초기화, 멤버변수(iv, cv)의 초기화
지역변수는 수동 초기화 필요
class InitTest {
int x;
int y = x; //iv, 자동초기화(null, false, 0)
void method1( ) {
int i = 0;
int j = i; //lv, 수동초기화
}
}
멤버변수의 초기화
0. 자동초기화
1. 명시적 초기화: 대입연산자
int door = 4; //기본형 초기화
Engine e = new Engine(); //참조형 초기화
2. 초기화 블럭: { }, static { }, 복잡한 초기화
3. 생성자: iv 초기화, 복잡한 초기화
클래스 → 인스턴스 초기화
자동, 간단 → 복잡 초기화
Comments
No comments yet. Be the first!
319 posts in 테크
- 368Supabase 프로젝트 복사하기 (Restore to a New Project)NEW
- 341Migrating from Permanent Access Tokens to Token Exchange — Why Order Matters
- 326Startup & Product Glossary: Terms Every Solo Founder Should Know
- 325Context Management — How I Do It Now
- 324Claude Code Routines vs Cowork Schedule — What's the Difference?