일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Gamsgo
- 메서드
- 백내장
- 코드스테이츠 백엔드 교육과정
- 백준 알고리즘
- 코드 스테이츠 백엔드 교육과정
- HLB
- 자바
- 해시
- 금융감독원
- 금감원
- 코드스테이츠 합격
- Java
- 코드스테이츠 부트캠프 합격 후기
- 코드스테이츠 백엔드 부트캠프 합격
- 백내장 다초점렌즈 삽입술
- 코드스테이츠 합격 후기
- 백내장 금감원
- 금융감독원 민원신청
- 코테 합격후기
- 코드스테이츠 백엔드 후기
- Spring
- 코드스테이츠 부트캠프
- 금감원 백내장 민원
- 겜스고
- 보험금 지급거절
- Code States 백엔드 합격 후기
- codestates 국비지원 1기 합격 후기
- 에이치엘비
- CodeState 후기
Archives
- Today
- Total
개발하는 동그리
[Java] 생성자(Constructor) 란? 본문
반응형
생성자란?
인스턴스가 생성될 때 호출되는 것이 인스턴스 초기화 메서드다.
- 인스턴스 생성을 담당하는 것 : new 키워드 생성자가 인스턴스를 만드는 것이 아니다.
- 생성자는 인스턴스의 변수를 초기화 하는데 사용되는 특수한 메서드다.
- 매개변수는 있을 수도 있고 없을 수도 있다.
- 생성자를 생략하면 컴파일러가 자동으로 기본생성자(Defalut Constructor)를 생성해준다.
- 생성자를 생성했을 때 기본생성자는 자동으로 만들어 지지 않는다. 따라서 필요하다면 따로 생성해야한다.
- 생성자를 사용하면 많은 인스턴스를 생성할 때 훨씬 편하게 코딩이 가능하다
<생성자 미 사용>
public class Main {
public static void main(String[] args) {
dog dog1 = new dog();
dog1.name = "푸들";
dog1.age = 2;
dog dog2 = new dog();
dog2.name = "초코";
dog2.age = 4;
dog dog3 = new dog();
dog3.name = "딸기";
dog3.age = 1;
// dog dog1 = new dog("푸들",2 );
// dog dog2 = new dog("초코",4 );
// dog dog3 = new dog("딸기",1 );
System.out.println("강아지의 이름은" + dog1.name + "이고, 나이는 " + dog1.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog2.name + "이고, 나이는 " + dog2.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog3.name + "이고, 나이는 " + dog3.age + " 살 입니다.");
}
}
class dog {
String name;
int age;
// dog(String name, int age) {
// this.name = name;
// this.age = age;
}
}
<생성자 사용시>
public class Main {
public static void main(String[] args) {
// dog dog1 = new dog();
// dog1.name = "푸들";
// dog1.age = 2;
//
// dog dog2 = new dog();
// dog2.name = "초코";
// dog2.age = 4;
//
// dog dog3 = new dog();
// dog3.name = "딸기";
// dog3.age = 1;
dog dog1 = new dog("푸들",2 );
dog dog2 = new dog("초코",4 );
dog dog3 = new dog("딸기",1 );
System.out.println("강아지의 이름은" + dog1.name + "이고, 나이는 " + dog1.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog2.name + "이고, 나이는 " + dog2.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog3.name + "이고, 나이는 " + dog3.age + " 살 입니다.");
}
}
class dog {
String name;
int age;
dog(String name, int age) {
this.name = name;
this.age = age;
}
}
생성자와 메서드
- 공통점
- 비슷한 구조를 가진다.
- 오버로딩이 가능하다.
- 차이점
- 생성자와 클래스의 이름이 반드시 같아야 한다. ( 그렇지 않으면 생성자로서 기능을 수행할 수 없다. )
- 생성자는 리턴타입이 존재하지 않기 때문에 void 키워드를 사용하지 않는다.
상속이 되지 않는다!?
기본 생성자
- new 키워드를 사용하여 생성자를 호출하고 객체를 만든다.
- 모든 클래스에는 생성자가 반드시 하나이상 존재 해야하고, 기본생성자란 매개변수가 없는 생성자를 말한다.
ex). 클래스명() {}
매개변수가 있는 생성자
매개변수가 있는 생성자는 메서드처럼 매개변수를 호출해서 해당값을 받아 인스턴스를 초기화 하는데 사용된다.
고유한 특성을 가진 인스턴스를 계속 만들어야 하는 경우 인스턴스마다 각기 다른 값을 가지고 초기화 할 수 있어서 매우 유용하다.
반응형
'IT 정보 > Java' 카테고리의 다른 글
[Java] 객체지향 프로그래밍 (1) - 상속편 (4) | 2022.05.12 |
---|---|
[Java] this 와 this()의 차이 (11) | 2022.05.10 |
[Java] 메서드 (Method) 란!? (8) | 2022.05.10 |
[Java] Static 키워드 (4) | 2022.05.10 |
[Java] Field 변수( class variable / instance variable / local variable) 란? (6) | 2022.05.10 |