• Constructor(생성자)
    • 객체 생성 시에 초기화를 담당한다
    • new연산자로 호출되는 중괄호 블록이다
    • 클래스 이름과 생성자의 이름은 동일해야 한다
    • 생성자가 하나라도 있으면 Default생성자는 컴파일 단계에서 자동으로 생성되지 않으며 Default생성자가 필요하다면 생성자 오버 로딩을 통해 Default생성자를 생성해줘야 사용이 가능하다
    • public class Student {
      	public Student() {
          	
          }
      }
    • 객체 생성 시 사용하는 new연산자에서 소괄호 안에 넣어줄 매개 변수를 생성자에서 설정해 줄 수 있다
    • 생성자를 작성하지 않으면 컴파일 시에 default생성자가 만들어지며 위의 코드와 똑같이 만들어진다
    • 메서드와 동일하게 생겼지만 반환 값이 없고 클래스 이름과 동일한 것이 특징이다
    • 생성자를 여러 개 생성할수 있다
      • 생성자를 여러개 만들어주는 것을 생성자 오버 로딩이라고 하며 매개변수의 타입, 개수 또는 타입과 개수가 모두 다른경우 오버로딩이 가능하다
      • 불가능한 경우
        • public class Student {
          	public int num;
              public String name;
              public int age;
              public int regNo;
              
          	public Student (int num, int age) {
              	this.num = num;
                  this.age = age;
              }
              
              public Student (int num, int regNo) {
              	this.num = num;
                  this.regNo = regNo;
              }
          }
        • 위와 같이 매개변수에 들어가는 값의 개수가 같을 때 같은 타입이면 오류가 생긴다
        • 오버 로딩 시에는 매개변수의 변수명은 중요하지 않으며 타입과 개수가 다른 것이 중요하다
      • 가능한 경우
        • public class Student {
          	public int num;
              public String name;
              public int age;
              public int regNo;
              
          	public Student (int num, int age) {
              	this.num = num;
                  this.age = age;
              }
              
              public Student (int num, String name) {
              	this.num = num;
                  this.name = name;
              }
          }
        • 위의 경우에는 매개변수의 개수는 같지만 타입이 다르기 때문에 오버 로딩이 가능하다
    • this
      • 위의 코드를 보면 모두 생성자 안에서 this라는 키워드를 사용해줬는데 자기 자신을 뜻한다
      • 생성자를 보면 매개변수로 받아오는 변수의 이름이 필드의 변수 이름이랑 같다. 일반적으로 위와 같이 작성을 해주는데 그때 필드가 가지고 있는 변수와 매개변수로 받아오는 변수를 구분해주기 위해 this라는 키워드를 사용할 수 있다.
      • this는 생성된 인스턴스 자신을 가리키는 키워드로 Student클래스로 A와 B라는 인스턴스를 생성했을 때 A의 this는 A가 가지고 있는 필드와 메서드, 생성자를 가리키고, B의 this는 B가 가지고있는 필드와 메서드, 생성자를 가리킨다.

+ Recent posts