도형의 면적을 구하는 프로그램 작성하기
추상클래스 + 인터페이스
Drawable(인터페이스)
//도형을 그린다(원, 삼각형, 직사각형의 면전을 구한다)
public interface Drawable {
public void draw();
//동사형으로 씀(원인지 삼각형인지는 나중에 정해줌), abstract생략가능함
//public double area(int r); //원의 면적 => 추상클래스에서 작업하겠다는 의미
}
Shape(추상클래스)
//원의 면적, 직사각형의 면적을 구해서 출력시켜주는 역할(추상클래스)
public abstract class Shape {
//모든 도형에서 공통으로 사용할 멤버변수도 선언할 수 있음
public double res=0.0;//면적
//원의 면적
public abstract double area(int r);
//직사각형의 면적
abstract public int area(int x, int y);
//추상클래스의 장점-> 일반메소드도 존재가능
/*원의 면적을 계산했다면 원의 면적을 뽑는 것이고
* 직사각형의 면적을 계산했다면 직사각형의 면적을 뽑는 기능이 될 것임
*/
public void PrintArea() {
System.out.println("도형의 면적은"+res+"입니다");
}
}
ShapeTest(추상클래스를 상속하고 인터페이스를 구현하는 클래스)
import java.util.Scanner;
//형식) 자식클래스명 extends 추상클래스명 implements 부모인터페이스,,,
public class ShapeTest extends Shape implements Drawable {
@Override
public void draw() {
// TODO Auto-generated method stub
System.out.println("원, 직사각형의 면적을 구한다");
}
@Override
public double area(int r) {//원의 넓이
// TODO Auto-generated method stub
return (r*r*Math.PI);//Math.PI(정적 상수값)
}
@Override
public int area(int x, int y) {//직사각형 넓이
// TODO Auto-generated method stub
return (x*y);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);//ctrl+shift+o(자동 import)
System.out.println("원의 반지름을 입력?");
int r = sc.nextInt();
ShapeTest st = new ShapeTest();
st.res=st.area(r);//계산값을 저장
st.PrintArea();//저장된 값을 출력
}
}
'JAVA' 카테고리의 다른 글
[JAVA]AWT, Swing, 컨테이너, 컴포넌트, GUI 프로그램 만들기, 배치관리자, 이너클래스, Listener, Adapter (0) | 2021.02.01 |
---|---|
[JAVA]인터페이스, 인터페이스 상속, 인터페이스 구현 (0) | 2021.01.29 |
[JAVA]String 클래스 ==, equals()/Character 클래스/ wrapper 클래스 (0) | 2021.01.27 |
[JAVA]static/ final/ 추상클래스 추상메소드 (0) | 2021.01.26 |
[JAVA]자바 객체 생성/ CallByValue/ CallByReference (0) | 2021.01.25 |