JAVA 시작하기
1.꼭 필요한 정보와 기능만 외부에 오픈함
2.대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함
3.각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
=> Client가 사용할 수 있는 메서드나 변수를 최소화함!!
1.인스턴스 자신의 메모리를 가리킴
->클래스 내에서 참조변수(day)가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드
2.생성자에서 또 다른 생성자를 호출 할때 사용
public class Person {
String name;
int age;
//클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음
public Person() {
//생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로
//this() statement 이전에 다른 statement를 쓸 수 없음->즉 this()위에는 뭐 쓰지 말기!
this("이름없음", 1);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
3.자신의 주소(참조값)을 반환 함
public Person getPerson() {
return this;
}
1.객체 지향 프로그램에서 객체 간에는 협력이 이루어짐
2.협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함
3.매개 변수로 객체가 전달되는 경우가 발생
ex) 객체 협력의 예
여러 인스턴스에서 공통으로 사용하는 변수가 필요할 때 사용!! && 여러 인스턴스가 공유하는 기준 값이 필요한 경우
static int serialNum;
1.인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당
2.클래스 변수, 정적변수라고도 함(vs. 인스턴스 변수)
3.인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조
※static변수는 인스턴스에서 공통으로 사용하는 영역임을 알 수 있음
-static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출 될 수 있음
-인스턴스 생성 전에 호출 될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없음
public static void setSerialNum(int serialNum) {
int i = 0;
employeeName = "Lee"; //오류발생
Employee.serialNum = serialNum;
}