-
Java - 생성자(Constructor)와 this 키워드Java/java study 2022. 1. 9. 16:08반응형
생성자
생성자(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; } }
- 현재 객체의 주소를 매개변수로 전달하는 데 사용
- 현재 객체를 반환하는 데 사용
반응형'Java > java study' 카테고리의 다른 글
Java - 다이나믹 메서드 디스패치(Dynamic Method Dispatch) (0) 2022.01.16 Java - 상속과 super 키워드 (0) 2022.01.16 Java - 메서드 오버로딩과 오버라이딩 (0) 2022.01.09 Java - 클래스(Class) 와 객체 생성 (0) 2022.01.09 Java - LinkedList, Stack, Queue 구현하기 (0) 2022.01.02 - 디폴트 생성자 : 선언된 생성자가 없을 때 컴파일러가 자동으로 만들어주는 생성자.