BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2015. 4. 23. 00:05

non-static 멤버와 static 멤버의 특징

1. 눈은 각 사람마다 하나씩 있고, 공기는 오직 하나만 있어서 모든 사람이 공유한다는 차이점이 있다. 여기서 눈은 사람이라는 객체의 non-static 멤버(=인스턴스 멤버)이며, 공기는 static 멤버(클래스 멤버) 이다.

2. static 멤버는 클래스당 하나씩 생긴다고 해서 클래스 멤버라고도 부르며, non-static멤버는 각 객체마다 하나식 생긴다고 해서 인스턴스 멤버라고도 불부른다.

3. static 메소드는 객체가 생성되지 않은 상황에서도 사용이 가능하므로 객체를 생성하지 않고서는 직접 인스턴스 변수, 인스턴스 메소드 등을 사용할 수 없다. 그러나, 인스턴스 메소드는 static멤버들을 모두 사용할 수 있다.

4. public static void main(String args[]) 인 main 메소드도 static 메소드이고 객체를 생성해야만 사용할 수 있는 인스턴스 변수 및 인스턴스 메소드의 특성 때문에 객체를 생성되지 않은 상황에서 클래스 이름을 이용하여  인스턴스 변수 및 인스턴스 메소드를 사용할 수 없다고 하겠다. 사용하려면, 객체를 우선 생성한 후 인스턴스 변수와 인스턴스 메소드를 사용하여야 한다. 따라서 main 메소드에서 인스턴스 변수와 인스턴스 메소드 사용은 객체 생성이 필수적이다.

5. static 메소드에서는 this 키워드를 사용할 수 없다. static 메소드는 객체가 생성되지 않은 상황에서도 클래스 이름을 이용하여 호출이 가능하기 때문에 호출 당시 실행 중인 객체를 가리키는 this 연산자를 사용할 수 없다. 따라서, public static void main(String args[]) 인 main 메소드도 this 연산자 사용이 불가능 하다.

명품 JAVA Programming 황기태 저

인스턴스 변수와 지역변수의 차이점

1. 인스턴스 변수는 클래스 내에서 선언됩니다. 메소드 내에서 선언되는 것이 아닙니다.

class Horse {

  private double height = 15.2;

  private String breed;

  public int method() { .... }

}

 

2. 지역 변수(local variable)는 메소드 내에서 선언됩니다.

class AddThing {

  int a;

  int b = 12;

  public int add() {

    int total = a + b;

    return total;

  }

}

 

3. 지역변수는 사용하기 전에 반드시 초기화해야 합니다.

class Foo {

  public void go() {

    int x;

    int z = x + 3; // 컴파일 되지 않습니다.

}

오류메시지 : variable x miht not have been initialized.

반응형

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

protected 접근 제한자  (0) 2015.04.27
어노테이션(Annotation) #2  (0) 2015.04.23
어노테이션(Annotation) #1  (0) 2015.04.23
Getter와 Setter  (0) 2015.04.23
패키지와 접근 제한자  (0) 2015.04.23