완벽하게 이해가 된 것 같지는 않지만 어느정도 내가 이해한대로 설명을 해보려고 합니다.
class Calculator {
static int result = 0;
static int add(int num){
result+=num;
return result;
}
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println(Calculator.add(3));
System.out.println(Calculator.add(5));
}
}
위 코드를 실행해 본다면 당연히 출력값은 3, 8이 출력이 될 것이다. 하지만 여기서 계산기 2개가 필요하다고 하면 각 계산기마다 결과값을 따로 저장하고 있어야하기 때문에 1개의 계산기로는 결과값을 따로 유지할 수가 없다.
** static변수는 저장된 값을 계 유지하기 위해 사용했다고 생각하면 된다.**
class Calculator1 {
static int result = 0;
static int add(int num){
result+=num;
return result;
}
}
class Calculator2 {
static int result = 0;
static int add(int num){
result+=num;
return result;
}
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println(Calculator1.add(3));
System.out.println(Calculator1.add(5));
System.out.println(Calculator2.add(2));
System.out.println(Calculator2.add(4));
}
}
그렇기에 위 코드와 같이 클래스를 하나 더 생성하여 각각 계산기의 계산값을 유지해야 한다. 만약 여기서 계산기가 x개가 필요하다면 클래스를 x개를 만들어야하고 add 뿐만 아니라 뺄셈이나 곱하기등이 추가된다면 더욱 복잡해질것이다.
이는 객체를 안다면 쉽게 해결할 수 있다고 한다.
class Calculator {
int result = 0;
int add(int num){
result+=num;
return result;
}
}
public class HelloWorld {
public static void main(String[] args) {
Calculator cal1 = new Calculator();
Calculator cal2 = new Calculator();
System.out.println(cal1.add(3));
System.out.println(cal1.add(5));
System.out.println(cal2.add(2));
System.out.println(cal2.add(4));
}
}
이처럼 Calculator cal1 = new Calculator을 통해 새로운 계산기 객체를 2개 생성한 후 각각의 연산을 한다면 클래스를 2개만든것과 같은 실행결과가 나오게 된다. 똑같이 각 객체마다 결과값을 저장하고 있다. 또한 뺄셈을 추가한다면 Calculator클래스에 추가하기만 해주면 된다.
class Calculator {
int result = 0;
int add(int num){
result+=num;
return result;
}
int sub(int num){
result-=num;
return result;
}
}
public class HelloWorld {
public static void main(String[] args) {
Calculator cal1 = new Calculator();
Calculator cal2 = new Calculator();
System.out.println(cal1.add(3));
System.out.println(cal1.add(5));
System.out.println(cal2.add(2));
System.out.println(cal2.add(4));
}
}
이처럼 각각의 객체만 생성할 줄 안다면 클래스를 매번 만들 필요도 없고 코드의 가독성도 좋아지기때문에 왜 객체가 필요할까에 대한 궁금증은 조금 해결이 된 것 같다.
'JAVA 기초공부' 카테고리의 다른 글
| JAVA - 메서드 (0) | 2025.02.05 |
|---|---|
| JAVA - 클래스 (1) | 2025.02.04 |
| JAVA 기초공부(6) - 제어문 (1) | 2025.02.04 |
| JAVA 기초공부(5) - 자료형3 (1) | 2025.02.03 |
| JAVA 기초공부(4) - 자료형2 (0) | 2025.02.03 |