생성자

구름·2022년 11월 22일

Java_1

목록 보기
16/19

생성자

인스턴스(객체)가 생성될때 호출되는 '인스턴스 초기화 메소드'

인스턴스는 클래스 내에서 선언되며, 구조가 메소드랑 유사하지만 리턴값이 없다.

생성자의 조건
1. 생성자의 이름은 클래스의 이름과 같아야한다.
2. 생성자는 리턴 값이 없다.
3. 기본 생성자는 생략이 가능하다.
4. 하나의 클래스에서 여러 개의 생성자가 존재할 수 있다.

메소드의 구조
void work() {system.out.println(m);}

기본 생성자의 구조
c(){} : 기본 생성자

c(int n){
this.n = n;
}

매개변수가 있는 생성자. 인풋 매개변수와 실행블락 변수와 필드 변수 이름이 모두 동일할 경우 this.를 사용한다.

클래스 내부에 필드변수들을 선언한 뒤, 생성자에 매개변수를 넣고 변수값을 초기화 해준다.


this.keyword

this 는 인스턴스 자기 자신을 가르킨다. 인스턴스 변수에 접근할수 있는 참조변수
단, static class에서 this는 사용할 수 없다.

class A{
int m;
int n;

void init(int m, int n){
int c;
this.m =m;
this.n=n; // 매개변수와, 필드의 변수 값이 같을 경우 this사용 . 생략 가능 

void work () {
this.init(2,3); // this: 자신의 객체의 필드나,메소드를 호출가능 
system.out.println(m + " "+ n + " ");

public static void main(String[] args) { //메인메소드에서 호출 
A a = new A(); //객체 생성
		a.work();
        

This_Method

자신의 객체와 다른 생성자를 호출할 때 사용
반드시 생성자 첫 라인에 위치한다.
생성자 내부에서만 사용된다.

 //1. 기본 생성자 
	B() {
		System.out.println("기본 생성자를 호출 했습니다.");
	}
	
	B(int a){
		this();	//반드시 생성자 내부에 첫 라인에 와야한다.	//기본 생성자 호출 
		System.out.println("매개변수가 하나인 생성자 입니다.");
	}
	B(int a, int b){
		this(3); //매개변수가 1개인 생성자 호출 
		System.out.println("매개변수가 정수 2개인 생성자 입니다.");
	}
	B(int a, int b, int c){
		this(3,4); //매개변수가 2개인 생성자 호출 
		System.out.println("매개변수가 정수 3개인 생성자 입니다.");
}

}

public class This_Method {

	public static void main(String[] args) {
		// This() : this 메소드 : 자신의 객체의 다른 생성자를 호출할때 사용 
			// 반드시 생성자 첫 라인에 위치해야한다.
			// 생성자 내부에서만 사용됨
		
		//1. 정수 1개인 생성자 호출
		System.out.println("== 매개변수 1개인 생성자 호출  ==");
		B b1 = new B(3);
		
		
		System.out.println("== 매개변수 2개인 생성자 호출 ==");
		B b2 = new B(3,4);
		
		System.out.println("== 매개변수 3개인 생성자 호출 ==");
		B b3 = new B(3,4,5);
	}
	
	
profile
내가 보려고 하는 업데이트

0개의 댓글