this

public class MemberInit {
		String name;
		int age;
		int grade;
		
		void initMember(String name, int age, int grade) {
		this.name = name;
		this.age = age;
		this.grade = grade;
		}
}

initMember(String name...) 메서드에서 정의한 매개변수 이름이 MemberInit 클래스의 멤버 변수 이름(name, age, grade)과 동일하다.

⇒ ❓ 둘을 구분 하는 방법?

image.png

<aside> 📌

this의 생략

public class MemberThis {
		String nameField;
				
		void initMember(String nameParameter) {
		nameField = nameParameter;
		}
}

</aside>

생성자(Constructor)

객체를 생성하고 이후에 바로 초기값을 할당해야 하는 경우가 많아, 이 기능을 좀 더 편리하게 수행할 수 있도록 생성자라는 기능을 제공한다.

public class MemberConstruct {
		String name;
		int age;
		int grade;
		
		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;
		}
}

<aside> 📌

생성자 규칙

✅ 생성자 호출

new 생성자이름/클래스이름(생성자에 맞는 인수 목록)

✅ 생성자의 장점

✅ 제약 - 생성자 호출 필수