생성자에서 필드 초기화

package sec07.exam02_field_initialize;

public class Korean {
	//field
	String nation = "대한민국";
	String name; //변수만 선언. 변수값 아직 없음(null)
	String ssn; //변수만 선언. 변수값 아직 없음(null)
	
	//constructor
	/*public Korean(String n, String s) {
		name = n;
		ssn = s;
	*/
	/*public Korean(String name, String ssn) {
	
	}
	생성자를 이렇게만 생성하면 실행 클래스애서 결과값은 null이 된다. 필드값 내 변수가 우선순위가 높아서?
	*/
	
	public Korean(String name, String ssn) {
		this.name = name;
		this.ssn = ssn;
	}
}

※ 위에서 Korean 생성자의 매개변수 이름은 각각 n과 s를 사용

매개변수의 이름이 너무 짧으면 코드의 가독성이 좋지 않아 관례적으로 필드와 동일한 이름을 갖는 매개변수를 사용!

생성자 내 필드앞에 this.를 붙인다. -> this.필드

ex)

//생성자

public Korean(String name, String ssn) {

  this.name = name;

  this.ssn = ssn;

}

 

객체 생성 후 필드값 출력

package sec07.exam02_field_initialize;

public class KoreanExample {
	public static void main(String[] args) {
		Korean k1 = new Korean("박자바", "011225-1234567"); //name과 ssn의 변수값 선언
		System.out.println("k1.name: " + k1.name); //"변수명.필드이름"으로 불러오기
		System.out.println("k1.ssn: " + k1.ssn);
		
		Korean k2 = new Korean("김자바", "930525-0654321");
		System.out.println("k2.name: " + k2.name);
		System.out.println("k2.ssn: " + k2.ssn);
	}
}
k1.name: 박자바
k1.ssn: 011225-1234567
k2.name: 김자바
k2.ssn: 930525-0654321

+ Recent posts