달력

5

« 2024/5 »

  • 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
2017. 7. 2. 21:33

java 자바 클래스속성 접근지정자 C. Java2017. 7. 2. 21:33


접근지정자

 

 


 클래스
  -  클래스는 동일한 모양의 객체를 여러개 만들어 내기 위해 만든 모형이다.
     즉 어떠한 데이타와 어떠한 메소드를 사용하는 객체를 만들겠다는 정의이다.
     (Object[객체] = > Data + 메소드)
  -  자료형(프로그램적인 측면에서)
  -  특징은 은닉화(캡슐화), 다형성, 상속성, 추상화 이다.
 
 
 클래스 선언 형식 : 
-----------------------------------------------------------------
   클래스 선언부
   {
      속성 선언
      생성자 정의 [초기화작업]    //만약 선언을 하지 않아도 기본으로 디폴트 생성자가 생긴다.
      메서드 정의
    }
 -----------------------------------------------------------------
      
   class 클래스이름
  {
     접근지정자  자료형 변수이름;
     접근지정자  생성자() { }
     접근지정자  자료형 메서드이름() { }
    }
 ----------------------------------------------------------------
 
 
 접근지정자와 은닉화
 : 만약 누구나 멤버변수에 다 접근해서 값을 변경할수 있게 된다면 신뢰성이 떨어지게된다. 그래서
    접근 지정자를 이용하여 멤버변수인 데이터는 은닉시키고 메서드로 객체에 접근하도록 하는것.
 
   ex)------------------------------------------- class부
          class Animal
          {
              string name;
              private int age;
            }
   -------------------------------------------- 메인calss부
           public class AnimalMain
          {
              public static void main(String[] args)
              {
                  Animal a;                                        // 이부분은                  
                  a = new Animal();                           // 객체생성부분
                  a.name = "개";
                  a.age = 26; ----------------------------> error남 paivate 멤버이므로 접근 불가능
                                              
                 }
            }
 
 ========================================================================================
  속성의 접근 지정자를 private로 지정하게 되면 반드시 메서드를 통해서만 접근 가능한 멤버
  가 되므로
 
 그 속성에 대한값을 설정하는 메서드(setXXX) 알려주는 메서드(getXXX)
  추가
해야한다.
 ========================================================================================
 
 
      ex)------------------------------------------- class부
             class Animal
             {
                string name;
                private int age;
                                                                                 
                public void setAge(int new_age){ age = new_age; }
                public int   getAge { return age; }
               }
 
           -------------------------------------------- 메인calss부
               public class AnimalMain
              {
                  public static void main(String[] args)
                 {
                     Animal a;                                        // 이부분은                  
                     a = new Animal();                          // 객체생성부분
                     a.name = "개";
                  //a.age = 26; ----------------------------> error남 paivate 멤버이므로 접근 불가능
                     a.setAge(26);
                     system.out.println( a.getAge() );
                                             
                   }
                }
 


:
Posted by sfeg