생성자
인스턴스(객체)가 생성될때마다 호출되는 '인스턴스(iv) 초기화 메서드'

Time t = new Time();
t.hour = 1;
t.minute = 20;
t.second = 33;
Time t = new Time(1,20,33); 이렇게 간단하게 초기화!

생성자 메서드 작성법
- 이름이 클래스 이름과 같아야 한다
- 리턴값이 없다.(그러나 void 안붙임.항상 리턴값이 없어서)
- 모든 클래스는 반드시 생성자를 가져야 한다(1+)

        =클래스이름
         생성자이름(타입 변수명,타입 변수명..){
            //인스턴스 생성시 수행될 코드
            //주로 iv 초기화 코드를 적는다
         }

기본 생성자(default constructor)
- 매개변수가 없는 생성자
- 원래 직접 작성해줘야 하는데 생성자가 하나도 없을때만
컴파일러가 자동추가해줌
- 하나라도 생성자가 있으면 기본생성자 꼭 추가해야함

        클래스이름(){  }
        Point(){   } //Point클래스의 기본 생성자
			
	

public class Oop13_constructor {

    public static void main(String[] args) {

        Data1 data1 = new Data1();
        //The constructor Data2() is undefined
        //기본생성자가 없어서 찾지 못함. 기본생성자 추가해줘야함.
        Data2 data2 = new Data2();
    }
}

class Card3{
    Card3(){ //매개변수없는 생성자
        //인스턴스 초기화 작업
    }
    Card3(String kind,int number){ //매개변수있는 생성자
        //인스턴스 초기화 작업
    }
}

class Data1{
    //생성자가 하나도 없어서 기본생성자 컴파일러가 자동추가해줬음
    int value;
}
class Data2{
    int value;

    Data2(){ }
    Data2(int x){
        value = x;
    }
}
profile
공부하고 기록하는 블로그

0개의 댓글