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)