티스토리 뷰

접근 제한자와 멤버필드 정리

[출처 : http://m.blog.naver.com/wkfoa/130166557937]


접근 제한자와 멤버필드

   ◎접근 제한자: 클래스 내의 멤버에 접근을 제한하기 위한 예약어

   

   ◎접근 제한자의 종류

  ①private :  

 하나의 클래스 내에서만 사용가능한 멤버를 지정할 때 사용하는 제한자, 

외부에서 사용불가

 ②protected :

 자신의 클래스 내부와 상속받은 하위 클래스 그리고 동일한 파일 내부 

동일한 폴더에서만 사용되도록 제한(단 모든 멤버를 사용할수 있음)

 ③package :

 제한자를 사용하지 않을 때를 나타냄 클래스 내부와 동일한 패키지, 

동일한 파일 내부에서만 사용되도록 제한 

 ④public :

 객체를 가진 모든영역에 사용 

 

   ◎private 접근 제한자 

-OOP의 특징 중에 하나인 캡슐화의 은닉성을 강화하는 예약어 메모리는 할당되나 사용범위는 해당 

  멤버가 선언된 클래스로 국한됨        

-지정된 멤버는 자신의 클래스 내부에서 객체발생의 유무와 관계없이 사용할 수 있지만 

  서로 다른 클래스에서는 사용할 수 없다(메서드 생성자도 동일) 

 

-형식_ private 접근 제한자

⊙멤버 필드

    private [지정_예약어] 자료형(클래스형) 필드명 [=값];   

⊙멤버 메서드

    private [지정_예약어] 결과형_리턴값 메서드명(매개_변수들)[throws 예외_클래스들]{내용부;} 

⊙생성자 메서드

    private 클래스명(매개_변수들)[throws 예외_클래스들]{내용부;}

⊙클래스

    private[지정_예약어]class 클래스명[extends 상위_클래스][implements 상위_인터페이스]{내용부;}

    (클래스에서 private 접근제한자를 사용할 때에는 중첩 클래스에서만 허용된다.)

  

   ◎protected 접근 제한자

-동일한 클래스나 동일한 파일혹은 상속관계의 클래스에서는 사용할 수 있는 멤버

 

-형식_protected 접근 제한자

⊙멤버필드

    protected[지정_예약어] 자료형(클래스형)필드명[=값];

⊙멤버 메서드

    protected [지정_예약어] 결과형_리턴값 메서드명(매개_변수들)[throws 예외_클래스들]{내용부;} 

⊙생성자 메서드

     protected 클래스명(매개_변수들)[throws 예외_클래스들]{내용부;}

⊙클래스

     protected[지정_예약어]class 클래스명[extends 상위_클래스][implements 상위_인터페이스]{내용부;}

     ( protected 사용은 중첩 클래스에서만 허용)

 

   ◎package 접근 제한자

-접근제한자를 사용하지 않는 형태

-NONE, friendly형이라고 함

 

   ◎public 접근 제한자

-객체만 발생하면 내용부를 어디든 사용할 수 있음

 

●멤버 필드(Member Field)

   ◎형식_ 필드의 선언

접근_제한자 [지정_예약어] 자료형 (클래스형) 필드명 [=값];

ex) private static final double pi= 3.141592;

     public transient String str= "Member Field";

 

   ◎Field에 대한 지정 예약어

 ①static :

하나의 클래스로 발생된 모든 객체가 공유하는 필드를 선언 할때 사용

객체명이 아닌 클래스명으로 접근 

 ②final :

상수형 필그로 한번 값이 지정되면 값을 변경하지 못하는 필드를 

선언할 때 사용

 ③static final :

static의 속성과 final의 속성이 혼합된 형태 

 ④transient :

임시 메모리 필드, 네트워크로의 전송이나 파일전송 시에 그 값 자체가 없는 

것과 같은 효과를 나타낼 필드를 선언할 때 사용 

 

●멤버 메서드(Member Method)

   -필드의 데이터를 보여주거나 값변경,등의 행위를 나타냄

   

   ◎형식_ 메서드 선언

접근_제한자 [지정_예약어] 결과형_리턴값 메서드명(매개_변수들)[throws 예외 클래스]

{      내용부;

·······

내용부;

ex)

public static void main(String[] args) throws IOException 

{             System.out.println("kim"); }

protected final String toString() { return "kim";}

 

 

 

   ◎Method에 대한 지정예약어

①static :

 

static 지정예약어로 선언된 필드 값을 선언 할 때 사용하는 예약어

static 메서드 내부에는 static 필드나 static 메서드 만 올 수 있다. 

②final :

 

final로 지정된 메서드는 Overriding을 할 수 없다.

 

③static final :

static 기능과  final의 기능를 혼합한 형태 

 

④abstract :

 

내용부의 정의가 없는 추상메서드를 선언 할 때 사용

선언된 메서드는 반드시 Overriding되어야 한다. 

⑤synchronized :

 

특정 메서드의 실행이 여러개의 Thread로 인하여 중첩되는 것을 

방지하기 위해 사용하는 예약어 동기화라는 이름으로 많이 사용

 native :

 

 

순수한 java의 개념으로 구현할 수 없거나 이미 만들어진 다른 언어의 

코딩을 자바 내부 메서드의 코딩처럼 사용하기 위해 선언된 

메서드의 지정 예약어로 사용 

 

※메서드의 Overriding

한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 Overloading 기능을 상속관계에 사용시 

Overriding이라는 개념이된다. 일반적으로 메서드 재정의 라고 불린다. 

Recent Comments