티스토리 뷰
기본 생성자 (코드를 입력하지 않아도 자동으로 생성됨)
class Person {
public Person() {}
}
만든 생성자 (매개변수를 명시한 만든 생성자만 있을 경우 기본 생성자를 사용할 수 없음)
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] ages) {
// Person person = new Person(); // 기본 생성자를 따로 명시하지 않았으므로 오류
Person person2 = new Person("이름", 25); // 인스턴스 생성시 인자가 있어야 함
}
}
매개변수가 있는 만든 생성자와, 매개변수가 없는 기본 생성자를 두개 다 사용하고 싶을 경우
public class Person {
String name;
int age;
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] ages) {
Person person = new Person(); // 기본 생성자로 인스턴스 생성
Person person2 = new Person("이름", 25); // 인자값을 넣어 만든 생성자로 인스턴스 생성
}
}
초기값을 지정하고 싶을 경우 만든 생성자와 기본 생성자 두개가 필요함
public class Person {
String name;
int age;
public Person() {
// this는 이 클래스를 가리킴
this("no name", 1); // 아래 만들어놓은 생성자를 호출하여 초기값 설정
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void showPerson() {
System.out.println(name + ", " + age);
}
public static void main(String[] ages) {
Person person = new Person();
person.showPerson(); // 결과 : no name, 1
Person person2 = new Person("이름", 25);
person2.showPerson(); // 결과 : 이름, 25
}
}
※ 매개변수, 인자 차이
- 매개변수 : 메소드나 생성자에 사용하는 지정하는 값
- 인자 : 만든 메소드나 생성자를 호출하여 넣어주는 값
public class Person {
String name;
int age;
public Person(String name, int age) { // name, age는 매개변수
this.name = name;
this.age = age;
}
public static void main(String[] ages) {
Person person = new Person("이름", 25); // "이름", 25는 인자
}
}
반응형
'Backend > JAVA' 카테고리의 다른 글
JAVA 접근 제어자(클래스, 메소드 & 변수) (0) | 2023.07.06 |
---|---|
JAVA 클래스 인스턴스 예제 (0) | 2023.07.04 |
댓글
반응형
최근에 올라온 글
공지사항