※ 하나의 자바 파일에 여러 개의 클래스를 설계할 수 있지만, public class는 파일 내에서 하나만 올 수 있다.
파일을 저장할 때 이름은 public class 이름으로 지정해야 한다.
일반적으로는(실무적으로는) 하나의 파일에 하나의 클래스를 설계한다.
○ 실습
직사각형의 넓이와 둘레를 계산하는 객체 → 클래스로 표현
클래스의 정체성 → 직사각형의 설계도
클래스의 속성 → 가로, 세로 (, 넓이, 둘레, 부피, 무게, 재질, 색상, 질량, .....)
클래스의 기능 → 넓이 계산, 둘레 게산, 가로 세로 입력, 결과 출력
객체를 구성 → 속성(상태, 데이터) + 기능(동작, 행위)
↓ ↓ ↓
클래스를 설계 → 변수 + 메소드
class 직사각형
{
// 속성(상태, 데이터) → 변수 (순서 의미 없음)
가로, 세로
// 기능(동작, 행위) → 메소드 (순서 의미 없음)
가로 세로 입력()
{
}
넓이 계산()
{
}
둘레 계산()
{
}
결과 출력()
{
}
}
import java.util.Scanner;
class Rect //-- 직사각형 클래스 설계
{
// 속성(상태, 데이터) → 변수 (순서 의미 없음)
int w,h; //-- 가로, 세로
// 기능(동작, 행위) → 메소드 (순서 의미 없음)
void input() //-- 가로, 세로 입력 void : 해당 위치에서 반환할 값 없음
{
Scanner sc = new Scanner(System.in);
System.out.print("가로 입력 : ");
w = sc.nextInt();
System.out.print("세로 입력 : ");
h = sc.nextInt();
}
int calLength()
{
return (w + h) * 2; // calArea 메소드 아래에 있는 3줄의 코드처럼 입력할 수 있음
}
int calArea()
{
int result;
result = w*h;
return result;
}
void print(int a, int b)
{
System.out.println("가로 : " + w);
System.out.println("세로 : " + h);
System.out.println("넓이 : " + a);
System.out.println("둘레 : " + b);
}
}
public class Test070
{
public static void main(String[] args)
{
// Rect 클래스 기반의 인스턴스를 생성
Rect ob = new Rect();
// new Rect
// +
// Rect();
// 입력 메소드 호출
ob.input();
int length = ob.calLength();
int area = ob.calArea();
ob.print(area, length);
}
}