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