ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java - 생성자(Constructor)와 this 키워드
    Java/java study 2022. 1. 9. 16:08
    728x90
    반응형

    생성자

     

     

    생성자(Contructor) 란?

     

     객체를 생성할 때 호출되며 객체의 초기화를 담당한다.

     

     

    • 디폴트 생성자 : 선언된 생성자가 없을 때 컴파일러가 자동으로 만들어주는 생성자.
                           (소스 X / 매개변수 X)

    • 기본 생성자 : 매개변수가 없는 생성자, 객체 변수의 default 초기화를 해준다.
                        (소스 X / 매개변수 X)

    • 매개변수를 갖는 생성자 : 매개변수가 있는 생성자, 매개변수로 객체 변수 값을 초기화해준다.
                                       (소스 O / 매개변수 O)
    public class Person {
    
    	private String name;
    	private int age;
    	
    	// 작성된 생성자가 없을시 컴파일러가 자동으로 넣어주는 생성자
    	public Person() {}
    	
    	// 기본 생성자
    	public Person() {
    		System.out.println("Person() 객체 생성");
    		this.name = "홍길동";
    		this.age = 20;
    	}
    	
    	// 객체 변수값을 초기화하기 위해 매개변수를 갖는 생성자를 만들 수 있다.
    	public Person(String name) {
    		this.name = "홍길동";
    		this.age = 20;
    	}
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    }

     

     


     

    this 키워드

     

    this 키워드 란?

     this는 인스턴스가 생성되었을 때 자신의 주소를 저장하는 레퍼런스 변수이다.

    즉, this는 해당 객체의 참조 값(hashcode값)을 가지고 있다.

     

     


     

     

    this의 사용
    • 객체 변수와 같은 이름을 가진 변수명이 존재할 때, 객체 변수를 가리키고 있음을 명확히 한다.
    public class Person {
    
    	private String name;
    	private int age;
    	
    	// 객체변수명와 매개변수명을 구분하기위해 this가 쓰였다.
    	public Person(String name) {
    		this.name = "홍길동";
    		this.age = 20;
    	}
    
    }

     

     

    • 생성자에서 다른 생성자를 호출할 때 사용할 수 있다.
    public class Person {
    
    	private String name;
    	private int age;
    
    	public Person() {
    		// 아래 매개변수를 갖는 생성자 호출해서 초기화
    		this("홍길동", 20);
    	}
    	
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    }

     

    • 현재 객체의 주소를 매개변수로 전달하는 데 사용

     

    • 현재 객체를 반환하는 데 사용

     

     


     

    728x90
    반응형

    댓글

Designed by Tistory.