Class OverLoading.

김지원·2022년 5월 29일
0

Java

목록 보기
21/38

앞 게시글의 예제를 추가로 포스팅하겠음!

package day12;

public class Car {
	int price;
	String color;
	String brand; //전역변수
    
	//OverLoading
	Car() {
		
	}

	//기본생성자
			//↓지역변수 
	Car(int price, String color, String brand){
		this.price = price; 
		//↑전역변수     ↑지역변수 price 
		this.color = color;
		this.brand = brand;
	}
	
	//자동차 기능
	double speedUp(double speed){
		speed++;
		return speed;
	}
	
	double speedDown(double speed){
		speed--;
		return speed;
	}
	
	//차의 정보
	void showInfo() {
		System.out.println(this); //day12.Car@5e91993f 주소값 같음.
		System.out.println("브랜드 : " + this.brand + "\n색상 : " + color + "\n가격 : " + price + "만원"); 
	}    
    // this.brand 그~ 주소에 있는 브랜드!
	
	//내가 momCar.showInfo(); 이걸 했는데 어떻게 showInfo();에서 엄마차인지 알수 있냐?
	 //왜 car class는 하나밖에 없는데...
	 //구분점을 그 객체가 가지고 있는 주소로 가진다.
	 //여기에 들어오는 주소랑 객체의 주소랑 같은지 비교해보자
	 //그 주소를 받는 친구가 this이다.
	//this는 내가 사용한 객체의 주소를 받는애다.
	//brand 라고 되어있지만 사실상 this가 생략되어있는 것임.
	
	
	public static void main(String[] args) {
		 Car momCar = new Car(9000,"Black","Benz");
		 Car dadyCar = new Car();
		 Car myCar = new Car();

		//System.out.println(momCar);
		 //맘카에는 주소값이 들어가있음 확인해보장. day12.Car@5e91993f 출력
		 //주소값안에 필드가 있음.
		 
		 momCar.showInfo();
	}
}

오버 로딩(Over loading)

: 넘쳐서 불러온다.
같은 이름의 메서드라도 매개변수의 갯수 혹은 타입이 다르면
선언 가능하다.

< example >
두 정수의 덧셈

package day12;

public class OverLoading {
	void add(int num1, int num2) {
		System.out.println("두 정수의 합");
		System.out.println(num1+num2);
	}
	
	void add(int num1, int num2, int num3) {
		System.out.println("세 정수의 합");
		System.out.println(num1+num2+num3);
	}
	
	void add(double num1, double num2) {
		System.out.println("두 실수의 합");
		System.out.println(num1+num2);
	}
	
	public static void main(String[] args) {
		OverLoading o = new OverLoading();
		o.add(10, 20);
		o.add(10.5, 20.5);
		o.add(1, 2, 3);
		
        //출력 결과 :
		//두 정수의 합
		//30
		//두 실수의 합
		//31.0
		//세 정수의 합
		//6
	}
}
  • 매개변수의 갯수가 다르다.
  • 이름이 같더라도 구분점이 생기게 된다.
  • 전달한 값의 갯수로 구분을 할 수 있다.

0개의 댓글

관련 채용 정보