본문 바로가기

Java/본격 Java 스트링

[Java] 오버로딩(overloading)

오버로딩(overloading)
 - 한 클래스 내에서 동일한 이름의 메소드를 여럿 정의하는 것을 의미한다.
 - 단, 매개변수로 메소드 호출시 구분이 가능해야 합니다.
   ex) test(), test(1), test(1.2), test(1, 2) ...
 - 매개변수가 아닌 리턴타입으로는 오버로딩 불가합니다.
 - 생성자도 오버로딩이 가능합니다. -> 여러가지 방법으로 인스턴스 생성이 가능합니다.

 

this 키워드
 - 현재 생성되고 있는 인스턴스를 의미
 - 용법
  this.변수명 : 지정된 변수가 멤버변수임을 의미합니다.
  this([매개변수(들)]) : 다른 생성자를 호출하는 것으로 반드시 생성자 안에서 호출해야 합니다.

.

.

예제

class Person
{
	private int perID, milID, bYear, bMonth, bDay;

	public Person(int pID, int mID, int bYear, int bMonth, int bDay){
		perID = pID;
		milID = mID;
		this.bYear = bYear;
		this.bMonth = bMonth;
		this.bDay = bDay;
		// this : 현재 생성되고 있는 인스턴스를 의미하는 키워드
		// this.변수명 : 멤버변수를 의미하게 됨
	}

	public Person(int pID, int bYear, int bMonth, int bDay){
		this(pID, 0, bYear, bMonth, bDay);
		//this() : 다른 생성자를 호출
	}

	public void showInfo(){
		System.out.println("민    번 : " + perID);
		System.out.println("생년월일 : " + bYear + "/" + bMonth + "/" + bDay);
		if(milID != 0){
			System.out.println("군    번 : " + milID + "\n");
		}else{
			System.out.println("군과 관계없음\n");
		}
	}
}

class Overloading
{
	public static void main(String[] args) 
	{
		Person p1 = new Person(950123, 880102, 1995, 1, 23);
		Person p2 = new Person(961105, 1996, 11, 5);
		// 오버로딩된 생성자를 매개변수의 개수로 구분하여 인스턴스를 생성

		p1.showInfo();
		p2.showInfo();
	}
}
728x90
반응형

'Java > 본격 Java 스트링' 카테고리의 다른 글

[Java] String 메소드 활용 3  (0) 2020.06.26
[Java] String 메소드 활용 2  (0) 2020.06.26
[Java] String 메소드 활용1  (0) 2020.06.26
[Java] String 메소드  (0) 2020.06.26