클래스란 무엇인가? 3 : 멤버 변수 선언

정소이·2023년 1월 17일
0

OOP를 향해서

목록 보기
5/10

멤버 변수...? 뭐 아이돌이야?

여기 여러 종류의 변수가 있다.
- 클래스의 멤버변수 - 필드(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 필드를 나타낸다.

접근제어자 (Access Modifiers)

첫번째로 사용된 접근제어자는 멤버 필드에 액세스하는 다른 클래스를 제어한다.
지금은 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;
    }
}

Type

모든 변수는 타입을 갖고있다. int, float, boolean 등 기본 타입을 사용하거나 strings, array, 객체같은 참조 유형을 사용할 수 있다.

Variable names

필드거나 지역이거나 파라미터거나 상관없이 모든 변수들은 같은 명명법칙과 컨벤션을 따른다.
- 클래스의 첫글자는 대문자여야한다
- 매서드 이름의 첫글자는 동사여야 한다.

출처
https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html

profile
프로그래밍 학습에 왕도는 없다! 내가 컴퓨터를 닮아갈때까지!

0개의 댓글