○ 생성자 함수 (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 | 
 
										
									 
										
									 
										
									 
										
									
댓글