static이란?
정적인, 대강 그런 뜻이다.
static이 앞에 붙는 필드나 메소드는 어떤 객체에 소속되는 것이 아니라 클래스에 고정해서 속해있다.
이게 무슨 말인지 파악해보기로 했다.
static 키워드는 객체의 인스턴스와 무관하게 사용되고,
클래스 레벨에서 존재하므로 인스턴스를 생성하지 않고도 접근할 수 있다.
- static 변수
static하게 선언된 변수는 값을 저장할 수 있는 공간이 하나만 생성된다.
그러므로, 인스턴스가 여러개 생성되도 static한 변수는 하나다.
만약 main에서 생성된 여러 개의 인스턴스에서 static 변수에 값을 각각 할당했어도, 해당 static 변수에는 최후에 할당된 값 만이 저장된다. 인스턴스 영역에서 저장되는것이 아니라 클래스 영역에 저장되는 것이기 때문에... 딱 하나의 값만 갖는다.
public class StaticExam{
public static void main(String []args){
Car taxi = new Car();
Car suv = new Car();
taxi.wheelCount = 10;
suv.wheelCount = 4;
System.out.println("taxi의 바퀴수:"+ taxi.wheelCount);
System.out.println("suv의 바퀴수:"+ suv.wheelCount);
}
}
//출력결과 taxi의 바퀴수:4
//출력결과 suv의 바퀴수:4
wheelCount에 뭘 넣었든 마지막에 할당한 값만이 클래스 영역의 wheelCount에 저장된다.
그래서 출력도 모두 4로 출력된다.
- static 메소드
얜 밥 좀 먹고 마저...
반응형
'Java 개인공부' 카테고리의 다른 글
| 자바 - stream (0) | 2024.01.10 |
|---|---|
| 자바 - 람다식(임시) (2) | 2024.01.09 |
| 자바 - 기본형 타입 & 참조형 타입 (0) | 2024.01.08 |
| 자바 - switch문 (1) | 2024.01.08 |
| 클래스 - this&super (0) | 2024.01.07 |