생성자 :
객체 초기화 함수로 객체의 생성 시에만 호출되어 메모리 생성과 동시에 객체의 데이터를 초기화하는 역할을 한다.
class member2 {
String name, tel, address ;
member2() {
System.out.println("생성자");
name = "aaa";
tel = "323424";
address = "대한민국";
}
void print() {
System.out.println("이름 : " + name);
System.out.println("전화번호 : " + tel);
System.out.println("주소 : " + address);
}
}
public class 생성자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
member2 m2 = new member2 ();
m2.print();
m2.name = "ddd";
m2.tel = "32";
m2.address = "234fdfsd";
m2.print ();
member2 이름을 가진 클래스를 생성 해주었고 생성자도 만들어 주었다. 생성자의 특징으로는 ① 반환 타입이 없고 ② 생성자를 작성하지 않아도 컴파일러가 자동으로 컴파일러 해준다. 하지만, 생성자를 하나라도 작성을 하면 그 다음부터는 자동 생성 되지 않는다. ③ 클래스와 이름이 같아야한다. 따라서 생성자 이름도 member2이다. ④ 생성자도 메서드이기 때문에 파라미터가 있는 생성자를 생성 했다면 그 타입과 개수를 맞춰서 호출 해주어야 한다. ⑤ 메서드 오버로딩이 가능하다.
main class 에서 생성 된 내용을 보면 member2 m2 = new member2(); 라고 객체를 생성 시켜 주었고 new 뒤에 있는 member2() 가 위에 생성한 생성자 이다. 즉, 클래스를 객체로 만들 때는 class 타입이름 변수명 = new 생성자(); 이 순서이다. m2.print(); class member2에 정의 한 메서드를 불러와서 프린트를 해보면 생성자 내부에 값을 할당 한 내역이 프린트 되는 것을 확인 할 수 있다.
만약에 다시 m2.name = "ddd"; / m2.tel = "32"; / m2.address = "234fdfsd"; 로 값을 재정의 해주고 m2.print (); 를 하게 된다면 재정의 된 값으로 결과 값이 나오는 것을 확인 할 수 있다.
반환타입 없는 게 생성자!! 생성자는 언제만 실행이 돼? 객체를 생성할때만. 기억 해 두자
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - this, this( ) (0) | 2023.02.28 |
---|---|
[JAVA] 객체지향 - 메서드 오버로딩 (0) | 2023.02.28 |
[JAVA] 객체지향 - 클래스 (class) (0) | 2023.02.28 |
[JAVA] 객체지향 - 객체를 멤버로 갖는 클래스 (포함 관계) (0) | 2023.02.26 |
[JAVA] 객체지향 - 객체를 담는 배열 (0) | 2023.02.26 |