Published 2022. 10. 27. 18:34

 1 .생성자란

- 객체가 new연산자를 통해 Heap메모리 영역에 할당될 때 객체안에서 만들어지는 필드 초기화 
- 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 

2. 생성자 명명규칙

생성자의 선언은 메소드 선언과 유사하나 반환값이 없으며 생성자명을 클래스명과 똑같이 지정해야함 

[표현법]
      public 클래스명 ([매개변수,매개변수,..]) {
       }
     
     * 생성자를 작성하는 목적
      1. 객체 생성해주기 위한 목적
      2. 객체 생성과 동시에 각 필드에 값을 대입할 목적
     
     
     
     *  생성자 작성시 주의사항
      1. 반환형이 존재하지 않음
      2. 반드시 생성자명은 클래스명과 동일해야함
      3. 매개변수 생성자를 명시적으로 작성할 경우 기본생성자를 JVM이 자동으로 만들어주지않음
        -> 기본 생성자는 항상 작성하는 습관 들이기 !
     
1) 기본생성자 ( 매개변수 없는 생성자)
public User() { }​
       -단지 객체 생성만을 목적으로함
       -기본생성자를 명시적으로 쓰지 않았을 경우 => "JVM"이 자동적으로 기본생성자를 만들어줌
       - 상속에서 사용시 반드시 기본생성자를 작성
       

 


2) 매개변수 생성자 (객체 생성과 동시에 전달된 값들을 매개변수로 받아서 해당 각 필드에 초기화 

public User(String userId,String userPwd, String userName) {
        this.userId = userId;
        this.userPwd = userPwd;
        this.userName = userName;}​
    
      -매개변수 생성시 JVM이 기본 생성자를 자동으로 생성해주지 않음 ⭐
 
 
** this란 ?
 
-  모든 인스턴스의 메소드에 숨겨진 채 존재하는 레퍼런스로, 할당된 객체를 가리킴
함수 실행시 전달된든 객체의 주소를 자동으로 받음 
 
-  생성자, 같은 클래스의 다른 생성자를 호출할때 사용, 반드시 첫번째 줄에 선언해야함 
 

 -this사용 예시 
public class Academy{
   private String name;
   public Academy() { }
   public Academy(String name) { this.name = name; }
}​
  >> 매개변수를 가지는 생성자에서 매개변수명이 필드명과 같은 경우 
   매개변수의 변수명이 우선이므로 this객체를 이용하여 대입되는 변수가 필드라는 것을 구분해줌 

'JAVA' 카테고리의 다른 글

6_7. 객체_ 메소드 예약어 Static  (0) 2022.10.27
6_6. 객체 _ 메소드  (0) 2022.10.27
6_4. 객체 _필드  (0) 2022.10.26
6_3. 객체 _클래스 선언부  (0) 2022.10.26
6_2 . 객체 캡슐화 (setter/getter)  (0) 2022.10.26
복사했습니다!