접근 제한자와 멤버필드 정리
[출처 : 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";}
[출처] 10. 자바 클래스와 멤버|작성자 외계인셩
[출처] 10. 자바 클래스와 멤버|작성자 외계인셩
◎Method에 대한 지정예약어
①static :
| static 지정예약어로 선언된 필드 값을 선언 할 때 사용하는 예약어 static 메서드 내부에는 static 필드나 static 메서드 만 올 수 있다. | ||
②final :
| final로 지정된 메서드는 Overriding을 할 수 없다.
| ||
③static final : | static 기능과 final의 기능를 혼합한 형태
| ||
④abstract :
| 내용부의 정의가 없는 추상메서드를 선언 할 때 사용 선언된 메서드는 반드시 Overriding되어야 한다. | ||
⑤synchronized :
| 특정 메서드의 실행이 여러개의 Thread로 인하여 중첩되는 것을 방지하기 위해 사용하는 예약어 동기화라는 이름으로 많이 사용 | ||
⑥ native :
| 순수한 java의 개념으로 구현할 수 없거나 이미 만들어진 다른 언어의 코딩을 자바 내부 메서드의 코딩처럼 사용하기 위해 선언된 메서드의 지정 예약어로 사용 |
※메서드의 Overriding
한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 Overloading 기능을 상속관계에 사용시
Overriding이라는 개념이된다. 일반적으로 메서드 재정의 라고 불린다.
'📁 공부정리 > JAVA' 카테고리의 다른 글
for문 기본개념 (1) | 2016.06.13 |
---|---|
JAVA 설치 방법 참고사이트 (0) | 2016.06.13 |
멤버필드 , 접근 지정자 등 / 용어정리 (0) | 2016.06.10 |
JAVA 160610 class 상속 (0) | 2016.06.10 |
자바 다형성(java polymorphism), 메소드재정의, 다중정의(method overrding, method overloading) (0) | 2016.06.09 |