본문 바로가기

개발자노트

클래스) 인자가 없는 생성자==디폴트 생성자의 이해1

package class04;

// class로 따로 선언된 공간이기 때문에 아래에서 정의했지만 메인공간처럼 순차적이지 않고 3~13번 line에 있는 것을 참조해서 사용하기 떄문에 순서에 상관x

class Person {

	String name;

	int age;

	void showInfo() {

		System.out.println(this.name + "님은 " + this.age + "살입니다.");

	}

	// 생성자가 아무것도 정의되어있는 것이 없다면, 기본 생성자를 제공해줌!

	// 생성자를 1개이상 정의하면, 더 이상 기본 생성자가 제공되지 않음!

	Person() { // 생성자 함수

		System.out.println("기본생성자");

		name = "무명";

		age = 1;

	}

	Person(String name, int age) { // 생성자 함수

		System.out.println("내가 만든 생성자");

		this.name = name;

		this.age = age;

	}

	// 함수명 중복정의 허용 == 오버로딩 , 여기서는 ★★생성자 오버로딩★★

}

public class Test05 {

	public static void main(String[] args) {

		Person p1 = new Person("홍길동", 21);

		Person p2 = new Person(); // 인자가 없는 생성자==기본(디폴트) 생성자

		p1.showInfo();

		p2.showInfo();

	}

}