반응형
# 클래스 맴버와 인스턴스 맴버
- 맴버는 구성원으로서, 객체도 변수, 메소드라는 구성원이 존재한다.
# 클래스 변수 와 인스턴스 변수
- 인스턴스 변수 : 인스턴스마다 다른 값을 가지는 변수
- 클래스 변수 : 해당 클래스에 따라 만들어진 모든 인스턴스들은 클래스가 가지고있는 변수의 값을 자연스럽게 갖게 된다.
- static : static을 맴버(변수, 메소드) 앞에 붙이면 클래스의 맴버(클래스 변수)가 된다.
- 클래스 변수의 사용 용도 : 인스턴스에 따라 변하지 않는 값이 필요한 경우(PI), 인스턴스를 생성할 필요 없는 값을 클래스에 저장하고 싶은 경우, 값의 변경 사항을 모든 인스턴스가 공유해야 하는 경우
class Calculator2 {
static double PI = 3.14;
// 클래스 변수인 base가 추가되었다.
static int base = 0;
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
// 더하기에 base의 값을 포함시킨다.
System.out.println(this.left + this.right + base);
}
public void avg() {
// 평균치에 base의 값을 포함시킨다.
System.out.println((this.left + this.right + base) / 2);
}
}
class Main {
public static void main(String[] args) {
Calculator2 c1 = new Calculator2();
c1.setOprands(10, 20);
// 30 출력
c1.sum();
Calculator2 c2 = new Calculator2();
c2.setOprands(20, 40);
// 60 출력
c2.sum();
// 클래스 변수 base의 값을 10으로 지정했다.
Calculator2.base = 10;
// 40 출력
c1.sum();
// 70 출력
c2.sum();
}
}
반응형
'알고리즘 > 프로그래머스, 백준, 구름' 카테고리의 다른 글
백준_if문 (0) | 2022.03.10 |
---|---|
백준_입출력과 사칙연산 (0) | 2022.03.09 |
[구름] 객체화, 클래스, 인스턴스 (0) | 2020.11.13 |
[구름] 객체 지향 프로그래밍(Object-Oriented Programming) (0) | 2020.11.11 |
[구름] 앱 실행중 데이터 입력(Scanner, hasNextInt), 여러형태로 입출력(파일로 입력받기, GUI) (0) | 2020.11.11 |