본문 바로가기
자바 한계단

자바 오버로딩, this, this()

by juneMiller 2021. 10. 1.

오버로딩이란? overloading

한 클래스 내에 동일한 이름의 메소드를 여러 개 작성하는 기법 

 

오버로딩 조건 : 같은 메소드 이름, 다른 매개변수의 개수 또는 다른 매개 변수 타입 

 

public class OverloadingTest {
	// 오버로딩 : 한 클래스 내 같은 메소드명으로 정의 할 수 있는 방법

	public void test() {

	}

	// public void test() {}

	public void test(int a) {

	}

	public void test(int a, String s) {

	}

	public void test(String s, int a) {

	}

	public void test(int a, int b) {

	}

	// public void test(int c, int d) {}
	// 매개변수 명과는 상관없이 자료형의 갯수와 순서가 다르게 작정 되어야 함

	public void test(int a, int b, String str) {

		// public int test(int a, int b, string str) {} 
		// 매개변수가 동일하다.

		// private void test(int a, int b, String str) {}

		/*
		 * 결론 오버로딩 - 동일한 메소드명, 매개변수 자료형과 갯수, 순서가 다르게 작성되어야 한다. [접근제한자와 반환형은 상관없엉]
		 */

	}
}

 

 

this란?

모든 인스턴스의 메소드에 숨겨진 채 존재하는 레퍼런스로 , 할당된 객체를 가리킴 함수
실행 시 전달되는 객체의 주소를 자동으로 받음

 

this 사용 예시

public class Academy{
    private String name;
    public Academy() { }
    public Academy(String name ) { this.name = name }
}

위와 같이 매개변수를 가지는 생성자에게 매개변수 명이 필드명과 같은 경우

매개 변수의 변수명이 우선이므로 this 객체를 이용하여 대입되는 변수가 필드라는 것을 구분해줌 

 

this()란? 

생성자, 같은 클래스의 다른 생성자를 호출할 때 사용 , 반드시 첫 번째 줄에 선언해야 함

 

this() 사용 예시

public class Academy{
    private int age;
    private String name;
    public Academy() {this( 20, “ 김철수); }
    public Academy(int age, String name) {
    	this.age = age; this.name = name;
    }
}

'자바 한계단' 카테고리의 다른 글

자바 객체배열 복습  (0) 2021.10.01
자바 MVC 패턴  (0) 2021.10.01
자바 구성멤버 [메소드]  (0) 2021.09.27
자바 생성자 복습  (0) 2021.09.26
필드부 복습  (0) 2021.09.24