Java 프로그래밍, 클래스를 작성하고 인스턴스를 생성하여 사용해보자
이용자로부터 숫자를 입력받아서 3차원 벡터 2개를 생성하고 그 벡터 사이의 내적(Dot Product)을 계산하여 출력하는 기능을 작성할 때 클래스와 객체를 활용해 보려고 한다. 클래스의 속성과 메소드를 선언하기 위해서는 이용자가 프로그램을 사용하는 상세한 시나리오가 필요하다. 시나리오를 작성하고 시나리오를 통해 속성과 기능을 도출할 수 있다.
덧셈 프로그램 상세 시나리오
이용자 |
시스템 |
프로그램을 실행한다 |
|
|
화면에 '벡터1의 x, y, z 성분 입력 (숫자 3개를 공백으로 구분하여 입력하고 [엔터]를 치세요):'라는 메시지를 출력한다 |
숫자 3개를 입력하고 엔터를 누른다 |
|
|
화면에 '벡터2의 x, y, z 성분 입력 (숫자 3개를 공백으로 구분하여 입력하고 [엔터]를 치세요):'라는 메시지를 출력한다 |
숫자 3개를 입력하고 엔터를 누른다 |
|
| 벡터 2개를 내적한 결과 값을 화면에 출력한다 |
속성과 기능의 도출
위의 시나리오에서 나타난 처리대상 속성과 기능은 다음과 같이 정리해 볼 수 있다
- 속성 : 벡터, x, y, z 성분
- 기능 : 벡터의 내적을 계산하여 그 결과를 출력한다
객체의 추상화를 통한 클래스 선언
벡터라는 무형의 객체가 있고 객체의 속성 중에서 관심을 가져야 할 속성은 x, y, z 이다
벡터 객체 안에 포함될 기능은 내적(dot)계산 및 화면 출력이다
class Vector { double x; double y; double z; public void dot(Vector v) { double dotVal = this.x*v.x + this.y*v.y + this.z*v.z; System.out.printf("Vec1=%f, %f, %f %n", this.x, this.y, this.z); System.out.printf("Vec2=%f, %f, %f %n", v.x, v.y, v.z); System.out.printf("Dot =%f+%f+%f = %f %n", this.x*v.x, this.y*v.y, this.z*v.z, dotVal); } }