반응형
해당 강의를 보고 정리한 것입니다.
https://programmers.co.kr/learn/courses/5
생성자
: 모든 클래스는 인스턴스화 될때 생성자를 사용한다.
생성자 특징
- 생성자는 리턴타입이 없음.
- 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 자동으로 만들어진다.
- 매개변수가 없는 생성자를 기본생성자라고 한다.
- 생성자를 하나라도 만들었다면 기본생성자는 자동으로 만들어지지 않는다.
생성자의 역할
- 생성자가 하는 일은 객체가 될 때 필드를 초기화 하는 역할을 수행.
- 자동차가 객체가 될때 반드시 이름을 가지도록 하려면, Car클래스를 다음과 같이 만들면 된다.
public class Car { String name; int number; public Car(String n) { //생성자 name = n; } }
- 객체 생성&사용 방법
- Car클래스는 기본생성자를 가지지 않음. 그러므로 기본생성자(Car())로 Car객체를 생성할 수 없다.public class CarExam { public static void main(String[] args) { Car c1 = new Car("소방차"); Car c2 = new Car("구급차"); c1.number = 1234; // c1.number = 1234란 c1이 참조하는 객체의 number를 1234 로 설정 c2.number = 1004; //c2가 가리키는 객체의 number를 1004로 설정 System.out.println(c1.name); //콘솔에 c1이 참조하는 객체의 name 을 출력합니다. //소방차 출력 System.out.println(c1.number); //콘솔에 c1이 참조하는 객체의 number 를 출력합니다. //1234 출력 String name = c2.name; //c2가 참조하는 객체의 name 을 String 타입 변수 name 도 참조 } }
this
: 현재 객체, 자기 자신을 나타낸다.
public class Car {
String name;
int number;
public Car(String name) { //생성자
this.name = name;
}
}
- this를 써주지 않으면 name=name이라는 코드는 매개변수의 name의 값을 매겨변수 name에 대입하라는 의미.
- 즉, 필드Car는 바뀌지 않음. 그러므로 this를 사용하여 해당 클래스의 필드 name이라는것을 알려줌
반응형
'Language > Java' 카테고리의 다른 글
자바 입문하기13 - 상속, 접근제한자, 추상클래스, super (0) | 2022.01.11 |
---|---|
자바 입문하기12 - 오버로딩, 오버라이딩, this(), 패키지 (0) | 2022.01.11 |
자바 입문하기10 - scope, static, enum (0) | 2022.01.10 |
자바 입문하기9 - String (0) | 2022.01.10 |
자바 입문하기8 - 클래스, 참조타입 (0) | 2022.01.10 |