728x90
반응형
▶ 조건
인터페이스를 이용한 원, 정사각형, 삼각형의 넓이, 둘레 구하기
interface 명은 Shape이며, 하나의 상수와 2개의 메소드를 갖음
상수 : PI=3.14159 로 지정한다.
Method
double area() // 넓이
double perimeter() //둘레
3개의 각 클래스 Circle, Square, Triangle
생성자 Circle : Circle(), Circle(double radius)
Square : Square(), Square(double side)
Triangle : Triangle(), Triangle(double a, double, b, double, c)
삼각형의 넓이 구하는 공식은 아래와 같다.
sqrt(s*(s-a)*(s-b)*(s-c))
여기서 s =(a+b+c)/2.0;
sqrt 사용시 Math를 import 시켜야 한다.
HW1_2 class
각 원의 반지름과 정사각형 길이, 삼각형의 3꼭지점을 입력 받는다.
그리고 모든 결과를 출력 한다.
여기서 직접 계산하는 것이 아니다.
각 클래스의 메소드 호출해서 출력 해야 한다.
소스코드
Circle 클래스
public class Circle {
static double radius;
final double PI = 3.14159; // 원주율 변수 생성.
public Circle(double radius) {
this.radius = radius;
}
public double getRadius(double radius) {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double Area() {
return PI * radius * radius; // 원의 넓이 구하는 공식
}
public double Perimeter() {
return 2 * PI * radius; // 원의 들레 구하는 공식
}
}
Square 클래스
public class Square {
static double side;
public Square(double side) {
Square.side = side;
}
public double Area() {
return side * side; // 정사각형의 넓이 구하는 공식
}
public double Perimeter() {
return (side + side) * 2; // 정사각형의 둘레 구하는 공식
}
}
}
Tirangle 클래스
public class Triangle {
static double a, b, c, s;
public Triangle(double a, double b, double c) {
Triangle.a = a;
Triangle.b = b;
Triangle.c = c;
}
public double Area() {
s = (a + b + c) / 2.0;
return Math.sqrt(s * (s - a) * (s - b) * (s - c)); // Math함수를 사용하여 삼각형의
// 넓이 구하는 공식
}
public double Perimeter() {
return a + b + c; // 삼각형의 둘레 구하는 공식.
}
}
메인클래스
import java.util.Scanner;
public class HW1_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Circle circle = new Circle(3.1); //원 클래스 불러오기
Square square = new Square(3.1); //정사각형 클래스 불러오기
Triangle triangle = new Triangle(3.1, 3.1, 3.1); //삼각형 클래스 불러오기
Scanner scan = new Scanner(System.in);
System.out.println("======================\n학번: 20160000\n이름: 컴돌이\n======================");
System.out.println("원의 반지름을 입력하세요:");
Circle.radius = scan.nextInt(); //원의 반지름 입력받기.
System.out.println("정사각형의 길이를 입력하세요:");
Square.side = scan.nextInt(); //정삼각형의 길이 입력받기.
System.out.println("삼각형의 a점을 입력하세요:");
Triangle.a = scan.nextInt(); //삼각형 a점 입력받기.
System.out.println("삼각형의 b점을 입력하세요:");
Triangle.b = scan.nextInt(); //삼각형 b점 입력받기.
System.out.println("삼각형의 c점을 입력하세요:");
Triangle.c = scan.nextInt(); //삼각형 c점 입력 받기.
System.out.println("\t원\n넓이: " + circle.Area() + "\n둘레: " + circle.Perimeter()); //원의 넓이, 둘레 출력하기.
System.out.println("\t정사각형\n넓이: " + square.Area() + "\n둘레: " + square.Perimeter()); //정사각형의 넓이, 둘레 출력하기.
System.out.println("\t삼각형\n넓이: " + triangle.Area() + "\n둘레: " + triangle.Perimeter());//삼각형의 넓이, 둘레 출력하기.
}
}
◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요!
이상 문제 10번 입니다.
컴돌이블로그
#자바
728x90
반응형
'IT > Programming' 카테고리의 다른 글
[Java] GUI 그래픽 사용자 인터페이스 사용하기 (0) | 2020.03.04 |
---|---|
[Java] File I/O 출력 (0) | 2020.03.04 |
[Java] while문을 활용한 가위, 바위, 보 게임 (0) | 2020.03.04 |
[Java] 이중 do-while 문 (0) | 2020.03.04 |
[Java] do~while문을 활용한 출력 프로그램 (0) | 2020.03.04 |