앞 게시글의 예제를 추가로 포스팅하겠음!
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();
}
}
: 넘쳐서 불러온다.
같은 이름의 메서드라도 매개변수의 갯수 혹은 타입이 다르면
선언 가능하다.
< 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
}
}