값 변경을 금지하고 읽기만 허용할 때 주로 final 필드와 상수를 선언하여 사용한다. 1. final 필드 선언 final 필드는 초기값이 저장되면 최종적인 값이 되어 프로그램 실행 중에 수정할 수 없다. final 타입 필드 [=초기값]; 초기값은 필드 선언 시와 생성자에서 대입할 수 있다. 고정된 값이라면 필드 선언 시에 주고 복잡한 초기화 코드가 필요하거나 객체 생성 시 외부에서 전달된 값으로 초기화하면 생성자에서 준다. 두 방법을 사용하지 않으면 컴파일 에러가 발생한다. 예제 코드 더보기 public class Korean { // 인스턴스 final 필드 선언 final String nation = "korea"; // 고정값으로 초기 대입 final String ssn; // korean 생..
static
1. 인스턴스(Instance) member 객체에 소속되어 있으며, New를 통해 객체 생성 후 사용할 수 있는 필드와 메소드이다. 객체 내부의 인스턴스 멤버에 접근하려면 this를 통해 가능하다. public class Car { // 인스턴스 필드 선언 int gas; //인스턴스 메소드 선언 void setSpeed(int speed) {...} } gas 필드는 객체에 소속된 멤버지만 setSpeed() 메소드는 객체에 포함되지 않는다. 메소드를 객체마다 저장 시 중복 저장으로 메모리 효율이 떨어지기에 메소드 코드는 메소드 영역에 있지만 공유하여 사용하고 객체 없이는 사용 불가하게 제한이 걸려있다. 1-1. this 키워드 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용한다. 생성자..