본문 바로가기

IT일반과목/java

필드 초기화

클래스로부터 객체가 생성될 때 필드는 기본 초기값으로 자동 설정된다. 만약 다른값으로 초기화를 하고 싶다면 두가지 방법이 있다.

1. 필드를 선언할 때 초기값을 주는 방법

 -> 동일한 클래스로부터 생성되는 객체들은 모두 같은 데이터를 갖게 된다.

 -> 물론 객체 생성 후 변경할 수 있지만, 객체 생성시점에는 필드의 값이 모두 같다.

ex) 

public class Korean {

String nation="대한민국";

String name;

String ssn;

}

--------------------------

Korean k1 = new Korean();

Korean k2 = new Korean();


이럴경우 k1과 k2객체의 nation 필드에는 모두 "대한민국"이 저장되어있다.


2. 생성자에서 초기값을 주는 방법

-> 객체 생성 시점에 외부에서 제공되는 다양한 값들로 초기화되어야 한다면 생성자에서 초기화를 해야 한다.


ex)

public class Korean {

//필드

String nation = "대한민국";

String name;

String ssn;


//생성자

public Korean(String n, String s){

name = n;

ssn = s;



}


}


생성자 오버로딩

 - 개념 : 매개 변수를 달리하는 생성자를 여러 개 선언하는 것이다.

ex)

public class Car {

Car() {...}

Car(String model) {...}

Car(String model, String color) {...}

Car(String model, String color, int maxSpeed) {...}


}

-------------------------------------------

생성자 호출시

Car car1 = new Car();

Car car2 = new Car("그렌져");

Car car3 = new Car("그렌져", "흰색");

Car car4 = new Car("그렌져", "흰색", 300);




---------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------

생성자의 오버로딩

package jongkyu.run;


public class Car {

String company = "현대자동차";

String model;

String color;

int maxSpeed;

//생성자

Car(){

}

Car(String model){

this.model = model;

}

Car(String model, String color){

this.model = model;

this.color = color;

}

Car(String model, String color, int maxSpeed) {

this.model = model;

this.color = color;

this.maxSpeed = maxSpeed;

}

}

------------------------------------------------------------------------------------------
객체 생성시 생성자 선택
package jongkyu.run;

public class CarExample {
public static void main(String[] args) {
Car car1 = new Car();
System.out.println("car1.company : " + car1.company);
System.out.println("----------");
Car car2 = new Car("자가용");
System.out.println("car2.company : " + car2.company);
System.out.println("car2.model : "+car2.model);
System.out.println("-------------------------------");
Car car3 = new Car("자가용","빨강");
System.out.println("car3.company : " + car3.company);
System.out.println("car3.model :" + car3.model);
System.out.println("car3.color : "+ car3.color);
System.out.println("----------------------------");
}
}


'IT일반과목 > java' 카테고리의 다른 글

메소드 오버로딩  (0) 2018.07.16
메소드에 대하여 설명  (0) 2018.07.16
로또 무한반복하다가 드디어 맞췄다!!!!!  (0) 2018.07.16
자바 로또 중복제거 및 번호추첨  (0) 2018.07.16
메소드 나눠쓰는 법  (0) 2018.07.15