Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 세션기반 인증
- ./gradlew docker
- 비동기
- 스프링부트
- 비즈니스 계층
- 프레젠테이션 계층
- java I/O
- RESTfull API
- 로그인/로그아웃
- spring
- 작업명중복
- 스프링
- http
- MSA
- ORM
- 스프링부트 구조
- 퍼시스턴스 계층
- JWT
- JPA
- formmatted
- 스프링 부트 테스트
- ./gr
- Java
- 로그인 인증 흐름
- @temproal
- 토큰기반 인증
- 스프링부트 계층구조
- IPC
- 동기
- 어노테이션
Archives
- Today
- Total
[DEV] J-Jay
static 본문
728x90
Java에서 static은 객체가 아닌 클래스에 속하는 키워드이다.
클래스 변수
클래스 변수(static 변수)는 클래스 내부에서 선언되며 모든 객체가 공유하는 변수이다
클래스 변수는 객체를 생성하지 않고도 사용할 수 있으며, 클래스 이름으로 접근한다.
public class MyClass {
static int classVar = 0;
int instanceVar = 0;
}
클래스 메서드
클래스 메서드(static 메서드)는 클래스 내부에서 선언되며 객체를 생성하지 않고도 호출할 수 있는 메서드다.
클래스 메서드는 클래스 변수만 사용할 수 있으며, 인스턴스 변수를 사용할 수 없다
public class MyClass {
static int classVar = 0;
int instanceVar = 0;
static void classMethod() {
// 클래스 변수에 접근
classVar++;
// 인스턴스 변수에 접근 불가능
// instanceVar++;
}
}
※참고
인스턴스 변수는 객체를 생성한 후에 사용할 수 있지만, static 메서드는 객체 생성 없이 클래스 이름으로 직접 호출이 가능하기 때문에 인스턴스 변수를 사용할 수 없다. 만약 static 메서드에서 인스턴스 변수를 사용하고자 한다면, 메서드의 매개변수로 해당 인스턴스를 받아와서 사용하거나, 해당 인스턴스 변수를 static으로 변경해야 한다
정적 블록
정적 블록(static block)은 클래스가 로드될 때 실행되는 블록이다.클래스 변수의 초기화나 예외처리 등을 위해 사용된다.
public class MyClass {
static int classVar;
static {
// 클래스 변수 초기화
classVar = 0;
}
}
중첩 클래스
중첩 클래스(static nested class)는 다른 클래스 내부에서 선언되며 static 키워드를 사용하여 정의된다.
외부 클래스의 인스턴스와는 관련이 없으며, 외부 클래스의 인스턴스 멤버에 접근할 수 없다.
public class OuterClass {
static class StaticNestedClass {
// 중첩 클래스 내부에서 사용할 수 있는 멤버 변수와 메서드 정의
}
}
'Back-end > Java' 카테고리의 다른 글
Generic (0) | 2023.04.29 |
---|---|
String (0) | 2023.04.23 |
JVM(Java Virtual Machine) (0) | 2023.04.17 |
Method(메소드) (0) | 2023.04.16 |
Class(클래스) (0) | 2023.04.16 |