Day 13(8/17) public, private
2016. 8. 23. 15:19ㆍProgramming/Java
**오늘 배운 내용**
1) 접근 제어 지시자의 범위
2) 객체 지향 개념 정리
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 | public class L01SameClass { //서로 다른 접근 지정자를 가진 메소드 4개를 만들고 //클래스 내부에서 접근 시도 public L01SameClass(){ this.publicTest(); this.defaultTest(); this.protectedTest(); this.privateTest(); } public void publicTest(){ System.out.println("publicTest() 접근"); } void defaultTest(){ System.out.println("defaultTest() 접근"); } protected void protectedTest(){ System.out.println("protectedTest() 접근"); } private void privateTest(){ System.out.println("privateTest() 접근"); } public static void main(String[] args) { new L01SameClass(); //생성자 호출 } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import sun.applet.Main; public class L02OtherClass extends L01SameClass { public void L02OtherClasss(){ //상속관계 접근지정자 확인 super.publicTest(); super.defaultTest(); super.protectedTest(); //super.privateTest(); 접근 불가 }//생성자 public static void main(String[] args){ L01SameClass sc = new L01SameClass(); sc.publicTest(); sc.protectedTest(); sc.defaultTest(); //sc.privateTest(); 접근 불가 //private 접근 지정자는 class 내부에서만 사용 가능 } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class L03OtherPackage extends L01SameClass{ public L03OtherPackage(){ //상속 관계에서 다른 패키지의 클래스 접근 지정자 확인 super.publicTest(); //super.defaultTest(); 접근 X super.protectedTest(); //super.privateTest(); 당연히 X }//생성자 public static void main(String[] args){ L01SameClass sc = new L01SameClass(); sc.publicTest(); //sc.defaultTest(); //sc.protectedTest(); //sc.privateTest(); //public을 제외한 모든 접근 지정자는 외부(다른 패키지)에서 접근 불가 } } | cs |
/* 객체 지향 원칙(사람처럼 생각하도록)
* 1) 캡슐화: 사유재산 - 객체(변수+메소드 구조)
* 2) 정보 은닉: 프라이버시 - 접근 제한자(private)
* 3) 추상화: 설계도 - abstract, interface
* 4) 상속성: 유산 상속 - extends, super
* 5) 다형성: 저그 오버로드 - 같은 이름의 메소드 다른 인자 받음
*/
'Programming > Java' 카테고리의 다른 글
Day 15(8/19) Generic (0) | 2016.08.23 |
---|---|
Day 14(8/18) Final, Enum (0) | 2016.08.23 |
Day 12(8/16) Equals (0) | 2016.08.23 |
Day 11(8/15) Object, hashCode (0) | 2016.08.23 |
Day 10(8/12) Abstract, Interface (0) | 2016.08.16 |