1. Final?
- final 지시자는 Java에서 변할 수 없다는 의미로 사용됨
- class ⇒ 다른 Class에서 상속이 불가함
- method ⇒ Overriding을 통해 재정의가 불가함
- Member Variable ⇒ value 변경이 불가함
- Local Variable ⇒ value 변경이 불가함
2. Static Variable(정적변수)?
- static int iVal = 0; // static field, static varialbe 선언
- Variable 앞에 static을 작성해 사용함
- Object를 생성하지 않아도 Memory에 할당됨
- 변하지 않으면서 프로그램 전체에서 공유하고자 하는 Variable가 필요할 때 사용함
- [Object name.Static name] or [Class name. Static name]으로 Variable에 접근 가능함 ⇒ 일반적으로는 [Class name.Static name]을 많이 사용함
3. Static Method(정적 메소드)?
- Static Method[Class method]
- method 앞에 static을 작성해서 사용함
- 정적 Method or Object를 생성하지 않아도 Memory에 할당됨
- static method는 Instance variable(Member Variable)에 접근 할 수 없음
- “정적”이지 않은 Variable, Method는 Instance(일반)Variable, Method라고도 함
4. Static Method/일반 Method?
- Static method
- Object를 생성하지 않고 Method 호출이 가능함
- [Class name.Static name]
- 바로 Memory에 올라가기 때문에 지속적으로 Memory 공간을 차지함
- 기본적인 기능임
- 일반 Method
- Object를 생성해야 Method 호출가능함
- [Object name.일반 Method name]
- Object를 생성할 때 4byte의 Memory 공간이 필요함
- 특수한 기능임
→ 좋은 프로그램을 작성하기 위해서는 정적 메소드와 일반 메소드를 적절하게 사용해야함!
→ 정적 메소드 역시 [Object. Static method name]으로 호출 가능하지만, 일반적으로 잘 사용하지 않음!
5. Math Method?