-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path14.usage modifier.txt
More file actions
72 lines (52 loc) · 2.87 KB
/
14.usage modifier.txt
File metadata and controls
72 lines (52 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
## usage modifier : static
1. 객체 생성없이 사용 가능 멤버 : jvm이 자동으로 메모리에 로딩시킴
2. static 멤버변수 : Class변수
- 객체 생성하지 않고 사용
- 해당 클래스의 모든 인스턴스들이 공유하는 멤버변수
3. static 멤버메서드 : Class메서드
- 객체 생성하지 않고 사용
4. static 블럭 초기화 :
- 클래스 로딩시(프로그램수행시) 한번만 초기화 블럭 수행
5. main() :
- jvm에 의해서 자동으로 메모리에 로딩되어 수행하는 static 메서드
6. static 멤버 사용방법:
클래스이름.static멤버변수명;
클래스이름.static멤버메서드명();
7. 주위사항:
static 메서드는 자동으로 메모리에 로딩되어야하므로
static 메서드는 static 멤버만 사용 가능 ,
단, 개발자가 명시적으로 객체를 생성한 후에
참조변수명.인스턴스멤버변수명, 참조변수명.인스턴스메서드()를 통해서 사용가능
8. static 멤버 메모리 로딩 순서:
1) static 변수
2) static 메서드
3) static 블럭 초기화
4) static main()
## usage modifier : final
1) 변수 : 변경불가(상수), 멤버변수, 매개변수
2) 메서드 : 재정의 불가
3) 클래스 : 상속 불가
## usage modifier : abstract
1) 추상메서드 :
- 메서드의 선언문만 가지고 있고 코드 구현부가 없는 미완성 메서드
- 형식 : public abstract 반환타입 메서드이름(아규먼트목록);
2) 추상 클래스 :
- 형식 : public abstract class 추상클래스이름 {}
- 추상메서드를 멤버로 가지고 있는 경우에는 반드시 추상클래스로 선언
- 직접 객체를 생성할 수 없는 클래스로서
서브클래스에서 상속받아 재정의한후 객체 생성 사용
- 따라서, 추상메서드가 없는 경우에도 상속을 강제하기 위해서 추상클래스로 선언하기도함
- 직접 객체를 생성할 수는 없지만 다형성을 적용한 부모타입의 변수로 사용가능
## 인터페이스
- 추상메서드와 상수로만 구성된 클래스형태
- 따라서, 직접 객체를 생성할 수 없는 클래스로서
서브클래스에서 구현받아 재정의한후 객체 생성 사용
- 부모타입의 참조변수로서 다형성적용해서 사용가능
- 다중 구현
- 컴파일시에 자동으로 상수와 추상메서드로 선언
public static final 타입 변수명;
public abstract 반환타입 메서드명();
- 서브클래스 구현 선언 방법 :
public class 클래스이름 implements 인터페이스이름1, 인터페이스이름n { }
- 선언방법: public interface 인터페이스이름 { }
- 부모인터페이스와 서브인터페이스와 관계는 extends 관계