JAVA/생성자

언어 공부/JAVA / / 2022. 5. 11. 02:18
반응형

생성자의 기본


생성자는 인스턴스 생성시 호출되는 '인스턴스 초기화 메서드'

 

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

- 생성자는 리턴값이 없다.

 

* 생성자는 단지 인스턴스를 초기화하는 메서드일 뿐이다. 오해금지.

 

ex) Card c = new Card();

 

  1. 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다.
  2. 생성자 Card()가 호출되어 수행된다.
  3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 변환되어 참조변수 c에 저장된다. 

 

또한. 생성자에서 다른 생성자를 호출할때 - this(), this를 사용한다. this()와 this는 이름만같을뿐 전혀다른 개념이니 유의하자.

같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능하다.

단, 다음의 두 조건을 만족시켜야한다. 


  1. 생성자의 이름으로 클래스이름 대신 this사용 
  2. 한 생성자에서 다른 생성자를 호출할 때 반드시 첫 줄에서만 호출이 가능하다. 

Car(String color){
door=5;
Car(color, "auto", 4);  
}
이와같은 방식이 오류이다 첫줄이 아니기 때문에. 

class Car{
String color; // 색상 
String gearType; // 변속기 종류 - auto (자동), manual (수동) 
int door; 

// 보통 이런식으로 변수를 작성하지만 정보의 은닉을 위해서는 이렇게 하는 것 보다는.

public class car{
private String color;
private String gearType; 
private int door; 

// 위와 같이 private로 변수를 은닉시켜 보안을 강화할 수 있다.

  1. 아래와 같이 생성자의 매개변수로 인스턴스 변수들의 초기값을 제공받는 경우가 많기 때문에 매개변수와 인스턴수변수의 이름이 일치하는 경우가 자주 있다 그렇기 때문에 이럴때는 매개변수 이름을 다르게 하는 것 보다 'this'를 사용해서 구별되도록 하는 것이 의미가 더 명확하다.
  2. 'this'는 참조변수로 인스턴스 자신을 가리킨다. 참조변수를 통해 인스턴스의 멤버에 접근할 수 있는 것처럼 'this'로 인스턴스변수에 접근할 수 있는 것이다. 
  3. 단! this를 사용할 수 있는것은 인스턴스멤버 뿐이다. static 메서드(클래스 메서드)에서는 인스턴스 멤버들을 사용할 수 없는 것처럼 this역시 사용할 수 없다.
  4. 왜? static메서드는 인스턴스를 생성하지 않고도 호출될 수 있으므로 static메서드가 호출된 시점에 인스턴스가 존재하지 않을 수 있기 때문이다.

public void car (String color, String gearType, int door) {

this.color = color; 

 

  • 그리고 위처럼 private로 구성을 하려면 getter setter를 가져와야하는데 빈공간에서 마우스 오른쪽 버튼을 누르고 source를 누르면 선택하여 필요한것을 가져올 수 있다.
반응형

'언어 공부 > JAVA' 카테고리의 다른 글

Java의 5대 핵심 개념과 예시로 알아보는 자바 프로그래밍  (0) 2023.11.24
JAVA/innerClass  (0) 2022.05.17
JAVA/DTO test code  (0) 2022.05.15
JAVA/상속관계, 포함관계  (0) 2022.05.15
JAVA/CLASS  (0) 2022.05.11
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기