오버로딩(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 |