반응형
기본생성자
클래스 선언(정의)시 컴파일러에 의해 자동으로 추가되는 생성자
// 기본 생성자 : 만들지 않아도 컴파일러가 자동으로 1개 생성함(생략가능)
// 1) 생성자함수 이름은 클래스명과 같음
// 2) 생성자함수는 여러개를 만들수 있음 : 생성자 오버로딩(Overloading)
// 사용법 : 클래스명(){};
package chap06.sec03.exam01;
/**
* packageName : chap06.sec03.exam01
* fileName : Car
* author : GGG
* date : 2023-09-20
* description : 생성자 함수
* 요약 :
* 자바소스(.java) -> 컴파일러(컴파일) => (.class) -> 실행
* 기본 생성자 : 생성자가 한개도 없을 경우 클래스 선언(정의)시 컴파일러에 의해 자동으로 추가되는 생성자
* (만약에 있을 경우(2nd 생성자 등) 자동 추가되지 않음)
* 오버로딩 : 함수의 이름이 같은 경우라도 에러를 발생시키지 않고 정의하게 하는 기능
* (주로 함수의 이름이 같고, 매개변수 자료형, 개수, 순서가 다른 경우에 오버로딩이 됨)
*
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* —————————————————————————————
* 2023-09-20 GGG 최초 생성
*/
public class Car {
// TODO: 클래스의 3요소 = 속성(필드), 생성자함수, 함수(메소드)
String col; // 자동차 색깔
int ccNum; // 자동차 배기량
// TODO: 생성자 함수
// 기본 생성자 : 만들지 않아도 컴파일러가 자동으로 1개 생성함(생략가능)
// 1) 생성자함수 이름은 클래스명과 같음
// 2) 생성자함수는 여러개를 만들수 있음 : 생성자 오버로딩(Overloading)
// 사용법 : 클래스명(){};
Car(){};
// TODO: 2nd 생성자 함수 : 개발자가 정의하기 나름(매개변수 있고 자유롭게 정의할 수 있음)
// **) 생성자 오버로딩 : 같은 이름을 가진 함수를 여러 개 정의할 수 있게 하는 기능(객체지향 언어만 가능)
Car(String color, int cc){
// TODO: 생성자 함수의 역할 : 속성의 초기화(변수에 값을 처음 넣어두는 행위)를 담당
col = color;
ccNum = cc;
};
}
생성자 오버로딩
같은 이름을 가진 함수를 여러 개 정의할 수 있게 하는 기능(객체지향 언어만 가능)
package chap06.sec03.exam01;
/**
* packageName : chap06.sec03.exam01
* fileName : CarApplication
* author : GGG
* date : 2023-09-20
* description :
* 요약 :
*
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* —————————————————————————————
* 2023-09-20 GGG 최초 생성
*/
public class CarApplication {
public static void main(String[] args) {
// 객체 생성
// 사용법 : 클래스명 객체변수명 = new 생성자함수();
Car car = new Car(); // 기본 생성자 함수
// 2nd 생성자 함수 : Car(String color, int cc)
Car car1 = new Car("검정", 3000); // 오버로딩된 생성자 함수
Car car2 = new Car("흰색", 2000); // 오버로딩된 생성자 함수
// 결과출력 : 1st car1
System.out.println(car1.ccNum);
System.out.println(car1.col);
// 결과출력 : 2nd car2
System.out.println(car2.ccNum);
System.out.println(car2.col);
}
}
반응형
'Java > Java 이론' 카테고리의 다른 글
MVC 디자인 패턴 (0) | 2023.09.22 |
---|---|
생성자 (0) | 2023.09.20 |
클래스 (0) | 2023.09.20 |
[JAVA 다시보기] 자바기초 (1) | 2023.09.19 |
문자열 자료형 (1) | 2023.09.08 |