package constract;
public class MemberInit {
String name;
int age;
int grade;
//추가
void initMember(String name, int age, int grade) {
this.name = name; // 멤버 변수의 데이터를 넣고 싶을때 앞에 this사용.
this.age = age;
this.grade = grade;
}
}
package constract;
public class MemberThis {
String nameField;
void initMember(String nameParameter) {
nameField = nameParameter;
}
}
MemberConstruct(String name, int age, int grade) {
System.out.println("생성자 호출 name=" + name + ",age=" + age + ", grade=" + grade);
this.name = name;
this.age = age;
this.grade = grade;
}
new 생성자/클래스 이름(생성자에 맞는 인수목록)
package construct;
public class MemberDefault {
String name;
// 생성자 추가
MemberDefault() {
System.out.println("생성자 호출");
}
}
왜 자동으로 기본 생성자를 만들까?
자바에서 기본 생성자를 만들어 주지 않으면 개발자가 직접 정의해야함.
package construct;
public class MemberConstruct {
String name;
int age;
int grade;
// 추가
MemberConstruct(String name, int age) {
this(name, age, 50); // 생성자 안에서 사용 가능
}
MemberConstruct(String name, int age, int grade) {
System.out.println("생성자 호출 name=" + name + ",age=" + age + ", grade=" + grade);
this.name = name;
this.age = age;
this.grade = grade;
}
}
package construct;
public class ConstructMain2 {
public static void main(String[] args) {
// 즉, 메모리에 먼저 생성해서 값을 호출하고 member1 인스턴스에 대입한다.
MemberConstruct member1 = new MemberConstruct("user1",15,90); // 괄호에 생성자 객체를 불러와라.
MemberConstruct member2 = new MemberConstruct("user2", 16); // grade를 입력하지 않으면 grade를 입력하지 않는 생성자 호출하여 입력
MemberConstruct[] members = {member1, member2};
for(MemberConstruct s : members) {
System.out.println("이름: " + s.name + ", 나이: " + s.age + ", 성적: " + s.grade);
}
}
}