Java day 10

유요한·2022년 4월 10일
0

자바

목록 보기
10/24

오버로딩(Overloading)

메소드의 이름을 재사용하여 다른 기능을 해주는 메소드이다.

오버로딩 조건

  • 메소드의 이름이 같아야 한다.
  • 매개변수의 개수 또는 타입으로 구분한다.
  • 반환 타입(값)은 관계없다. 즉, 반환 값으로 구분하지 않는다.
	public class Overloading {
	String name;
	int score;
	
	// 생성자
	Overloading() {
	}

	// 생성자 overloading(메소드 재정의)
	Overloading(String name) {	// 매개변수 1 개
		this.name = name;
	}
	
	// 생성자 오버로딩
	Overloading(int score) {	// 매개변수 1개
		
	}
	
	// 생성자 오버로딩
	Overloading(String name, int score) { // 매개변수 2개
	}
	
	// 매개변수의 갯수 또는 매개변수의 자료형(타입)이 다르면 이름이 같아도 오버로딩 OK
	// 메소드 오버로딩
	public void print() {		
		System.out.println("프린트 기본 메소드");
	}
	
	public void print(String name) {
		System.out.println("프린트 이름 : " + name);
		//100줄이라면
	}

	public void print(int score) {
		System.out.println("프린트 점수 : " + score);
		//100줄이라면
	}
	
	public void print(String name, int score) {
		// 메소드 재사용
		this.print(name);
		this.print(score);
	}
}

this

  • this는 생성자 안에 사용했을 때 매개변수와 헷갈리지 않으려고 즉, 이것이 객체변수라는 것을 나타내기 위한 것이다.

  • 클래스 선언시 내부적으로 선언되어 생성된다.

  • 클래스는 선언시 한번의 메소드를 선언하는데 그 메소드는 여러 객체의 공통적인 행동을 정의하고 있다.

    즉, 한번의 선언으로 여러 객체를 다루어야 한다. 그렇기 때문에 메소드 내에서 필드를 사용하고자 할 때 어떤 객체의 필드인지를 구분할 수 없다. 따라서 객체를 생성하거나 혹은 객체 . 을 찍고 필드에 접근하는 순간 그 객체를 this라는 변수가 받는다. 결과적으로 클래스 선언시 this.필드명으로 접근하면
    여러 객체도 하나의 메소드에서 다룰 수 있게 된다.

profile
최선을 다하자!!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN