728x90
자바로 클래스나 함수, 변수를 생성할 때 파이썬과 달리 이것저것 붙는 걸 알 수 있다.
public class Test {
static int A = 100;
public static void main(String[] args) {
System.out.println(A);
}
}
이런식으로 public, static 등 알 수 없는 것들이 써있는데, 오늘은 이것들을 정리해보려고 한다.
1. 접근제한자
접근제한자는 이름에서도 알 수 있듯이 멤버의 접근을 제한하기 위해 사용한다. 접근제한자는 총 4가지가 있다.
- public : 외부 클래스에서도 자유롭게 사용할 수 있게 함
- protected : 같은 패키지 혹은 자식클래스 (상속하고있는 클래스)에서 사용할 수 있음
- default : 같은 패키지에 소속된 클래스만 사용 가능
- private : 외부에서 사용할 수 없음
위에서 작성한 순서대로 접근 제한이 강화된다. 아무것도 쓰지 않았을 경우에는 default로 생성된다.
정리하면 다음과 같다.
2. static
static은 정적이라는 뜻을 가지며, 객체를 생성하지 않고 클래스에 고정된 필드와 메소드를 의미한다. 이는 인스턴스에 소속되어있지 않기 때문에 클래스멤버라고도 한다.
static int age;
이런식으로 static 타입 필드명 형태로 작성한다. 이를 사용할 때에는 클래스명.필드명(메소드명)으로 사용한다.
3. final
final은 초기값이 저장되면 이후에 값을 변경할 수 없게 한다.
초기값은 필드를 선언할 때 명시적으로 지정하는 방법과 생성자로 지정하는 방법이 있다.
public class Member {
public final String gender;
// 생성자를 통해 final 필드 초기화
public Member(String gender) {
this.gender = gender;
}
}
한번 초기화 되면 수정할 수 없으나, 객체마다 다른 값으로 초기화 할 수 있기 때문에 상수라고 하지 않는다.
하지만 static final 이라고 쓰면 객체마다 저장되지 않고 값도 바뀌지 않아 상수로 쓸 수 있다.
'언어 > 자바' 카테고리의 다른 글
[JAVA] 예외처리 (Exception) _ CheckedException, UnCheckedException (0) | 2024.06.14 |
---|---|
[JAVA] 추상 클래스와 추상 메소드, 인터페이스와의 차이까지 (0) | 2024.06.14 |
[JAVA] 클래스 상속 (1) | 2024.06.13 |
[JAVA] 객체와 클래스 (0) | 2024.06.11 |
[JAVA] JAVA에 대하여 (JVM, javac) (0) | 2024.06.11 |