본문 바로가기

Java SE Tutorials/Class example

Java Class example

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);
   }

}