2015 IT 웹 기반 개발자과정/JAVA
JAVA 도형 면적 구하기 [상속 클래스]
by 한여름밤의코딩
2015. 11. 11.
작성 클래스명 : AreaMain.java
조건 :
- 메인 메소드를 구현합니다. 메인 메소드의 역할은 아래와 같습니다.
- 면적을 구할 도형의 종류를 표현할 랜덤한 숫자를 생성합니다.(1 ~ 4)
예> 1-정사각형, 2-직사각형, 3-삼각형, 4-원
- 생성된 숫자에 따라서
1, 4번일 경우는 도형의 면적을 구할 랜덤 숫자를 1개 합니다.
2, 3번일 경우는 도형의 면적을 구할 랜덤 숫자를 2개 생성합니다.
- 면적을 구할 랜덤 숫자까지 생성되었다면 각각의 도형의 면적을 구하는 클래스를 호출합니다.
- 출력결과는 아래와 같이 출력됩니다.
정사각형일 경우 : 정사각형의 면적은 9 입니다
직사각형일 경우 : 직사각형의 면적은 12 입니다
삼각형일 경우 : 삼각형의 면적은 6 입니다
원일 경우 : 원의 면적은 6 입니다
작성 클래스명 : Shape
조건 :
- public void area( ) 메소드 선언
작성 클래스명 : Rectangle (직사각형), Triangle (삼각형), Circle (원)
조건 :
- Shape 클래스를 상속
- 필요한 값들은 자유롭게 구현
작성 클래스명 : Square(정사각형)
조건 :
- Rectangle 클래스를 상속
- 필요한 값들은 자유롭게 구현
package src.kr.ac.jnu.day02.extend.homeWork;
public class Shape {
String name;
int width; //가로
int height; //세로
int r; //반지름
int area; //면적
static final double PI = Math.PI;
public Shape() {
}
public Shape(String name, int r){ //원, 정사각형
this.name = name;
this.r = r;
}
public Shape(String name, int width, int height) { // 사각형, 삼각형
this.name = name;
this.width = width;
this.height = height;
}
public void area(){
if(r==0) System.out.println("높이는 "+height + " 밑변은 " +width+ " 인 "+name+" 입니다.");
if(r!=0) System.out.println("반지름이 "+r + "인 "+name+" 입니다.");
System.out.println(name+"의 면적은 "+area+" 입니다.");
}
}
============================================================================================
package src.kr.ac.jnu.day02.extend.homeWork;
public class Rectangle extends Shape{
public Rectangle(String name, int width, int height){
super(name, width, height);
}
@Override
public void area(){
area= (width*height);
super.area();
}
}
============================================================================================
package src.kr.ac.jnu.day02.extend.homeWork;
public class Triangle extends Shape{
public Triangle(String name, int width, int height){
super(name, width, height);
}
@Override
public void area(){
area= (width*height)/2;
super.area();
}
}
============================================================================================
package src.kr.ac.jnu.day02.extend.homeWork;
public class Square extends Shape{
public Square(String name, int r){
super(name, r);
}
@Override
public void area(){
area= (r*r);
System.out.println("밑변이 "+r + "인 "+name+" 입니다.");
System.out.println(name+"의 면적은 "+area+" 입니다.");
}
}
============================================================================================
package src.kr.ac.jnu.day02.extend.homeWork;
public class Circle extends Shape{
public Circle(String name, int r){
super(name, r);
}
@Override
public void area(){
area= (int)((r*r)*PI);
super.area();
}
}
============================================================================================
package src.kr.ac.jnu.day02.extend.homeWork;
import java.util.Random;
public class areaMain {
public static void main(String[] args) {
Random r = new Random();
int Kind = r.nextInt(4)+1;
int rN = r.nextInt(10)+1;
int rN2 = r.nextInt(10)+1;
System.out.println("1-정사각형, 2-직사각형, 3-삼각형, 4-원");
System.out.println("랜덤 숫자는 "+Kind);
System.out.println("================================");
switch(Kind){
case 1 :
Square s1 = new Square("정사각형",rN);
s1.area();
break;
case 2 :
Rectangle r1 = new Rectangle("직사각형",rN,rN2);
r1.area();
break;
case 3 :
Triangle t1 = new Triangle("삼각형",rN,rN2);
t1.area();
break;
case 4 :Circle c1 = new Circle("원",rN);
c1.area();
}
}
}