본문 바로가기
Java

자바 중급 017. 기본 생성자와 매개 변수가 있는 생성자 호출

by Smart Factory in 2020 2021. 9. 4.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 
자바 중급 017.  기본 생성자와 매개 변수가 있는 생성자 호출에 대해 알아보겠습니다. 

 

1. 매개변수가 있는 생성자 호출

가 . 기본 생성자와 매개변수가 있는 생성자 호출

-생성자란?
인스턴스 초기화 메서드

-매개변수가 있는 생성자를 작성하는 이유?

매개변수가 있는 경우는 매개변수가 없는 생성자의 클래스 매개변수 값을 하나하나 작성해 줘야 하는 불편함이 있습니다. 그래서 매개변수가 있는 생성자를 만들어서 코드를 간단하게 작성할 수 있습니다. 

 

<<Relate.java 클래스 >>

기본 생성자와 매개변수가 있는 생성자를 작성하였습니다. 
기본 생성자에는 publie Relate(){}  

"기본 생성자 호출"

 

매개변수가 있는 생성자에는 public Ralate(String name, int age){} 

"매개변수가 있는 생성자 호출"

이라고 작성하였습니다. 

생성자는 인스턴스 초기화 메소드이기 때문에 매개변수가 있는 경우 초기화 설정도 넣었습니다.

package ex01;


public class Relate {
private String name;
private int age;

public Relate() {
System.out.println(" 기본생성자 호출");
 }
 
 public Relate(String name, int age) {
System.out.println(" 매개변수가 있는 생성자 호출 ");
   this.name=name;
   this.age=age;
    }
 
}

 

<<RelateEx.java>>실행 클래스 작성

c1은 기본 생성자로 ~~
c2는 매개변수가 있는 생성자로 매개변수의 값을 넣어 주었습니다. 
생성자가 있으니 바로 실행해 보니 출력이 생성자에 맞게 나오는 것을 알 수 있습니다. 

 

package ex01;

public class RelateEx {

public static void main(String[] args) {
 Relate c1=new Relate();
 Relate c2=new Relate("kim", 25);
}
}

 

 

<<  메소드 추가 >>

메소드를 추가하여 성명과 나이를 출력하도록 해 보았습니다. 

 
 public void show() {
 System.out.println(" 성명: "+this.name+"나이:" +this.age);
 }
}

 

실행 클래스에서 성명, 나이가 메소드에 있는대로 출력된 것을 볼 수 있습니다. 

 

기본 생성자로 매개변수값을 초기화 하지 않으면 하나하나 매개변수 값을 넣어줘야 하는데 매개변수가 있는 경우는 바로 값(call by value)을 작성하기 때문에 코드 작성이 효율적인 것을 알 수 있습니다. 

매개변수값을 여러가지로 하여 선택사항을 줄이거나 늘릴 수 있으니 이 또한 객체를 생성하는 입장에서 효율적인 것을 알 수 있습니다. 

 

728x90
반응형

댓글