Jay's Developer Note

[JAVA] Class - 3(멤버 변수) 본문

JAVA

[JAVA] Class - 3(멤버 변수)

Jay(J) 2022. 3. 11. 00:21
728x90

멤버 변수(Member Variable)

멤버 변수는 클래스를 정의할 때 메소드 밖에 선언하는 변수로서 객체가 가지는 정적인 특성인 속성을 나타내는 데 사용한다.

형식
[접근 제어자] [사용 방식] 데이터형 변수명;


접근 제어자 : public, private, protected, default
사용 방식 : static, final

 

접근 제어자

접근제어자 설명


접근 제어자를 통해 객체지향 언어의 특징 중 하나인 캡슐화와 정보 은닉을 설계할 수 있다.

사용방법
public class Hyundai {
  public static void main(String[] args) {
    Car mCar = new Car();
    // public 멤버 변수이므로 어디서든 접근 가능
    mCar.brand = "현대";
    // default 멤버 변수이므로 같은 패키지라 접근 가능
    mCar.maxSpeed = 220;
    // private 멤버 변수이므로 에러 발생
    mCar.assembler = "A";
  }
}

class Car {
  public String brand;
  int maxSpeed;
  private String assembler;
}

 

클래스변수(static)

멤버 변수에 사용 방식을 static 으로 선언한 변수이다. 그렇지 않은 변수는 객체 변수라고도 한다.
객체 변수는 객체가 생성될 때마다 메모리가 할당되지만, 클래스 변수는 클래스가 로딩되는 과정에서 메모리가 할당되고 객체들이 공유해서 사용하게 된다.

사용방법
public class HyundaiCars {
  public static void main(String[] args) {
    // 현대차 브랜드 이름의 아반떼 객체 생성
    Car avante = new Car();
    // 현대차 브랜드 이름의 소나타 객체 생성
    Car sonata = new Car();
    // 현대차 브랜드 이름의 그랜저 객체 생성
    Car grandeur = new Car();
  }
}

class Car {
  public static String brand = "Hyundai";
  int maxSpeed;
  String assembler;
}

상수(final)

멤버 변수에 사용 방식을 final 로 선언한 변수이다. final 로 선언하면 해당 변수를 더 이상 값을 변경할 수 없다.
최초 선언 시에 초기화만 가능하며 그 후로는 값을 변경할 수 없다. 변경을 시도하면 에러가 발생한다.
그래서 변하지 않는 수, 상수라고 불리며 보통 대문자와 _(언더바)를 이용한 스네이크 네이밍룰을 적용한다.
(프로그래밍 네이밍룰 참조 : https://fall-in-it.tistory.com/28)

사용방법
public class Main {
  final int age = 20;
  public static void main(String[] args) {
    age = 30; // final 변수를 수정하려하면 에러가 발생
  }
}

 

728x90

'JAVA' 카테고리의 다른 글

[JAVA] 캡슐화 & 은닉화  (0) 2022.03.16
[JAVA] Class - 4(메소드)  (0) 2022.03.13
[JAVA] Class - 2(생성자)  (0) 2022.02.25
[JAVA] Class - 1(클래스)  (0) 2022.02.24
[JAVA] Intellij 에서 JAVA 실행하기  (0) 2022.02.18