Day 13(8/17) public, private

2016. 8. 23. 15:19Programming/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