*인스턴스 : 클래스를 통해 생성된 객체를 해당 클래스의 인스턴스라고 한다.
클래스 내부 접근
static 변수가 선언된 클래스 내에서는 이름만으로 직접 접근 가능
private 으로 선언되지 않으면 클래스 외부에서도 접근 가능
접근 수준 지시자가 허용하는 범위에서 접근 가능
클래스 또는 인스턴스의 이름을 통해** 접근
way.num++; 과 같이 인스턴스 이름으로 접근하는 경우는 static변수에 접근하는지, 인스턴스 변수에 접근하는지 저 문장만 보고 파악하기 어렵다.
하지만 AccessWay.num++; 처럼 클래스 이름으로 접근하면 static변수에 접근한다는 것을 문장만 보고도 알 수 있다.(클래스 이름은 첫 문자 대문자이기 때문에)
그래서 인스턴스 이름으로 static변수에 접근하는 것 보다는 클래스 이름으로 접근하는 것이 더 좋은 방법이다.
수업시간 예시: 내부, 외부에서 접근
수업시간 예시: 클래스 변수의 초기화 시점과 초기화 방법(선언시 초기화가 가장 좋음)
지역변수라는 개념 자체가 한 메소드 또는 반복문, 특정 모듈 안에서 사용되고 사라지는 개념이기 때문에 접근 제한자를 굳이 만들 필요가 없다
main(){
Baby cnt1 = new Baby();
Baby cnt2 = new Baby();
Baby cnt3 = new Baby();
}
출력
Baby 생성: 1
Baby 생성: 2
Baby 생성: 3