객체지향 프로그램에서 쓰는 객체의 초기화 함수이다. 객체를 생성할 때 호출되며, 객체를 만들때 (인스턴트화)중 인스턴트변수 초기화작업을 한다.
class에 하나 이상의 생성자가 있을수 있으며, 클래스의 이름과 꼭 동일하게 지어야 한다.
생성자의 특징
밑에 간단한 코드를 보여 이해하자
package test;
public class Tv {
String brand; //멤버변수 설정
String color; //멤버변수 설정
int channel; //멤버변수 설정
Tv(String brand, String color, int channel){ // 생성자 생성후 파라미터 값을 넣음
this.brand = brand;
this.color = color;
this.channel = channel;
}
Tv(){ //파라미터값 없이 main method에서 직접 값을 넣어 실행
}
}
class data1{
public static void main (String[] args) {
Tv tv1 = new Tv("LG", "black", 1); // tv1 인스턴스후 "LG", "white", 1 의 매개변수값을 받음
Tv tv2 = new Tv();
tv2.brand = "Samsung";
tv2.color = "white";
tv2.channel = 2;
System.out.println(tv1.brand + tv1.color + tv1.channel); //tv1의 값 실행
System.out.println(tv2.brand + tv2.color + tv2.channel); //tv2의 값을 실행
}
}
실행 값
LGblack1 //tv1의 값
Samsungwhite2 //tv2의 값
생성자를 선언하는것을 두가지 버전으로 확인할수 있다. 하지만 tv2번의 방법보다 tv1번의 방법이 더욱 간결하며,
다른사람들은 Tv class 내부의 코드를 볼수 없으므로 보안성이 뛰어나다는것을 알수있다.
생성자 (Constructor) : 객체의 초기화 함수. 객체를 생성할때 따로 지정하지않아도 eclipse 에서는 자동으로 생성된다.
하지만 생성후 객체들을 초기화 하는것이 메모리사용에 좋다.
접근 제어자 (modifier) (0) | 2020.09.16 |
---|---|
오버로딩 (Overloading) (0) | 2020.09.15 |
오버라이딩 - Overriding (0) | 2020.09.11 |
상속 (Inheritance) (0) | 2020.09.08 |
객체지향적인 언어 ( Object Oriented Programming - OOP) (0) | 2020.09.06 |