Person person1 = new Person();
Person p1 = new Person();
따로 Person클래스에 만들어주지않았는데 어떻게 사용할까?
-> 클래스에 아무런 생성자가 없을 경우 컴파일러가 자동으로 파라미터 없는 생성자를 제공해준다.
그러나 생성자를 하나라도 정의하면 이 생성자는 사용할 수 없다.
public Person(String pName, int pAge, int pCashAmount){
name = pName;
age = pAge;
cashAmount = pCashAmount;
}
이름, 나이, 현금액수를 한꺼번에 파라미터로 받아서 각 인스턴스에 지정해주었다.
이제 새로 정의한 생성자를 테스트해보자.
메인 함수에 들어가보니 기존에 사용하던 생성자를 사용할 수 없다고 에러가 뜬다.
생성자를 새로 만들었기때문이다.
기존의 생성자는 먼저 인스턴스를 만들고, 값을 하나씩 넣어주었다.
그런데 한꺼번에 해주는 생성자를 만들었기때문에 필요가 없다.
특히 이름처럼 크게 바뀔일이 없거나 하는 경우는 미리 생성자로 초기화해주는것이 좋다.
생성자도 메소드처럼 메소드 오버로딩이 가능하다.
이런식으로 김아무개는 첫번째 메소드 최아무개는 두번째 메소드를 사용할 수 있다.