Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
071, CircleTest - Java 클래스와 인스턴스 : 원의 클래스 설계, Test71 클래스에서 CircleTest에 선언된 메소드들로 원의 넓이와, 둘레를 구해 출력하는 프로그램. 본문
[Java]/Program source (java)
071, CircleTest - Java 클래스와 인스턴스 : 원의 클래스 설계, Test71 클래스에서 CircleTest에 선언된 메소드들로 원의 넓이와, 둘레를 구해 출력하는 프로그램.
Jelly-fish 2023. 9. 4. 15:03[CircleTest.java]
/*========================================
■■■ 클래스와 인스턴스 ■■■
=========================================*/
// ※ Test071.java 파일과 한 세트~!!!
// 원의 넓이와 둘레 구하기
// 원의 넓이와 둘레를 구할 수 있는 클래스를 설계한다.
// (클래스명 : CircleTest)
// 입력은 BufferedReader 의 readLine()
// ※ 원의 넓이 = 반지름 * 반지름 * 3.141592
// 원의 둘레 = 반지름 * 2 * 3.141592
// 실행 예)
// 반지름 입력 : xxx
// >> 반지름이 xxx 인 원의
// >> 넓이 : xxxx.xx
// >> 둘레 : xxxx.xx
// 계속하려면 아무 키나 누르세요...
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class CircleTest
{
// 주요 속성(데이터, 상태) → 멤버 변수
int r; //-- 반지름
final double PI = 3.141592; //-- 원주율(변수의 상수화)
// 주요 기능(동작, 행위) → 멤버 메소드
// 반지름 입력 기능
// 예외를 발생시킬 수 있는 곳에 반드시 IOException을 넣어 주어야 한다.
// input() 메소드도, 외부로부터 입력을 받아오기 때문에 IOException을 넣어 주어야 한다.
void input() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("반지름 입력 : ");
r = Integer.parseInt(br.readLine());
}
// 넓이 계산 기능
double calArea()
{
// 원의 넓이 = 반지름 * 반지름 * 3.141592
return r * r * PI;
}
// 둘레 계산 기능
double calLength()
{
// 원의 둘레 = 반지름 * 2 * 3.141592
double result;
result = 2 * PI * r;
return result;
}
// 결과 출력 기능
void print(double a, double l)
{
// >> 반지름이 xxx 인 원의
// >> 넓이 : xxxx.xx
// >> 둘레 : xxxx.xx
System.out.printf("\n>> 반지름이 %d인 원의\n", r);
System.out.printf(">> 넓이 : %.2f\n", a);
System.out.printf(">> 둘레 : %.2f\n", l);
}
}
/*[내가 한 풀이]==========================================================
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class CircleTest
{
int r; //>> 사용자의 반지름 입력값.
void input() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("반지름 입력 : ");
r = Integer.parseInt(br.readLine());
}
double circleArea()
{
double result;
result = r * r * 3.141592;
return result;
}
double circleLength()
{
double result;
result = 2 * 3.141592 * r;
return result;
}
// >> 반지름이 xxx 인 원의
// >> 넓이 : xxxx.xx
// >> 둘레 : xxxx.xx
// 계속하려면 아무 키나 누르세요...
void print(double a, double b)
{
System.out.printf("\n>> 반지름이 %d 인 원의", r);
System.out.printf("\n>> 넓이 : %7.2f", a);
System.out.printf("\n>> 둘레 : %7.2f\n\n", b);
}
}
==========================================================================*/
Test071.java
/*========================================
■■■ 클래스와 인스턴스 ■■■
=========================================*/
// ※ Test071.java 파일과 한 세트~!!!
// 원의 넓이와 둘레 구하기
// 원의 넓이와 둘레를 구할 수 있는 클래스를 설계한다.
// (클래스명 : CircleTest)
// 입력은 BufferedReader 의 readLine()
// ※ 원의 넓이 = 반지름 * 반지름 * 3.141592
// 원의 둘레 = 반지름 * 2 * 3.141592
// 실행 예)
// 반지름 입력 : xxx
// >> 반지름이 xxx 인 원의
// >> 넓이 : xxxx.xx
// >> 둘레 : xxxx.xx
// 계속하려면 아무 키나 누르세요...
// default 패키지에 전체 자바 소스를 두고 사용 중이기 때문에 별도의 import문 필요 없다.
import java.io.IOException;
public class Test071
{
public static void main(String[] args) throws IOException
{
// CircleTest 클래스 기반의 인스턴스 생성
// CircleTest 인스턴스 생성
// CircleTest 객체 생성
CircleTest ob = new CircleTest();
ob.input();
// 【 public static void main(String[] args) throws IOException 】
//───────────────────────────────────
// input() 메소드에서 입력 받을 때 발생했던 예외 상황을 밖으로 던졌는데,
// input() 메소드를 main() 메소드에 다시 불러들이면서
// 그 예외상황이 다시 main() 메소드에 들어오게 된 것!
// 따라서, main() 메소드에서도 예외상황을 처리하는 IOException을 다시
// 추가적으로 작성해 주어야 한다.
//───────────────────────────────────
double num1 = ob.calArea();
double num2 = ob.calLength();
ob.print(num1, num2);
}
}
// 실행 결과
/*
반지름 입력 : 254
>> 반지름이 254인 원의
>> 넓이 : 202682.95
>> 둘레 : 1595.93
계속하려면 아무 키나 누르십시오 . . .
*/
/*[내가 한 풀이]===============================================
import java.io.IOException;
public class Test071
{
public static void main(String[] args) throws IOException
{
CircleTest ob = new CircleTest();
ob.input();
double area = ob.circleArea();
double length = ob.circleLength();
ob.print(area, length);
}
}
================================================================*/