본문 바로가기

Java/Java 객체지향프로그래밍

변수와 method

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