HRD_훈련/JAVA

[JAVA] 추상 클래스와 인터페이스 실습 (15일차)

리드미. 2023. 6. 5. 19:57
728x90
반응형

<오늘의 학습>

1. 추상 클래스

2. 인터페이스

3. 패키지

4. Object 클래스

5. Wrapper 클래스

6. String 객체

7. Math 클래스

 

 

1.  추상클래스

▶ Calculator 코드

public abstract class Calculator {
	public abstract int add(int a, int b);
	public abstract int subtract(int a, int b);
	public abstract double average(int[] a);
}

 

 

▶GoodCalc 코드

public class GoodCalc extends Calculator{
	@Override
	public int add(int a, int b) {
		return a+b;
	}

	@Override
	public int subtract(int a, int b) {
		return a-b;
	}

	@Override
	public double average(int[] a) {
		int sum=0;
		for(int num:a)
			sum+=num;
		
		return (sum/a.length);
	}
}
  • 추상클래스는 서브 클래스에서 재정의(오버라이딩) 해야 오류가 나지 않는다.

 

 

 

2.  인터페이스 작성

  • 인터페이스 Calc 작성
  • 메소드명:Add, Sub, Mul, Div
  • 리턴:int
  • 매개변수(파라미터):int 값 두 개
  • 인터페이스를 상속받는 클래스를 작성하여 출력

 

▷ 예제

▶ Calc 코드

public interface Calc {
	int Add(int a, int b);
	int Sub(int a, int b);
	int Mul(int a, int b);
	int Div(int a, int b);
}

 

▶ CalcClass 코드

public class CalcClass implements Calc{
	@Override
	public int Add(int a, int b) {
		return a+b;
	}

	@Override
	public int Sub(int a, int b) {
		return a-b;
	}

	@Override
	public int Mul(int a, int b) {
		return a*b;
	}

	@Override
	public int Div(int a, int b) {
		return a/b;
	}
}

※ 곱셈과 나눗셈은 0 값에 대한 예외 처리가 필요하다.
ex) try{
       }catch (Exception e){
                 System.out.println("0 값이 입력되었습니다.");
       }

 

▶ main 코드

public interface Calc {
	int Add(int a, int b);
	int Sub(int a, int b);
	int Mul(int a, int b);
	int Div(int a, int b);
}

 

▶ 출력 결과

덧셈:15
뺄셈:5
곱셈:50
나눗셈:2

 

 

 

인터페이스 실습 내용

 

[JAVA] 인터페이스의 추상 메소드를 구현한 클래스 작성하기

문제 public interface ArrayInterface { //int array[]={3,5,2,4,1}; //배열의 가장 큰 값과 작은 값의 차이 int MaxSubMin(int[] a); //배열의 가장 큰 값을 맨 마지막 값과 위치 바꾸기 void MaxChange(int[] a); } 인터페이스 Ar

deliciouscode.tistory.com

 

 

 

 

다음 학습

 

[JAVA] 패키지와 Object 클래스 (15일차)

 

deliciouscode.tistory.com

 

728x90
반응형