Java
복수의 Class를 순차적으로 실행시킬 수 있다!?
나는 인디
2022. 7. 5. 22:44
Java 기초강의 수강중 무궁무진한 활용성에 무릎을 치지 않고는 버틸 수 없을 만큼의 감동을 받아 포스팅으로 남겨본다.
상속된 자녀클래스들이 공통된 이름의 메소드를 가지고 있을 때,
그리고 그런 메소드들을 순차적으로 호출하고 싶을 때 !
바로 아래의 방법을 쓰면 되겠다.
코드 먼저,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
class Calculator {
public void cal(int a, int b) {
System.out.printf("int a = %d\nint b = %d\n", a, b);
}
}
class Sum extends Calculator{
public void cal(int a, int b) {
System.out.println("곱셈 계산기");
System.out.println(a * b);
}
}
class Minus extends Calculator{
public void cal(int a, int b) {
System.out.println("뺄셈 계산기");
System.out.println(a - b);
}
}
class Multiply extends Calculator{
public void cal(int a, int b) {
System.out.println("곱셈 계산기");
System.out.println(a * b);
}
}
class Division extends Calculator{
public void cal(int a, int b) {
System.out.println("나눗셈 계산기");
System.out.println(a / b);
}
}
public class Wow {
public static void main(String[] args) {
// 각 클래스들을 담은 배열 생성
Calculator list1[] = {new Calculator(), new Sum(), new Minus(), new Multiply(), new Division()};
// 배열에 담긴 클래스 순차적 실행
for (Calculator rotation :
list1) {
rotation.cal(5, 2);
}
}
}
|
cs |
강의에 나온 기본실습 코드보다 조금은 실용성이 돋보이는 코드로 직접 작성해보았다.
(역시 실습코드는 한번 더 나만의 코드로 적어봐야 기억에 남는 것 같다.)
먼저 Calculator 라는 부모 클래스를 생성한다.
이 부모 클래스는 주어진 int a 와 b 를 한번 프린팅 해주는 cal() 메소드가 포함되어있다.
그리고 이 부모클래스를 상속받는 덧셈, 뺄셈, 곱셈, 나눗셈 클래스들을 생성했다.
각 클래스 안에는 맡은 계산을 수행하여 프린트하는 cal() 메소드가 포함되어있다.
마지막으로 이 코드의 하이라이트..
class 배열을 순차적으로 실행하는 감동의 코드..
나는 클래스들의 배열을 만들 수 있다는 것도,
클래스들의 배열을 순차적으로 실행할 수 있다는 것도 몰랐기에 감동받지 않을 수 없었다.
먼저 위에서 작성한 모든 클래스를 포함하는 클래스 배열을 만들어준다.
그리고 foreach문으로 하나씩 꺼내먹어줄 수 있게 만들어준다.
foreach 문에서 반복할 메소드와 변수를 선언해준다.
(메소드 이름이 같아야 하는 이유)
그 결과,
오늘도 잘 배웠다 😉