728x90
반응형
정적(Static)이란
- 고정된 의미를 갖고 있다. Static이란 키워드를 사용해 Static 변수, Static 메소드를 만들 수 있다. 이를 정적 필드와 정적 메소드라고 하며 이 둘을 합쳐 정적 멤버(클래스 멤버)라고 부른다.
정적 필드와 정적 메소드는 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버이다. 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 그렇기 때문에 클래스의 로딩이 끝나는 즉시 바로 사용가능하다.
즉, Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다.
일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성된다.
Static 필드 사용 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package zon; class Number{ static int num = 0; //클래스 필드 int num2 = 0; //인스턴스 필드 } public class SingleStudy { public static void main(String[] args) { Number number1 = new Number(); //첫번째 number Number number2 = new Number(); //두번쨰 number number1.num++; //클래스 필드 num을 1증가시킴 number1.num2++; //인스턴스 필드 num을 1증가시킴 System.out.print(Number.num); System.out.println(); System.out.print(number1.num); System.out.print(number1.num2); System.out.println(); System.out.print(number2.num); //두번째 number의 클래스 필드 출력 System.out.print(number2.num2); //두번째 number의 인스턴스 필드 출력 } } | cs |
Static 메서드 사용 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Name{ static void print() { //클래스 메소드 System.out.println("내 이름은 홍길동입니다."); } void print2() { //인스턴스 메소드 System.out.println("내 이름은 이순신입니다."); } } public class Main { public static void main(String[] args) { Name.print(); //인스턴스를 생성하지 않아도 호출이 가능 Name name = new Name(); //인스턴스 생성 name.print2(); //인스턴스를 생성하여야만 호출이 가능 } } | cs |
Reference
https://coding-factory.tistory.com/524
728x90
반응형
'✨ Java > etc' 카테고리의 다른 글
자바(JAVA) - static(클래스)변수와 instance변수, local(지역)변수 (0) | 2023.07.06 |
---|---|
자바(JAVA) - 자료형 변환 (byte, int, long, char, boolean) 연산 (0) | 2023.07.06 |
자바(JAVA) - 제네릭(Generic) (0) | 2023.07.06 |
자바(JAVA) - 자바의 특징 (0) | 2023.07.06 |
자바(JAVA) - 상수(final)의 의미 (0) | 2023.07.05 |
댓글