본문 바로가기

개발/JAVA객체지향디자인패턴

[JAVA객체지향디자인패턴] 클래스(Class) 란 무엇인가?

 

클래스(Class) 란 무엇인가?


 클래스(calss)란?

 클래스를 프로그래밍적 언어로 표현하자면 어떠한 객체의 변수(valiable) , 메소드(method) 의 집합이다 표현할수있으며

 현실세계에 빗대어 말하자면 동일한  속성과 행위를 수행하는 객체의 집합이다. 라고도 표현할 수 있다.

( 여기서 객체는 현실세계에 있는 유형/무형의 대상을 말한다. )  


 조금도 쉽게 예를 들어 설명하자면

 학교 를 예를 들어 학교에는 학생도 있고 학생을 가르키는 교수가 있다.


 그러면 학생과 교수는 동일한 일을 수행하는가? 그렇지 않다.

 학생은 교육을 받는 대상이며, 교수는 학생을 교육을 하는 사람이다.

 그렇다면 위에서 설명한 동일한 일을 수행하는 어떠한 집합이라고 표현할수 없다.

 따라서 학생과 교수는 서로 다른 클래스로 나타내야 한다.



 그렇다면 학생도 여러 학생이 있을수 있다. 그러면 모두 같은 객체인가? 그렇다.

 학생은 학번,이름,성별,전공,수강 과목이라는 동일한 속성을 가지며 모든 학생은 수강이라는 행위를 수행한다.

 따라서 개개인의 학생은 모두 하나의 학생이라는 객체의 집합으로 묶을수 있다.


 아래는 위에서 설명한 학생이라는 객체의 클래스 다이어그램으로 나타낸다.
 


위에서 보면 맨 상단에 학생은 학생 클래스임을 뜻하며


중간에는 학생이 가지고 있는 속성(변수) 를 나타내며


하단에는 학생이 하는일 행위(메소드) 를 나타낸다.


위에 다이어그램을 코드로 나타내면 아래와 같다.




public class Student{
	
   private id;
   private name;
   private gender;
   private major;
   private course;
   
   public void regCourse(){

   }

}


위코드는 이해를 돕기위해 구체적인 코드보다는 구조만 잡았다.


이와같이 클래스를 설계할때는 현실세계와 빗대어 표현할수 있다.



예로 들었던 학교에서 알다시피 클래스는 하나만 존재하지 않는다.
학교에는 학생, 교수 뿐만 아니라 다양한 클래스의 관계로 이루어진다.


따라서 다음번에는 클래스의 관계에 대해서 설명하도록 하겠다.