YTCW

java 용어 정리, overloading 본문

java

java 용어 정리, overloading

YTCW 2024. 9. 6. 11:14

클래스, 객체, 인스턴스

변수 : 속성 (필드 - 인스턴스 변수, 정적클래스 변수) / 지역변수

메서드 : 인스턴스 메서드 정적클래스 메서드

생성자

 

메서드 오버로딩

overloading

한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

계속해서 쌓다

 

오버로딩의 성립 조건은

메서드 이름이 같아야 하고

매개변수의 개수 또는 타입이 달라야 한다.

반환 타입은 관계가 없다.

 

오버로딩의 장점

사용자가 매개변수의 순서를 외우지 않아도 사용 가능 (편의성)

 

오버로딩의 단점

중복적으로 의미 없이 생성되는 경우,

실질적으로 필요한 구현 메서드 찾기에 어려움이 있다. (복잡성)

 

package chapter05;

class Calc {
	int a, b;
	int c, d;
	double x, y;
	// 두 정수를 더하는 메서드를 만들어 보기
	
	int add (int a, int b) {
		return a + b;
	}
	// 실제 값 차이 여부와 반환타입의 차이 여부는 오버로딩과 관련이 없다.
	// 반드시!! 매개변수의 개수 또는 타입이 달라야 한다.
    // long add (int c, int d) {
    //	 return c + d;
    // }
	// 에러~
	// 사용하려면 아래처럼 해야된다.
	// 두 정수를 더하는 메서드 (long 타입, 오버로딩)
    long add(long c, long d) {
        return c + d;
    }
    
    double add (double x, double y) {return x + y;};
    double add (int x, double y) {return x + y;};
    double add (double x, int y) {return x + y;};
    double add (double x, int y, int c) {return x + y + c ;};
    // 어차피 더하기 계산을 하는 인스턴스 메서드라면
    // 굳이 실수, 정수를 나누지않아도 계산만 되면 상관 없다면
    // 이런식으로 타입을 다 지정하여 타입을 굳이 신경쓰지않아도
    // 편하게 사용할 수 있도록 만들 수 있다.
    
    // 1. 같은 이름 사용 가능
    // 2. 코드의 재사용성이 높아짐
    // 3. 컴파일 시 타입 체크를 강화 - 올바른 매개변수 타입을 가진 메서드를 선택
    
    
}
public class Overloading01 {

	public static void main(String[] args) {
		Calc calculator = new Calc();
		System.out.println(calculator.add(10,20));
		System.out.println(calculator.add(10.5,20));
		System.out.println(calculator.add(10,20.3));
		System.out.println(calculator.add(10.321,20.32));
		System.out.println(calculator.add(10,20,30));
	}

}

'java' 카테고리의 다른 글

java Inheritance  (2) 2024.09.06
java constructor  (0) 2024.09.06
java 메소드, method  (0) 2024.09.05
java 객체 지향 프로그램의 변수  (0) 2024.09.05
java 객체 지향 프로그래밍, oop (object - orientend - programming)  (3) 2024.09.05