Test070 클래스와 인스턴스 / 직사각형 클래스 설계
※ 하나의 자바파일(.java)에 여러 개의 클래스(class)를 만들 수 있다.
하지만 『public class』는 하나만 올 수 있다. (main이 있는 클래스에 일반적으로 public이 붙는다.)
파일을 저장할 때의 이름은 이 『public class』의 이름으로 지정해야 한다.
일반적으로는 하나의 파일에 하나의 클래스를 설계한다.
또한, 여러 개의 클래스가 설계된 하나의 파일을 컴파일 하게 되면
내부에 설계된 클래스 수 만큼의 클래스 파일(.class)이 파생된다.
Test070.java
import java.util.Scanner;
public class Test070
{
public static void main(String[] args)
{
// Rect 클래스 인스턴스 생성
Rect ob = new Rect(); //-- 첫 번째 생성된 사각형
// 입력 메소드 호출
ob.input();
int area = ob.calArea();
int length = ob.calLength();
// 결과 출력 메소드 호출
ob.print(area, length);
// 넓이 계산, 둘레 계산 메소드 호출
// ob.print(ob.calArea(),ob.calLength());
}
}
class Rect //직사각형 클래스 설계
{
//▲ 변수 선언
// 전역 변수 - 클래스 영역 안에서 글로벌 활동이 가능한 변수 (글로벌변수)
// 멤버 변수 - 클래스에 소속되어 이쓴 요소로써의 의미
// 인스턴스 변수 - 인스턴스가 생성되었을 때 비로소 메모리 할당이 이루어지는 변수
int w, h;
//▲ 메소드 정의(가로/세로 입력)
//-- 『void』는 메소드 실행 후 메소드를 호출한 곳에 결과를 돌려줄 필요가 없을 때 지정하여 사용하게 되는데
// 아무것도 돌려주지(반환하지) 않는다고 해서 반환 자료형을 명시하지 않게 되면 문법적인 에러가
// 발생하게 된다. (※ 반환 자료형을 명시하지 않는 문법은 생성자에서 선점~!!)
void input()
{
//Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in);
System.out.print("가로 입력 : ");
w = sc.nextInt();
System.out.print("세로 입력 : ");
h = sc.nextInt();
}
//▲ 메소드 정의(넓이 계산)
//-- 메소드 실행 후 결과가 정수인 경우를 지정하기 위하여 리턴 자료형(반환 자료형)은 int 형을 사용하게 된다.
// 사각형의 넓이를 구하는 과정에서 필요한 연산은 가로 * 세로 이며, 이들은 모두 정수이기 때문이다.
// 또한 넓이나 둘레를 담을 변수를 별도로 선언한 상황이 아니기 때문에 연산 결과는 메소드를 호출한 곳에 반환하는 형태로 처리되어야 한다.
int calArea()
{
int result;
result = w * h;
return result;
//-- ※ 메소드는 『return』문을 통해서만
// 결과를 돌려주게(반환하게) 된다.
}
//▲ 메소드 정의(둘레 계산)
int calLength()
{
return (w + h)*2;
}
//▲ 메소드 정의(결과 출력) → 가로, 세로, 넓이, 둘레
//-- 매개변수를 통해 데이터를 넘겨받음(갖고 있지 않은 데이터) 메소드의 매개변수는 메소드 내에서만 활동 가능.(보이는 영역)
// 매개변수 선언 시 각각의 변수마다 자료형을 따로 지정해야 한다.
void print(int a, int l)
{
System.out.println("가로 : " + w);
System.out.println("세로 : " + h);
System.out.println("넓이 : " + a);
System.out.println("둘레 : " + l);
}
}
cmd
가로 입력 : 10
세로 입력 : 15
가로 : 10
세로 : 15
넓이 : 150
둘레 : 50
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test072_ 클래스와 인스턴스 / 1 부터 입력받은 수 까지의 합을 연산 (0) | 2018.04.15 |
---|---|
JAVA_ Test071_ 클래스와 인스턴스 / 원의 넓이와 둘레 구하기 (0) | 2018.04.15 |
JAVA_ Test069_ 전역변수의 초기화 테스트 실습 (0) | 2018.04.15 |
JAVA_ Test068_ 지역변수의 초기화 테스트 실습 (0) | 2018.04.15 |
JAVA_ Test067_ 메소드 재귀호출 (재귀 메소드) (0) | 2018.04.15 |
댓글