상세 컨텐츠

본문 제목

JAVA Class와 Member

JAVA Language

by mobile 2010. 10. 30. 17:44

본문

반응형

1. 접근 제한자와 멤버 필드
- 접근 제한자의 종류
(1) private
: 가장 엄격한 제한자로 선언된 멤버가 자신의 클래스 내부에서만 사용되도록 제한
(2) protected
: private와 비슷한 속성을 지니는 제한자로 자신의 클래스 내부와 상속받은 하위 클래스 그리고 동일한 파일 내부 그리고 동일한 폴더에서만 사용되도록 제한한다.
(3) package
: 제한자를 사용하지 않았을 때를 나타내며 자신의 클래스 내부와 동일한 패키지들 간에 그리고 동일한 파일 내부에서만 사용되도록 제한한다. 일단 패키지라는 말은 동일한 폴더라고 생각하자
(4) public
: 객체가 선언되어 있는 곳이면 어디에서든 사용할 수 있다. 따라서 제한자라는 말과는 어울리지 않는다.


1.1 private 접근 제한자
- 멤버 필드
private [지정_예약어] 자료형(클래스형) 필드명 [=값];
- 멤버 메서드
private [지정_예약어] 결과형_리턴값 메서드명(매개_변수들) [throws 예외_클래스들] { 내용부}
- 생성자 메서드
private 클래스명(매개_변수들) [throws 예외_클래스들] {내용부}
- 클래스
private [지정_예약어] class 클래스명 [extends 상위_클래스] [implements 상위_인터페이스들] {내용부} (클래스에서 private 접근 제한자를 사용할 때에는 중첩 클래스만 허용된다.)


1.2 protected 접근 제한자
- 멤버 필드
protected [지정_예약어] 자료형(클래스형) 필드명 [=값];
- 멤버 메서드
protected [지정_예약어] 결과형_리턴값 메서드명(매개_변수들) [throws 예외_클래스들] { 내용부 }
- 생성자 메서드
protected 클래스명(매개_변수들) [throws 예외_클래스들] { 내용부 };
- 클래스
protected [지정_예약어] class 클래스명 [extends 상위_클래스] [implements 상위_인터페이스들] { 내용부; }(클래스에서의 protected 사용은 중첩 클래스에서만 허용된다.)

2. 멤버 필드와 멤버 메서드
클래스의 핵심 구성요소로 필드(Field)와 메서드(Method)가 있다. 필드는  각 데이터를 저장할 수 있는 공간이다. 이 공간들을 클래스라는 이름으로 묶어서 관리하기 편하도록 만든 것이다.

-필드의 선언
접근_제한자 [지정_예약어] 자료형(클래스형) 필드명 [=값];
ex) private static final double pi = 3.141592;

- 필드(Field)에 대한 지정 예약어들
(1) static
: 하나의 클래스로 발생된 모든 객체가 공유하는 필드를 선언할 때 사용된다. 때문에 객체명이 아닌 클래스명으로도 접근할 수 있다.
(2) final
: 상수형 필드로 한번 값이 정해지면 그 값을 변경하지 못하는 필드를 선언할 때 사용한다.
(3) static final
: static의 속성과 final의 속성이 혼합된 형태
(4) transient
: 임시 메모리 필드로 네트워크 전송이나 파일로의 전송 시에 그 값 자체가 없는 것과 같은 효과를 나타낼 필드를 선언할 때 사용한다.

- 메서드 선언 형식
접근_제한자 [지정_예약어] 결과형_리턴값 메서드명(매개_변수들) [throws 예외_클래스들]{
  내용부;
}
ex)
public static void main (String ar[]) throws IOException{
  System.out.println(“Test!!”);

protected final String toString(){
  return “Test”;
}

- 메서드에 대한 지정 예약어들
(1) static
: static 지정 예약어로 선언된 필드의 값을 처리하고자 할 때 사용하는 예약어로 static 메서드 내부에는 static 필드나 static 메서드만 올 수 있다. 또한 이 메서드 역시 클래스명으로 접근할 수 있다.
(2) final
: 생성자에서 보았듯이 모든 메서드는 오버로딩(Overloading)기능이 있다. 이 기능을 상속 관계에서 사용하게 되면 오버라이딩이라는 개념이 되는데 일반적으로 ‘메서드 재정의’라고 불린다. 그러나 final로 지정된 메서드는 오버라이딩(Overriding)을 할 수가 없다. 악의적인(?) 목적으로 특정 메서드를 오버라이딩하려는 사용자로 부터 프로그램이나 시스템을 보호하기 위해서이다.
(3) static final
: static의 기능과 final의 기능을 혼합한 형태이다.
(4) abstract
: 내용부 정의가 없는 추상 메서드를 선언할 때 사용한다. 이렇게 선언된 메서드는 반드시 오버라이딩(Overriding)되어야 한다.
(5) synchronized
: 특정 메서드의 실행이 여러 개의 스레드(Thread)로 인하여 중첩되어 수행되는 것을 방지하기 위해서 사용하는 예약어이다. 동기화라는 이름으로 많이 사용된다.
(6) native
: 순수한 자바의 개념으로 구현할 수 없거나 이미 만들어진 다른 언어의 코딩을 자바 내부 메서드의 코딩처럼 사용하기 위해 선언된 메서드의 지정 예약어로 사용한다.

반응형

'JAVA Language' 카테고리의 다른 글

Editplus에서 컴파일하고 실행할 수 있도록 설정하는 방법  (0) 2011.06.25
Exercise JAVA Class  (0) 2010.10.30
JAVA CLASS  (0) 2010.10.24
JAVA Method  (0) 2010.10.23
JAVA의 기본 입,출력  (0) 2010.10.18

관련글 더보기

댓글 영역