○ 생성자 함수 (Constructor)
- 클래스명과 동일한 함수
- 리턴형이 없다
- new연산자와 함께 메모리를 할당할 때 사용한다 (참고 : JAVA, new연산자)
- 오버로딩이 가능하다 (참고 : JAVA, 오버로드)
- 기본 생성자 함수(Default Constructor)는 자동으로 생성됨
단, 생성자 함수를 오버로딩하면 기본생성자 함수가 자동 생성되지 않기 때문에 수동으로 생성할 것을 추천!!
형식) public 클래스명( ) { }
- 소멸자 함수 (Destructor) : JAVA에는 없음
가비지 콜렉팅(Garbage Collcting) → JVM이 자동으로 메모리 회수를 함
class School{
// 멤버변수 field
private String name;
private int kor, eng, mat;
private int aver;
// 생성자함수 constructor → 클래스명과 동일, 리턴형이 없음
public School() { // 기본 생성자 함수 default constructor
System.out.println("School()...");
}
// 생성자 함수도 오버로딩(함수명 중복정의)이 가능하다
public School(String n) {
name=n;
}
public School(int k, int e, int m) {
kor=k;
eng=e;
mat=m;
}
public School(String n, int k, int e, int m) {
name=n;
kor=k;
eng=e;
mat=m;
}
// 멤버함수 method
public void calc() {
aver=(kor+eng+mat)/3;
}
public void disp() {
System.out.println(name);
System.out.println(kor);
System.out.println(eng);
System.out.println(mat);
System.out.println(aver);
}
}//class end
- 생성자 함수의 전달값은 객체선언과 동시에 초기값을 전달해 주는 역할을 한다
School one=new School();
one.calc();
one.disp(); //null, 0, 0, 0, 0
School two = new School("개나리");
two.calc();
two.disp(); //개나리, 0, 0, 0, 0
School three = new School(70, 80, 90);
three.calc();
three.disp(); //null, 70, 80, 90, 80
School four = new School("진달래", 70, 80, 90);
four.calc();
four.disp(); //진달래, 70, 80, 90, 80
○ 이클립스에서 생성자 함수 자동 코딩
- 메뉴 Source > Generate Constructor using Fields...
'Backend > JAVA_Basic' 카테고리의 다른 글
14. JAVA, 문자열 관련 클래스(String, StringBuffer, StringBuilder, StringTokenizer) (0) | 2022.06.02 |
---|---|
13. JAVA, String 클래스 관련 메소드(substring, length, equals ...) & 연습문제 (0) | 2022.06.01 |
11. JAVA, 클래스 (class, OOP, new 연산자, 객체, 인스턴스, this, 내부클래스) (0) | 2022.05.31 |
10. JAVA, 메소드⑵ (Method, 호출 방식, main, Access Modifier) & 연습문제 (0) | 2022.05.31 |
09. JAVA, 메소드⑴ (Method, 리턴값, 전달값, Overload) (0) | 2022.05.30 |
댓글