안녕하세요. 스마트 팩토리입니다.
자바 중급 014. 생성자 (constructor) 란? 생성자는 자동 초기화? 기본 생성자에 대해 알아보겠습니다.
1. 생성자 (constructor)
가. 생성자 개념
(1)생성자란?
-인스턴스가 생성될때 마다 호출되는 인스턴스 초기화 메서드.
-인스턴스 변수의 초기화 또는 생성시 미리 수행될 코드를 작성.
-모든 클래스는 하나의 생성자를 가지고 있다. (없을때는 자동 생성됨)
(2)기본 생성자
-매개변수가 없는 생성자
-클래스에 생성자가 하나도 없는 경우 컴파일러가 기본생성자를 자동으로 추가해 준다.
<<모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. >>
나. 생성자 예시문
<<Student. java>>
Student 클래스를 멤버변수와 멤버 메서드를 작성하였습니다.
생성자 영역이 없는 경우 자동으로 생성이 됩니다. 생성자가 없는 경우는 생성자를 호출하는 부분에서 생성자가 있다는 것을 알게 됩니다.
매개변수가 없는 생성자로 기본 생성자라고 합니다.
package construct02;
public class Student {
String name;
int age;
String gen;
void show() {
System.out.println(" -------학생 정보-------------");
System.out.println(" 성명 :"+ this.name+ " 나이 : "+ this.age+"성별 : "+ this.gen+"입니다. ");
}
}
<<StudnetEx.java>>
Student s1=new Student();
s1 객체를 생성하기 위해서 new연산자를 사용할때
new Student() 이 부분이 생성자 호출 부분이 됩니다. new 연산자로 힙 영역에 객체가 생성될 때 메모리 공간을 확보하고 초기화가 되는 부분입니다.
이는 s1. show()를 실행해 보면 멤버 변수 값이 자동 초기화 값으로 String 의 경우 null, int 는 0이 나오는 것을 알 수 있습니다.
s1 자체를 출력하면 참조형식이기 때문에 주소값이 나오게 됩니다.
package construct2;
public class StudentEx {
public static void main(String[] args) {
Student s1=new Student();
System.out.println(s1);
s1.show();
s1.name="walter";
s1.age=18;
s1.gen="man";
s1.show();
}
}
<< 실행 값>>
construct02.Student@2133c8f8는 객체인 s1의 주소값이 출력된 것입니다.
학생 정보는 멤버메소드가 출력 된 것입니다.
'Java' 카테고리의 다른 글
자바 중급 016. 생성자 (constructor), 매개변수가 있는 생성자(파일분리) (0) | 2021.09.03 |
---|---|
자바 중급 015. 매개 변수가 있는 생성자 (constructor) (0) | 2021.09.03 |
자바 중급 013. 메서드 오버로딩(overloading) 이란? (0) | 2021.08.27 |
자바 중급 012. 참조형 매개변수(Reference Parameter) (2) (0) | 2021.08.26 |
자바 중급 011. 기본형 매개변수(Primitive Parameter) 와 참조형 매개변수(Reference Parameter) (1) (0) | 2021.08.24 |
댓글