method(function) : 기능
java-> class 내부에서 method 선언
field 는 메소드를 통해서 사용된다.그외에는 접근 불가.
함수의 기본 형식
접근지정자 (static/final) 리턴타입 함수명(매개변수)
public static void main(String args[])
이처럼 함수를 만든다는 것은 JAVA에서 모듈화라는 의미가 있다.
오버로딩
상속구조- Object 최상위클래스
지역변수와 필드변수의 이름이 똑같을때 구분할 수 있고, 현재 사용중인 객체를 받을 수 있다.
public class People{
//필드
int age;
//메소드
void setAge(int a){
age = a;
}
}
people이라는 클래스가 있을때 필드에는 age 라는 변수가 있고 메소드로 a라는 지역변수를 받아 age에 저장하는 메소드가 있다. 위처럼 필드 변수와 지역변수의 이름이 다르기 때문에 서로 구분이 가능하지만..
public class People{
//필드
int age;
//메소드
void setAge(int age){
// age = age;
this.age = age;
}
}
이처럼 메소드에서 필드 변수와 지역 변수의 이름이 같을때 서로 어떤건지 구분할 수 없어 지역변수에서 가져온 age를 그대로 age에 저장하게 된다.
이를 구분할 수 있게 해주는 것이 this 이며 this.을 붙이게 되면 이 변수는 필드 변수라는 의미이다.
this()
: 생성자에서 오버로딩된 또 다른 생성자를 호출할때 사용
this는 생성자를 의미한다.
public class thisCall {
int a;
int b;
public thisCall() {
//this.a = 0;
//this.b = 0;
this(0,0);
}
public thisCall(int a) {
//this.a = a;
this(a,0);
}
public thisCall(int a, int b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public int getB() {
return b;
}
public static void main(String args[]) {
thisCall me = new thisCall();
thisCall me1 = new thisCall(10);
thisCall me2 = new thisCall(20,30);
System.out.println(me.getA()+"\t"+me.getB()); //0,0
System.out.println(me1.getA()+"\t"+me1.getB());//10,0
System.out.println(me2.getA()+"\t"+me2.getB());//20,30
}
}
생성자에서 필드를 초기화 할때 이방식으로 초기화할 수 있다.