Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
072 - Java 클래스와 인스턴스 : 사용자로부터 임의의 정수를 입력 받아 1부터 입력 받은 정수까지의 합을 클래스 Hap을 설계하여 처리하는 프로그램 본문
[Java]/Program source (java)
072 - Java 클래스와 인스턴스 : 사용자로부터 임의의 정수를 입력 받아 1부터 입력 받은 정수까지의 합을 클래스 Hap을 설계하여 처리하는 프로그램
Jelly-fish 2023. 9. 4. 16:50/*========================================
■■■ 클래스와 인스턴스 ■■■
=========================================*/
// 사용자로부터 임의의 정수를 입력받아
// 1 부터 입력받은 수 까지의 합을 연산하여
// 결과값을 출력하는 프로그램을 구현한다.
// 단, 지금까지처럼 main() 메소드에 모든 기능을 적용하는 것이 아니라
// 클래스와 인스턴스의 개념을 활용하여 처리할 수 있도록 한다.
// (Hap 클래스 설계)
// 또한, 데이터 입력 처리 과정에서 BufferedReader 의 readLine() 을 사용하며,
// 입력 데이터가 1보다 작거나 1000보다 큰 경우
// 다시 입력받을 수 있는 처리를 포함하여 프로그램을 구현할 수 있도록 한다.
// 실행 예)
// 임의의 정수 입력(1~1000) : 1200
// 임의의 정수 입력(1~1000) : -50
// 임의의 정수 입력(1~1000) : 100
// >> 1 ~ 100 까지의 합 : 5050
// 계속하려면 아무 키나 누르세요...
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class Hap
{
// 주요 변수 선언(사용자의 입력값을 담아낼 변수)
int su;
// 입력 메소드 정의
void input() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
do
{
System.out.print("임의의 정수 입력(1~1000) : ");
su = Integer.parseInt(br.readLine());
}
while (su<1 || su>1000);
}
// 연산 처리 메소드 정의
int calculate()
{
int result = 0;
for(int i = 1; i<= su ; i++)
{
result += i;
}
return result;
}
// 결과 출력 메소드 정의
void print(int sum)
{
System.out.printf("\n>> 1 ~ %d 까지의 합 : %d\n", su, sum);
}
}
public class Test072
{
public static void main(String[] args) throws IOException
{
// Hap 인스턴스 생성
Hap ob = new Hap();
// 생성된 인스턴스를 통해 입력 메소드 호출
// ----------------------
// 참조변수 활용
ob.input(); //-- new Hap().input();
// 생성된 인스턴스를 통해 연산 메소드 호출
int s = ob.calculate();
// 생성된 인스턴스를 통해 출력 메소드 호출
//ob.print(ob.calculate());
ob.print(s);
}
}
// 실행 결과
/*
임의의 정수 입력(1~1000) : 253
>> 1 ~ 253 까지의 합 : 32131
계속하려면 아무 키나 누르십시오 . . .
*/
/* [내가 한 풀이]==============================================
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class Hap
{
int inputNum;
// 1. 정수를 입력받는 메소드 input() (제대로 입력할 때까지 반복)
int input() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
do
{
System.out.print("임의의 정수 입력(1~1000) : ");
inputNum = Integer.parseInt(br.readLine());
}
while (inputNum < 1 || inputNum > 1000);
return inputNum;
}
// 2. 1부터 입력받은 정수값 inputNum까지의 합을 구하는 메소드 adder()
int adder()
{
int result = 0;
for (int i = 1; i <= inputNum ; i++)
{
result += i;
}
return result;
}
// 입력 정수값까지 매개변수로 넣는 것으로 변경
// 3. 결과값을 출력하는 메소드 print();
// >> 1 ~ 100 까지의 합 : 5050
void print(int a, int sum)
{
System.out.printf(">> 1 ~ %d 까지의 합 : %d\n", a, sum);
}
}
public class Test072
{
public static void main(String[] args) throws IOException
{
// Hap 클래스를 참조하여 인스턴스 생성
Hap ob = new Hap();
// 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
// Hap.input() (Ⅹ)
// 반드시 인스턴스를 생성한 참조변수 명으로 Hap의 함수를 불러오도록 한다.
// 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
// Hap 클래스의 input() 메소드를 불러와서, 사용자에게 정수를 입력 받는다.
int a = ob.input();
// Hap 클래스의 adder() 메소드를 불러와서, 1부터 inputNum까지의 합을 계산하고
// 그 결과값을 sumResult에 저장한다.
int sumResult = ob.adder();
// Hap 클래스의 print() 메소드를 불러와서, 연산 결과를 출력한다.
ob.print(a, sumResult);
}
}
=======================================================================================*/