여기 여러 종류의 변수가 있다.
- 클래스의 멤버변수 - 필드(field)라고 불린다.
- 메서드 또는 코드블럭의 변수 - 지역변수(local variables)라고 불린다.
- 메서드 선언의 변수 - 파라미터(parameter)라고 불린다.
Bicycle 클래스는 필드를 정의하기 위해 다음과 같은 코드를 사용한다.
public int cadence;
public int gear;
public int speed;
필드 선언은 다음 세가지 구성요소로 이루어진다.
1. 0개 이상의 접근제어자 (public or private)
2. 필드 타입
3. 필드 이름
위 Bicycle 클래스의 필드 이름은 cadence, gear, speed이고 모두 int타입이다. 그리고 public 키워드는 이 필드들이 Bicycle 클래스에 액세스 할 수 있는 모든 객체가 액세스 할 수 있는 public 필드를 나타낸다.
첫번째로 사용된 접근제어자는 멤버 필드에 액세스하는 다른 클래스를 제어한다.
지금은 public과 private 접근제어자만 고려한다.
- public modifier - 모든 클래스들이 필드에 접근할 수 있다.
- private modifier - 해당 클래스에서만 필드에 접근할 수 있다.
캡슐화에서는, 필드를 private으로 만드는 것이 일반적이다. 즉, 필드는 해당 클래스에서만 직접 접근할 수 있음을 의미한다. 하지만 여전히 이 필드에 접근해야한다면 어떻게 해야할까?
그러면 public 메서드를 사용해서 필드에 간접적으로 접근할 수 있다.
public class Bicycle {
private int cadence;
private int gear;
private int speed;
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
public int getCadence() {
return cadence;
}
public void setCadence(int newValue) {
cadence = newValue;
}
public int getGear() {
return gear;
}
public void setGear(int newValue) {
gear = newValue;
}
public int getSpeed() {
return speed;
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
}
모든 변수는 타입을 갖고있다. int, float, boolean 등 기본 타입을 사용하거나 strings, array, 객체같은 참조 유형을 사용할 수 있다.
필드거나 지역이거나 파라미터거나 상관없이 모든 변수들은 같은 명명법칙과 컨벤션을 따른다.
- 클래스의 첫글자는 대문자여야한다
- 매서드 이름의 첫글자는 동사여야 한다.
출처
https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html