자바 오리엔테이션

클래스의 도입

이전 시간까지가 객체지향 이전의 프로그래밍 스타일이다. 이런 문제를 해결하기 위해서 언어차원에서의 솔루션을 모색하게 되었는데 그런 맥락에서 등장한 것이 객체지향 프로그래밍이다. (라고 생각하자)

package offline_tutorials;
class Calculator{
    public static int left;
	public static int right;
	public static void sum(int left, int right){
		System.out.println(left+right);
	}
}
class Employee{
	public static int period;
	public static int right;
	public static void sum(int period, int right){
		System.out.println("급여 : "+right*period);
	}
}
public class Company {
	public static void main(String[] args) {
		Calculator.left = 10;
		Calculator.right = 20;
		Calculator.sum(Calculator.left, Calculator.right);
		
		Employee.period = 2;
		Employee.right = 5000;
		Employee.sum(Employee.period, Employee.right);
	}
}

메소드의 간소화

이전 예제를 보자. 아래의 코드는 클래스 내에 left와 right 값을 할당하는 코드다.

Calculator.left = 10;
Calculator.right = 20;
Calculator.sum(Calculator.left, Calculator.right);

그런데 sum을 호출할 때 이미 Calculator에 저장된 값인 left, right을 다시 호출하고 있다. 불합리하다.

아래와 같이 코드를 변경해서 메소드의 호출을 간소화해보자.

class Calculator{
    public static int left;
	public static int right;
	public static void sum(){
		System.out.println(Calculator.left+Calculator.right);
	}
}
class Employee{
	public static int period;
	public static int right;
	public static void sum(){
		System.out.println("급여 : "+Employee.right*Employee.period);
	}
}
public class  Company {
	public static void main(String[] args) {
		Calculator.left = 10;
		Calculator.right = 20;
		Calculator.sum();
		
		Employee.period = 2;
		Employee.right = 5000;
		Employee.sum();
	}
}

 코드의 변화를 보자. 

Calculator.left = 10;
Calculator.right = 20;
Calculator.sum(Calculator.left, Calculator.right);

위의 코드가 아래와 같이 바뀌었다.

Calculator.left = 10;
Calculator.right = 20;
Calculator.sum();

 

댓글

댓글 본문