본문

[2017.07.21] 02. 클래스 멤버 VS 인스턴스 멤버

인스턴스의 소유가 아닌 클래스 소유의 멤버가 존재한다는 것


클래스 멤버의 특징
1. 모든 인스턴스에서 같은 값 or 같은 메소드 (모든 인스턴스가 공유하는 변수 or 메소드)
2. 인스턴스를 생성하지 않아도 클래스를 통해 직접 변수 접근 가능

[클래스 변수]


[클래스 메소드]


장점

1. 메모리 절약


클래스 멤버와 인스턴스 멤버사이 관계

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Main {
    public static void main(String[] args) {
        Calculator c = new Calculator();
        c.static_static();                  // O
        c.static_instance();                // X
        c.instance_static();                // O
        c.instance_instance();              // O
        
        Calculator.static_static();         // O
        Calculator.static_instance();       // X
        Calculator.instance_static();       // X
        Calculator.instance_instance();     // X
    }
}
 
class Calculator {
    static int static_var = 1;
    int instance_var = 2;
    
    static void static_static( ) {
        System.out.println(static_var);
    }
    
    static void static_instance( ) {
        System.out.println(instance_var);
    }
    
    void instance_instance() {
        System.out.println(instance_var);
    }
    
    void instance_static() {
        System.out.println(static_var);
    }
}
cs


구분

가능 여부

접근 방법

From

To

인스턴스 변수로
접근

클래스 메소드

클래스 변수

O

인스턴스 변수

X

인스턴스 메소드

클래스 변수

O

인스턴스 변수

O

클래스로
직접 접근

클래스 메소드

클래스 변수

O

인스턴스 변수

X

인스턴스 메소드

클래스 변수

X

인스턴스 변수

X





#클래스 멤버 #인스턴스 멤버 #클래스 변수 #클래스 메소드


'컴퓨터 > 이론: 개발' 카테고리의 다른 글

[2017.08.01] 06. API, UI  (0) 2017.08.01
[2017.07.30] 05. 자바 컴파일  (0) 2017.07.30
[2017.07.25] 04. 오버라이딩과 오버로딩  (0) 2017.07.30
[2017.07.24] 03. 상속과 생성자  (0) 2017.07.30
JAVA 반복문 제어  (0) 2017.07.17

공유

댓글