728x90
반응형
객체지향 프로그래밍을 알기 위해서는 그게 왜 중요한지 부터 알아야 공부하는데 더 의욕이 생기겠지
코드를 여러번 만들어서 각자 그 효율성을 비교해보는것이 가장 좋은 방법일것이다.
public class MyOOP {
public static void main(String[] args) {
printA();
printA();
printA();
printB();
printB();
printB();
}
public static void printA() {
System.out.println("----");
System.out.println("A");
System.out.println("A");
}
public static void printB() {
System.out.println("----");
System.out.println("B");
System.out.println("B");
}
}
먼저 거의 첫번째로 쓴 코드
A와 B, 구분자를 출력하기 위한 코드이다. 늘상같이 1억개의 코드가 있다고 상상을 해보고 구분자가 "----"이 아니라 "****"인 코드도 있다고 생각해봤다.
굉장히 많은 비효율적인 코드를 써내려가야 한다.
그렇기 때문에 중간에 바뀌는 출력값을 입력하기 위한 코드는 parameter를 사용해서 쓰고싶은 구분자가 있을때마다 입력해주는 것이 있다.
public class MyOOP {
public static void main(String[] args) {
printA("----");
printA("----");
printA("----");
printB("****");
printB("****");
printB("****");
}
public static void printA(String delimiter) {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB(String delimiter) {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
근데 이거 역시 method를 호출할때마다 인자를 써줘야하는 번거로움이 있다.
코드를 다시 수정해보면..
public class MyOOP {
public static void main(String[] args) {
String delimiter = "----";
printA(delimiter);
printA(delimiter);
printA(delimiter);
delimiter = "****";
printB(delimiter);
printB(delimiter);
printB(delimiter);
}
public static void printA(String delimiter) {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB(String delimiter) {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
변수를 미리 정의하고 그 변수를 사용에 따라 바꿔주는 방법이 있다.
아니 근데 이것도 또 인자로 저 변수를 다 줘야하는게 너무 귀찮잖아.
그래서 최종의_최종의_최종 코드를 써본다.
public class MyOOP {
public static String delimiter = "";
public static void main(String[] args) {
delimiter = "----";
printA();
printA();
printA();
delimiter = "****";
printB();
printB();
printB();
}
public static void printA() {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB() {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
delimiter라는 변수를 가장 상위에 있는 Class 전역에서 사용할 수 있도록 먼저 지정을 해준다.
그리고 나서는 print method에서 사용해주면서 값이 바뀔때마다 새로 정의해주면
위에 쓴 코드들과 똑같은 결과값이 나오면서도 더 효율적으로 코드를 작성할 수 있게 됐다.
후후..
728x90
반응형
'Java > Java 객체지향프로그래밍' 카테고리의 다른 글
망했다 static (0) | 2020.11.26 |
---|---|
Instance (0) | 2020.11.26 |
클래스 more deeply (0) | 2020.11.25 |
클래스 존재 이유와 기본 형식 (0) | 2020.11.25 |
객체지향 프로그래밍 (0) | 2020.11.25 |