PengTory

[Java] static과 instance (+ final, package) 본문

Java

[Java] static과 instance (+ final, package)

펭토리 2023. 3. 9. 10:00

1. Instance (객체)

- static 키워드가 없으면 Instance

- 객체 생성 후 객체를 통해서 사용

 

2. Static(정적/ 고정)

- static 키워드가 있으면 static

- 클래스 명으로 사용

- 필드는 객체간의 공유가 된다.

 => (myCalcu2, 3, 4는 값을 건들이지 않았음에도 불구하고 하나의 값이 변경되었기 때문에 공유로 인해 다른 것들도 값이 바뀌는 것을 볼 수 있다.)

public class CalculatorExample {

	public static void main(String[] args) {
		System.out.println("main 메서드 시작");
		Calculator myCalcu = new Calculator();
		
		double result1 = myCalcu.areaRectangle(10);
		double result2 = myCalcu.areaRectangle(10, 20);
		
		System.out.println("정사각형 넓이 = " + result1);
		System.out.println("직사각형 넓이 = " + result2);
		
		System.out.println(Calculator.pi);
		System.out.println(myCalcu.pi);
		
		Calculator myCalcu2 = new Calculator();
		Calculator myCalcu3 = new Calculator();
		Calculator myCalcu4 = new Calculator();
		Calculator myCalcu5 = new Calculator();
		
		Calculator.pi = 4.14;
		System.out.println(Calculator.pi);
		System.out.println(myCalcu.pi); // 객체들끼리 공유한다
		System.out.println(myCalcu2.pi);
		System.out.println(myCalcu3.pi);
		System.out.println(myCalcu4.pi);
 
 }

 

3. final (마지막)

- 필드, 메서드, 클래스

- final 필드: 한번 값이 초기화 되면 변경 불가

- 상수: final static

 

4. 패키지 (폴더, 디렉토리)

- 같은 패키지의 클래스는 import 필요 없음

- 다른 패키지의 클래스는 import 해야 사용 가능

- import의 단축키는 ctrl + shift + o(알파벳 소문자 o)