Java로 코드를 짜다보면 변수에 할당하는 자바 키워드에 대해서 헷갈릴 때가 있다.
생각없이 지정한 키워드는 예상치 못한 에러를 불러올 수 있으므로 이번에 확실하게 각 키워드의 역할과 사용 예시를 알아보고자 한다.
1. 접근 지정자
class Person {
public String name; // 외부에서도 접근 가능
protected int age; // 같은 패키지와 상속 클래스에서만 접근
private String ssn; // 외부 접근 불가, 내부에서만 사용
String address; // 같은 패키지 내에서만 접근 가능 (default)
}
2. 변수의 생명주기와 고정성 제어 키워드
final
사용 예시
class Constants {
public static final double PI = 3.14159; // 상수로 사용
}
static
사용 예시
class Counter {
public static int count = 0; // 모든 객체가 공유하는 변수
public Counter() {
count++; // 객체가 생성될 때마다 증가
}
}
public class Main {
public static void main(String[] args) {
new Counter();
new Counter();
System.out.println(Counter.count); // 출력: 2
}
}
3. 변수 초기화 제어 키워드
var
사용 예시
public class Main {
public static void main(String[] args) {
var name = "kimgoat"; // String으로 추론
var age = 13; // int로 추론
System.out.println(name + " is " + age + " years old.");
}
}
4. 멀티스레드와 관련된 키워드
synchronized
사용 예시
class BankAccount {
private int balance = 1000;
public synchronized void withdraw(int amount) {
if (balance >= amount) {
balance -= amount;
}
}
public int getBalance() {
return balance;
}
}
5. 기타 변수 관련 키워드
this
사용 예시
class Person {
private String name;
public Person(String name) {
this.name = name; // 파라미터와 멤버 변수 구분
}
}
super
사용 예시
class Animal {
protected String name = "Animal";
}
class Dog extends Animal {
public void printName() {
System.out.println(super.name); // 상위 클래스의 name 사용
}
}
'🗣️ Programming Language > Java' 카테고리의 다른 글
[Java] 생명 주기와 접근 범위에 따른 변수의 종류 (0) | 2024.10.18 |
---|---|
[Java] ArrayList 구현 - get(), add(), remove(), toString() (0) | 2024.01.06 |
[Java] Class - Scanner(스캐너) (0) | 2024.01.05 |
[Java] 조건문 - 삼항 연산자(ternary operator) (0) | 2024.01.04 |