2013년 9월 28일 토요일

자바클래스 변수,클래스 메소드[JAVA,JDK교육강좌,자바객체] 클래스 내의 모든 객체가 공유하는 전역 데이타와 전역 메쏘드 static 키워드 이용 [예] static int nextID; static int getNextID()

자바클래스 변수,클래스 메소드[JAVA,JDK교육강좌,자바객체]
 
클래스 내의 모든 객체가 공유하는 전역 데이타와 전역 메쏘드
static 키워드 이용
 
[예]

static int nextID;
static int getNextID() { ... }
 
메쏘드 영역(Method Area)에 만들어짐
 
- 접근 방법 3가지

클래스 이름 이용
Person.getName();
 
클래스 이름 생략
getName();
 
객체 참조값 이용
person.getName();

[static 키워드]
 
- static 멤버 필드(클래스 필드)

static으로 정의된 멤버변수는 전역(공유)의 뜻한다
모든 객체에서 공통으로 사용하는 메모리
메서드 내에는 static변수를 선언할 수 없다.
- static 멤버 메서드(클래스 메서드)
자동으로 final 메서드가 됨(overriding불가능)
 
- static 초기화 블록

객체가 생성되기 전에 static영역의 메모리를 제어하기 위한 블록
Static 메모리는 객체가 생성되기 전에 클래스명으로 접근이 가능

[예제]
 
package onj;
public class StaticTest {
 
 //ststic은 초기화가 한번만
 private static int sint=0;
 
 // ststic은 매번 new 될때 마다 초기화되어 객체에 할당
 private int nint = 0;
 
 public StaticTest(){
  sint = sint +1;
  nint = nint +1;
 }
 
 public void display() {
  System.out.println("sint:" + sint +  " nint:" + nint);
 }
 
 public static void main(String[] args) {
  StaticTest s;
  for(int i=0; i<5; i++) {
   s = new StaticTest();
   s.display();
  }
 }
}
 
[결과]
 
sint:1 nint:1
sint:2 nint:1
sint:3 nint:1
sint:4 nint:1
sint:5 nint:1



오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  


댓글 없음:

댓글 쓰기