JAVA 기초공부

JAVA - 객체 지향 프로그래밍이란?

Dotae1 2025. 2. 4. 19:39

완벽하게 이해가 된 것 같지는 않지만 어느정도 내가 이해한대로 설명을 해보려고 합니다.

 

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