CATEGORY

카테고리 (576)
AI (2)
Language (251)
WEB (143)
App (45)
Git (6)
AWS (15)
DataBase (44)
OS (33)
Tool (15)
IT (17)
CodePen (2)
SEEMINGLY ONLINE

Seemingly
Online

이모저모 방방곡곡 두루두루 개발지식 저장소

RECENT POSTS

Language/Java

[Java] 자바 생성자 Overloading(오버로딩) 알아보기

2020-11-16


클래스에는 3가지 요소가 존재하는데, 바로 필드 / 생성자 / 메서드 가 있다. 오늘은 이 3가지 중 초기화를 담당하는 생성자의 오버 로딩에 대해서 알아보도록 하겠다. 

 

우선 오버로딩이라는 단어의 뜻에서 유추할 수 있듯이 기존의 기본 생성자를 다양한 방법으로 객체를 생성할 수 있도록 매개변수를 달리하여, 다수의 생성자를 선언하는 것이다. ( 말이 좀 어려울 수 도 있는데, 코드를 보면 쉽게 이해할 수 있다.)


public class Overloading {
	String name;
	String sex;
	int age;
	
	public Overloading() {
	}
	
	public Overloading(String name) {
		this.name = name;
	}
	//이름 매개변수를 받는 생성자
	public Overloading(String name, String sex) {
		this.name = name;
		this.sex = sex;
	}
	//이름, 성별 매개변수를 받는 생성자	
	public Overloading(String name, String sex, int age) {
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	//이름, 성별, 나이 매개변수를 받는 생성자
}

위의 코드와 같이 필드의 타입과 매개변수를 괄호 안에 적어주면 된다. 이후 this를 통해서 초기화를 시켜주면 간단히 선언할 수 있다. (앞서 말한듯이 코드는 간단하다.)

이후 메인 클래스에서 새로운 객체를 선언시 오류 없이 정상적으로 코드가 작성되는 것을 알 수 있다.


마지막으로 System.out.println(); 으로 생성된 객체의 각 요소를 출력해본 결과 역시 정상적으로 원하는 데이터가 들어가 있는 것을 알 수 있다.

public class TemplateA {
    public static void main(String[] args){
    	
    	Overloading a = new Overloading();
    	Overloading b = new Overloading("홍길동");
    	Overloading c = new Overloading("홍길동", "남");	
    	Overloading d = new Overloading("홍길동", "남", 25);
   
    
    	System.out.println(b.name);
    	System.out.println(c.name + " " + c.sex);
    	System.out.println(d.name + " " + d.sex + " " + d.age);
    }
}

COMMENTS