기록 저장소
[Java #11] field, constructor 본문
field
- 전역변수는 속성이다!
- 전역변수(필드)는 reference 데이터 타입은 null, 숫자형은 0으로 초기화 됨
this : 자기클래스 참조변수 (생략가능)
super : 상위클래스 참조변수
- 전역변수와 지역변수의 이름이 같은 경우, 가까이 있는 것을 취함
public Car(String color) {
carName = "쏘나타";
//전역변수와 지역변수의 이름이 같은경우!
//1.
//color = color; //전역변장와 장염변수의 아름이 같은 경우에 가까운 것을 취하기에, null값이 되어버림
/*2.
Car car = new Car(); //새로운 객체를 또 생성한거임.
car.color = color;
System.out.println(car.color);
*/
color = color;
maker = "현대";
- 자기 클래스의 전역변수를 참조할 때, 객체명을 생략하면 자동으로 this.이 적용됨
* 생성자(Constructor)
1. 객체 생성시 최초로 호출. 단, new 연산자와 함께 호출
- 생성자는 단독으로 호출할 수 없음. new가 있어야 함
(객체가 여러개인 경우 생성자도 여러개임!)
2. 객체 생성시 객체의 초기화 작업
3. 사용자 정의 생성자가 없을 경우 default 생성자가 생략되어 있음
* default 생성자 : public ClassName() {} class를 메모리에 올려주는 역할만 함
사용자 정의 생성자를 하나 이상만들 경우 defaul 생성자는 사라짐
4. Class의 이름과 같은 method의 일종. Return Type이 없음 (void와 return type이 없는 것은 다름!)
형식)
접근제어자 ClassName( [args] ){
}
5. method overloading(method의 다중정의) : 같은 이름의 method를 여러개 정의 하는 것.
- 단, 인자값의 '개수||타입'이 달라야 함
ex)
public void a() {}
public void a() {} //X
public void a(int x) {} //O
public void a(int y) {} //X
private int a() {} //X
public void a(int x, Sring s) {} //O
public void a(int x, int y) {} //O
public void a(Strin s, int y) {} //O
6.
this() : 자기클래스 생성자 호출
super() : 상위클래스 생성자 호출
- this() 는 생성자의 첫번째 줄에 있어야 함
∴ 하나의 생성자 안에서 생성자 호출은 1번만 가능!
'kitri 노트 > java' 카테고리의 다른 글
[Java #13] inheritance (0) | 2019.03.25 |
---|---|
[Java #12] method (0) | 2019.03.22 |
[Java #10] Class (0) | 2019.03.21 |
[Java #9] break, continue, return (0) | 2019.03.19 |
[Java #8] 반복문_while (0) | 2019.03.18 |