본문 바로가기
Study Note/Java

JAVA_ Test070_ 클래스와 인스턴스 / 직사각형 클래스 설계

by 시뮝 2018. 4. 15.
728x90


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

계속하려면 아무 키나 누르십시오 . . .







728x90

댓글