반응형
접근제어 지시자 표
지시자 | 클래스 내부 | 동일 패키지 | 상속받은 클래스 | 이외의 영역 |
private | O | X | X | X |
default | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
public > protected > default > private
1. 공개/비공개 메소드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package test; class Student { private int age; private String name; // 공개메소드는 public! public void displayStudentInformation() { displayAge(); displayName(); } // 내부적으로 쓰이는 메소드는 private! private void displayAge() { System.out.println("age : " + age); } private void displayName() { System.out.println("name : " + name); } } | cs |
2. private / protected 상속
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package test; class Car { public int a; // 모두 접근 가능! private int b; // 무조건 자신(Car) 클래스에서만 접근이 가능함! protected int c; // 자신클래스와 자식클래스에서만 접근 가능! public void method() { a = 100; b = 100; c = 100; } } class Bus extends Car { public void bus() { a = 200; // b = 300; error! c = 400; } } | cs |
3. public class
- public으로 정의된 class는 모든 패키지에서 접근 가능.
- public으로 정의되지 않은 class는 다른 패키지에서 접근이 불가능함.
- public class는 xxx.java 에서 오직 하나만 정의할 수 있음
4. 포인터
1 2 3 4 5 6 7 8 9 | class Test { public static void main(String[] args) { Student student1 = new Student(); // studuent1은 인스턴스의 주소를 담고 있음! 포인터 변수! // 인스턴스의 주소를 담기 위해 4byte가 필요함(32bit 컴퓨터인경우) // new Student는 인스턴스! } } | cs |
반응형
LIST
'개발 > Java' 카테고리의 다른 글
객체지향프로그래밍의 이해와 자바의 이름규칙 (0) | 2018.05.19 |
---|---|
메모리 구조 (0) | 2018.05.19 |
구조체란? (0) | 2018.05.19 |
17 abstract 클래스 (0) | 2018.05.19 |
상속에 있어서의 인스턴스 참조관계 일반화 정리 (0) | 2018.05.19 |