자바 기본 문법 (번외)

Sukhun-Net·2023년 5월 28일

1. 인스턴스 생성과 사용

Form

클래스명 변수명; (참조변수)
변수명 = new 클래스명();

클래스명 변수명 = new 클래스명();

2. 생성자 (constructor)

생성자는 인스턴스 변수들의 ★초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다.

생성자 역시 method 처럼 클래스 내에 선언된다.
구조도 method 와 유사하지만 리턴값이 없다. 그렇다고 키워드 void등을 사용하지는 않고 아무것도 적지 않는다.

★★ 생성자의 이름은 클래스의 이름과 같아야 한다.

생성자 FORM

클래스이름(타입 변수명, 타입 변수명, ...) {

//인스턴스 생성 시 수행될 코드 
// 주로 인스턴스 변수의 초기화 코드를 적음 

}

생성자도 오버로딩이 가능하므로 하나의 클래스에 여러개의 생성자가 존재할 수 있다.

예시)

class Card{

Card() {  // 매개변수가 없는 생성자 
 
}

Card(String k, int num) { // 매개변수가 있는 생성자

}

}

기본 생성자

모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야 한다.

만약 클래스에 생성자를 정의하지 않으면 컴파일러가 '기본 생성자'를 추가해준다.

기본 생성자 형식
클래스이름() {}

*기본 생성자가 컴파일러에 의해 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때 뿐이다.

매개변수가 있는 생성자

  1. 인스턴스를 생성한 다음 인스턴스변수의 값 변경

class Car {

 ...
 ...
 ...
 
 Car(){}

}

class CarTest {

...
...

Car c1 = new Car();
c1.color = "white" ;
c1.gearType = "auto";
c1.door = 4;

}

★ 2. 매개변수가 있는 생성자

class Car {

Car(String c, String g, int d){
color = c;  
gearType = g; 
door = d; 
}

}

class CarTest {

Car c2 = new Car("white", "auto",4);

}

생성자에서 다른 생성자 호출하기 - this(), this

생성자 간에도 서로 호출이 가능하다. 단, 다음의 두 조건을 만족시켜야 한다.

  • 생성자의 이름으로 클래스이름 대신 this를 사용한다.
  • 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다. (멤버변수의 이중 초기화를 방지)
profile
Data Scientist (Computer Vision, Multimodal)

0개의 댓글