일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitbash
- 워게임
- 웹개발
- 웹기초
- 자료구조
- 웹해킹기초
- 자바
- 이진트리
- 그래프
- nodeJS
- 웹해킹
- 포렌식워게임
- mongoose
- 자바문제풀이
- 워게임추천
- materialize
- GIT
- 포렌식
- 뷰
- Express
- CTF
- 이진탐색트리
- node
- node.js
- NavBar
- 써니나타스
- MongoDB
- wargame.kr
- 자바기초
- bootstrap
- Today
- Total
보안 전공생의 공부
클래스(2) | 접근 제어자, 정적변수·메소드 본문
(출처 : wikidocs.net/232 www.tcpschool.com/java/java_modifier_accessModifier )
◆ 접근 제어자 (Access Modifier)
- private → default → protected → public 순으로 보다 많은 접근 허용
(1) private
: 접근제어자가 private로 설정 → private이 붙은 변수, 메소드는 해당 클래스에서만 접근 가능
secret 변수와 getSecret메소드는 오직 Private 클래스에서만 접근 가능
(2) default
: 접근제어자를 별도로 설정 X → 접근제어자 無 변수, 메소드는 해당 패키지 내에서만 접근 가능
package가 practice로 동일한 Default, DefaultHome 클래스이다.
Default 클래스의 animal 변수는 접근제어자가 별도로 설정되어 있지 않은 default이다.
DefaultHome 클래스의 main메소드에서처럼 tiger.animal로 Default의 animal 변수에 접근 가능
(3) protected
: 접근제어자가 protected로 설정 → protected가 붙은 변수, 메소드는 동일 패키지 내 클래스or해당 클래스 상속받은 외부 패키지의 클래스에서 접근 가능
practice 패키지 내에 속한 SameClass 클래스
SameClass 클래스를 상속받은 ChildClass 클래스
이 둘의 패키지는 각각 practice , practice.other로 다르다.
SameClass 클래스 내 변수의 접근제어자가 protected이므로 다른 패키지 내에 있는 클래스에서 접근이 가능하다.
(4) public
: 접근제어자가 public으로 설정 → public이 붙은 변수, 메소드는 어떤 클래스에서라도 접근 가능
※ 정리
접근 제어자 | 같은 클래스의 멤버 | 같은 패키지의 멤버 | 자식 클래스의 멤버 | 그 외의 영역 |
public | ○ | ○ | ○ | ○ |
protected | ○ | ○ | ○ | X |
default | ○ | ○ | X | X |
private | ○ | X | X | X |
(출처 : wikidocs.net/228 )
◆ static
▶ static 변수
: 항상 값이 변하지 X 경우 사용 → 객체를 생성할 때마다 메모리를 별도로 할당할 필요 X
☞ 메모리 사용의 이점
static이 붙은 변수 lastname → 자바는 메모리 할당을 한 번만 함
+)) lastname이 변경되지 않길 원하면 static 앞에 final 붙이면 됨
<cnt 늘리기>
static이 붙은 cnt는 값이 공유되어 (같은 메모리를 가리키고 있기 때문에)
c1, c2, c3 객체 생성시 카운트가 증가된 값이 나오게 된다.
▶ static 메소드
: utiliy성 메소드를 작성할 때 많이 사용 ex) 오늘 날짜 구하기, 숫자에 콤마 추가하기 등
※ static 메소드 내에서는 인스턴스 변수 접근 불가능
+))util 클래스에 대해
<날짜를 구하는 util 클래스>
static메소드로써 getCurrentDate를 이용해 오늘 날짜를 구한다.
'Language > JAVA' 카테고리의 다른 글
상속, 다형성, 추상 클래스 (0) | 2021.02.14 |
---|---|
클래스 관련 문제풀이 (0) | 2021.01.31 |
객체지향프로그래밍에 대해 /클래스 (1) (0) | 2021.01.23 |
백준 2739번 (0) | 2021.01.18 |
백준 2839번(미완) (0) | 2021.01.18 |