728x90
반응형
연산
MathUtil.interface
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package math; public interface MathUtil { // 매개변수로 받은 두 수 중 작은 수를 리턴. int getMin(int a, int b); // 매개변수로 받은 반지름을 가진 원의 둘레 리턴. //단, 매개변수로 들어온 반지름이 음수라면 // 둘레는 0이 되어야 함. double getCircleArea(int radius); //첫번째 매개변수로 받은 수의 n제곱 값을 리턴 // 첫번째 매개변수 : 3 // 두번째 매개변수 : 4 // 3 * 3 * 3* 3 - ? int getMultipul(int num1, int num2); } | cs |
MathUtil 인터페이스를 하나 생성하였다.
이것은 회사가 제시한 요구사항과도 같다. 메소드 이름과, 매개변수를 몇개 사용할지 이러한 것들은 개발자마다 다 정하는 방식이 다르다.
즉, 모든 개발자가 이러한 메소드로 생성하라는 의미로 통일시켜주기 위해 사용하는 것이다.
MyMath.class
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 47 48 49 50 51 | package math; public class MyMath implements MathUtil{ @Override public int getMin(int a, int b) { if( a > b) { System.out.println("a : " + a + " b : " + b); System.out.println(b); return b; } else if( a == b) { System.out.println("같다."); return 0; } else { System.out.println("a : " + a + " b : " + b ); System.out.println(a); return a; } // return a > b ? b : a ; 로 바로 풀순있다. } @Override public double getCircleArea(int radius) { if(radius < 0) { return 0; } return radius * 2 * Math.PI; } @Override public int getMultipul(int num1, int num2) { int sum = 1; for(int i =0; i<num2; i++) { sum = sum * num1; } return sum; } } | cs |
MathTest (Main 메소드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package math; public class MathTest { public static void main(String[] args) { MyMath m = new MyMath(); m.getMin(2,5); MyMath m2 = new MyMath(); System.out.println(m2.getCircleArea(3)); MyMath m3 = new MyMath(); System.out.println(m3.getMultipul(3,3)); } } | cs |
배열
MyArrayUtil.interface
1 2 3 4 5 6 7 8 9 10 11 12 | package array; public interface MyArrayUtil { //매개변수로 받은 두 정수형 배열의 모든 요소의 평균을 리턴 double getTwoArrayAvg(int[] arr1, int[] arr2); //매개변수로 받은 배열의 모든 요소가 짝수이면 //true, 배열 요소 중 하나라도 홀수면 false 리턴 boolean isEvenArray(int[] array); } | cs |
MyArray.class
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 | package array; public class MyArray implements MyArrayUtil{ @Override public double getTwoArrayAvg(int[] arr1, int[] arr2) { int sum1 = 0; for(int i=0; i< arr1.length; i++) { sum1 = sum1 + arr1[i]; } int sum2 = 0; for(int i=0; i< arr2.length; i++) { sum2 = sum2 + arr2[i]; } double evg = (sum1 + sum2) / (double)(arr1.length + arr2.length); return evg; } @Override public boolean isEvenArray(int[] array) { for(int i =0; i< array.length; i++) { if(array[i] % 2 != 0) { return false; } } return true; } } | cs |
MyArrayTest (Main메소드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package array; import java.util.Scanner; public class MyArrayTest { public static void main(String[] args) { MyArray myArr = new MyArray(); // MyArrayUtil myArr1 = new MyArray(); 이렇게도 만들 순 있음. int a[] = {1,2,3,4,5}; int b[] = {6,7,89}; double result1 = myArr.getTwoArrayAvg(a,b); System.out.println(result1); int c[] = {2,2,2,2}; boolean result2 = myArr.isEvenArray(c); System.out.println(result2); } } | cs |
인터페이스는 곧 약속중 하나로만 생각하자.
어차피 코드짜는 것은 Main메소드에서 Class 값을 호출하는 방식과 똑같다.
728x90
반응형
'✨ Java > 인터페이스(Interface)' 카테고리의 다른 글
자바(JAVA) - 인터페이스 (Interface) 학생 점수 (0) | 2023.02.15 |
---|---|
자바(JAVA) - 인터페이스 (Interface) 기초2 (0) | 2023.02.02 |
자바(JAVA) - 인터페이스 (Interface) 기초 1 (0) | 2023.02.02 |
댓글