[개발] - Java/Mega
[보충] 객체 지향 프로그래밍에 대한 이해
완벽한 장면
2023. 3. 29. 09:58
객체 지향 프로그래밍이란?
계산기 만들기
class Calculator {
static int result = 0;
static int add(int num) {
result += num;
return result;
}
}
public class Sample {
public static void main(String[] args) {
System.out.println(Calculator.add(3));
System.out.println(Calculator.add(4));
}
}
실행 흐름
- 클래스 Cal 가 실행된다.
- Cal 클래스의 main 메서드가 호출된다.
- Calculator.add(3) 이 호출된다.
- add 메서드에서 result 변수에 3이 더해진다. result 변수는 현재 3이다.
- result 변수인 3이 반환되고 System.out.println 을 이용하여 콘솔에 출력된다.
- Calculator.add(4) 이 호출된다.
- add 메서드에서 result 변수에 4가 더해진다. result 변수는 현재 7이다.
- result 변수인 7이 반환되고 System.out.println 을 이용하여 콘솔에 출력된다.
- main 메서드의 실행이 종료된다.
실행 결과
3
7
그런데, 계산기 값을 계산할 때마다 이 짓거리(?)를 맥락없이 계속 반복할 것인가? 그건 좀...
static을 빼면 된다.
Calculator cal1 = new Calculator(); // 계산기1 객체를 생성한다.
Calculator cal2 = new Calculator(); // 계산기2 객체를 생성한다.
------------
변화 이전
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 Sample {
public static void main(String[] args) {
System.out.println(Calculator1.add(3));
System.out.println(Calculator1.add(4));
System.out.println(Calculator2.add(3));
System.out.println(Calculator2.add(7));
}
}
실행 결과
3
7
3
10
변화 이후
static 제거
class Calculator {
int result = 0;
int add(int num) {
result += num;
return result;
}
}
public class Sample {
public static void main(String[] args) {
Calculator cal1 = new Calculator(); // 계산기1 객체를 생성한다.
Calculator cal2 = new Calculator(); // 계산기2 객체를 생성한다.
System.out.println(cal1.add(3));
System.out.println(cal1.add(4));
System.out.println(cal2.add(3));
System.out.println(cal2.add(7));
}
}
빼기 추가
class Calculator {
int result = 0;
int add(int num) {
result += num;
return result;
}
int sub(int num) {
result -= num;
return result;
}
}
728x90
반응형