자바 객체 생성자(java object constructor), 자바객체, 자바강좌
객체가 생성될 때 자동적으로 불림, 객체가 생성될 때 호출되어 실행하는 메서드
New 수식이 호출되면 생성될 객체의 메모리가 할당되고 생성자가 호출되며 객체가 초기화 된다.
메서드 이지만 유일하게 리턴형이 없고, 생성자 메서드의 이름은 클래스의 이름과 동일하다
new 연산자가 호출된 직후에 호출, new 연산자가 메모리를 생성하면 멤버변수들이 메모리를 할당 받음
따라서 변수들에 대한 초기화 작업이 가능해짐, 객체의 초기화
메쏘드와 같이 직접 호출할 수 없으며, new에 의해 간접적으로 호출
반환치를 가지지 않음
생성자가 정의 되어 있지 않아도 된다.
생성자가 하나도 없는 경우에는 컴파일러가 몸체가 비어있는 매개변수 없는 생성자를 정의해 준다.
Class Circle {
Circle() { }
……
}
생성자는 ‘this’ 키워드를 사용하는 특별한 문법에 의해 다른 생성자를 호출할 수 있다.
상속 관계에 있는 하위클래스에서 상위클래스의 생성자를 호출 할 때는 super라는 키워드를 쓰며 이러한 this, super등을 이용한 다른 생성자의 호출은 첫 문장에 나타나야 한다.
[결과]
package onj;
class Circle {
private double radius = 1;
public Circle() {
this(1);
System.out.println( "Circle()" );
}
public Circle( double radius ) {
this.radius = radius;
System.out.println( "Circle( double )" );
}
public void setRadius( double radius ) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
class ConstructorTest{
public static void main( String args[] ) {
Circle circle1 = new Circle();
System.out.println("반지름 1일때 면적 : " + circle1.getArea());
new Circle(3);
}
}
[결과]
Circle( double )
Circle()
반지름 1일때 면적 : 3.141592653589793
Circle( double )
[출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=591
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
댓글 없음:
댓글 쓰기