개발자 도전기
[JAVA] 클래스 맴버, 인스턴스 맴버 (생활코딩 공부 정리) 본문
맴버란? 클래스 맴버와 인스턴스 맴버의 구분
-객체의 맴버란 메소드와 변수로 나눌 수 있다.
-앞에 static이 붙은 클래스 맴버와 그렇지 않은 인스턴스 맴버로 구분한다
인스턴스는 new 연산자를 통해 생성하여 참조변수 값에 담을 수 있다.
Tv t = new Tv();
에서 t는 참조변수, new는 연산자, Tv()는 생성자다.
클래스 맴버
- 클래스 메소드
- 인스턴스를 통하지 않고 클래스에서 바로 함수에 접근할 수 있다는 특징이 있다.
- '클래스 명.메소드 명()'으로 호출한다.
- 클래스 변수
- 인스턴스 변수가 같은 메소드에서 변수값을 다르게 주기 위해 사용된다면 클래스 변수는 고정된 변수값을 주기 위해 사용한다.
- '클래스명.변수명'으로 호출한다
인스턴스 맴버
- 인스턴스 메소드
- 인스턴스를 생성해 인스턴스마다 같은 인자값의 여러 메소드들을 사용할 수 있다.
- '참조 변수.메소드 명()'으로 호출한다
- 인스턴스 변수
- 인스턴스 생성시마다 새로운 변수가 생성된다
- '참조 변수.변수명'으로 호출한다.
타입별 비교
1. 인스턴스 메소드는 클래스 맴버에 접근 할 수 있다.
2. 클래스 메소드는 인스턴스 맴버에 접근 할 수 없다.
이유 : 클래스의 생성이 먼저고 인스턴스는 클래스 이후에 생성되는 것이기 때문에
public class Calculator2 {
int left, right;
static double PI = 3.14;
static int base = 0;
public void setOparands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right + base);
}
public void avg() {
System.out.println((this.left + this.right)/2 + base);
}
public static void main(String[] args) {
Calculator2 c1 = new Calculator2();
c1.setOparands(10,20);
c1.sum();
Calculator2 c2 = new Calculator2();
c2.setOparands(20,40);
c2.sum();
Calculator2.base = 10;
c1.sum();
c2.sum();
System.out.println(c1.PI);
System.out.println(c2.PI);
System.out.println(Calculator2.PI);
}
}
인스턴스가 setOparands 메소드를 통하는 이유?
: 같은 메소드를 사용하면서 동시에 여러개의 변수를 가질 수 있기 때문이다. c1, c2.. 마다 다른 변수값을 사용해야하기 때문에 setOparands 사용해서 인자값을 받아온다. 반면 클래스 메소드는 필요할때마다 인자를 주어서 사용한다.
'개발공부 > JAVA' 카테고리의 다른 글
[JAVA] 생성자 (생활코딩 공부 기록) (0) | 2024.01.30 |
---|---|
[JAVA] 유효범위-전역변수, 지역변수 (생활코딩 공부 정리) (0) | 2024.01.30 |
[JAVA] 클래스와 인스턴스 - 설계도와 제품 (0) | 2024.01.28 |
[JAVA] 객체 지향 프로그래밍 입문 (0) | 2024.01.28 |
[JAVA] 메소드의 출력 (0) | 2024.01.28 |