Java/Java 이론

생성자 함수

2주녘 2023. 9. 20. 10:46
반응형

기본생성자

클래스 선언(정의)시 컴파일러에 의해 자동으로 추가되는 생성자
// 기본 생성자 : 만들지 않아도 컴파일러가 자동으로 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);
    }
}
반응형