변수를 선언할 때 직관적으로 사용하기 위해 사용한다 생각하면 편하다.
public class Car {
String name;
// 예시1 생성자의 매개변수를 n으로 했을 때
public Car(String n) {
name = n; // n이 number의 약자인지 name의 약자인지 잘 모른다
}
// 그렇기 때문에 name 이라고 정확하게 사용하는 것이 좋다
// 예시2 생성자의 매개변수를 똑같이 했을 때
public Car(String name) {
name = name; // 앞의 name에 뒤에 name을 넣어 주세요. 하지만 이름이 똑같기 때문에 이상해진다
}
// 그렇기 때문에 this를 쓴다
// 예시3 this 사용
public Car(String name) {
this.name = name; // name이 누군지 알려주는 this이다.
}
// this는 내 구성요소를 뜻한다. 즉 내 field의 name에 매개변수 name을 넣어주세요가 된다
}
매개변수의 수, 타입이 다른 경우 동일한 이름으로 메소드를 여러개 정의 할 수 있다.
메소드 오버로딩은 매개변수를 개수를 조정할 수 있고, 타입을 다르게 할 수 있다. 매개변수의 이름을 바꿔도 된다.
한마디로 동일한 이름의 여러개 메소드 생성 가능
public class MyClass {
public int plus (int x, int y) {
return x + y;
}
public int plus (int x, int y, int z) {
return x + y + z;
}
public String plus (String x, String y) {
return x + y;
}
}
생성자도 메소드와 동일하게 오버로딩을 할 수 있다.
public Car(String name) {
this.name = name;
}
public Car() {
}
public Car(String name, int number) {
this.name = name;
this.number = number;
}
// 기본 생성자에 값을 넣어줄 수도 있다
public Car() {
// this.name = "이름없음";
// this.number = 0;
this("이름없음",0); // this는 자신을 가리키므로 위 주석과 동일
}
자바에서는 .으로 폴더 내부를 구분한다.
1. src 우클릭 -> 패키지 생성
2. global.css.wrapper 이름으로 패키지 생성
3. 해당 패키지에 우클릭 후 GlobalWrapper class 생성
4. src/global/css/wrapper/GlobalWrapper 생성 완료
import global.css.wrapper.*; // * 은 패키지 내부의 모든 클래스를 사용한다는 뜻