/* ==================================
■■■ 클래스와 인스턴스 ■■■
================================= */
// 생성자(Constructor)
public class Test078
{
int x ;
// ※ 생성자의 이름은 항상 예외없이 클래스의 이름과 동일해야 하며
// 필요할 경우 인수를 받아들이는 것도 가능하고
// 같은 이름의 메소드를 정의하는 중복정의가 가능하지만
// 리턴값(반환값)은 가질 수 없다.
// ※ 생성자는 다른 일반 메소드처럼 호출될 수 없고.
// 『new』 연산자를 이용하여 객체를 생성하기 위해 호출되며,
// 각 클래스의 인스턴스인 객체를 생성한 후에
// 생성된 객체의 멤버를 초기화시키는 작업을 수행한다.
// 메소드 오버로딩 ↓
Test078()
{
// ※ 생성자 내부에서 다른 생성자를 호출하는 것은 가능하다.
// 하지만, 생성자 내부에서 가장 먼저 실행되어야 한다.
// ↓
// Test078(100); → 불가
this(100); // → 가능 (생성자 내부에서 다른 생성자 호출하기)
x = 10;
System.out.println("인자가 없는 생성자");
System.out.println("Test078이 갖고있는 x :" + x); // 혹은 this.x
}
Test078(int x)
{
//x = x; // 둘다 지역변수 'x'임
// 『this』
this.x = x; //-- 논리적 해석 → Test078.x = x;
System.out.println("인자가 하나인 생성자");
System.out.println("Test078이 갖고있는 x : " + this.x);
}
public static void main(String[] args)
{
// Test078 클래스 기반 인스턴스 생성
Test078 ob1 = new Test078();
Test078 ob2 = new Test078(90);
/* --==>> 인자가 없는 생성자
인자가 하나인 생성자
계속하려면 아무 키나 누르십시오 . . .
*/
System.out.println();
System.out.println("main 에서 ob1.x : " + ob1.x);
System.out.println("main 에서 ob2.x : " + ob2.x);
}
}
// 실행 결과
/*
인자가 하나인 생성자
Test078이 갖고있는 x : 100
인자가 없는 생성자
Test078이 갖고있는 x :10
인자가 하나인 생성자
Test078이 갖고있는 x : 90
main 에서 ob1.x : 10
main 에서 ob2.x : 90
계속하려면 아무 키나 누르십시오 . . .
*/
728x90
'JAVA' 카테고리의 다른 글
Test080.java / 클래스와 인스턴스 / 생성자 와 초기화(Initialized Block) 블럭 (0) | 2022.09.09 |
---|---|
Test079.java / 클래스와 인스턴스 / 생성자 관찰 (0) | 2022.09.09 |
Test077.java / 클래스와 인스턴스 / 생성자(Constructor) 의 정의 (0) | 2022.09.09 |
Test076.java / 클래스와 인스턴스 / 생성자(Constructor) (0) | 2022.09.09 |
Test075.java / 클래스와 인스턴스 / 사용자로부터 임의의 두 정수와 연산자를 입력받아 해당 연산을 수행하는 프로그램 구현 (0) | 2022.09.09 |
댓글