10. Java 클래스와 객체 만들기
이전 시간에는 객체지향 프로그램에 관해 배웠다.
클래스(Class)
객체 지향 소프트웨어에서도 객체들은 동일한 방법으로 생성된다. 설계도에 의하여 객체들이 생성된다. 객체에 대한 설계도를 클래스라고 한다. 클래스란 특정한 종류의 객체들을 찍어내는 형틀 혹은 청사진이라고도 할 수 있다. 클래스로 부터 만들어지는 각각의 객채를 그 클래스의 인스턴스라고 한다. 물론 그것에도 주의할 점이 있다. 하나의 클래스로 여러개의 인스턴스를 만들어 내지만, 인스턴스마다 속성의 값은 다르다.
클래스 작성
클래스는 객체의 형태를 정리하는틀(templete)과 같은 것이다. 클래스는 변수와 함수를 동시에 가지고 있다. 클래스는 다음과 같은 구조를이용하여서 정의된다.
클래스 안에는필드와 메소드들을 정의한다. 이들을 클래스의 맴버라고 한다. 필드는 객체의 속성을 나타내고 메소드는 객체의 동작을 나타낸다. 필드는 객체안의 정의된 변수이다. 따라서 변수를 정리하듯이 자료형과 변수 이름을 적어주면 된다. 메소드는 클래스 안에 정의된변수이다. public은 외부에서클래스를 자유롭게 사용할 수 있다는 접근 지정자이다. coldcase는 클래스 이름이다.중괄호 안에 필드와 메소드를 선언한다. 메소드는 입력을 받아서 출력을 생성하는 코드의 묶음으로 이해하면 좋다.
객체의 생성
클래스는 객체를 만들기 위한 설계도. 그렇다. 설계도로는 아무런 작업도 할 수 없다. 그래서 실제로 어떤 작업을 하려면 객체를 생성하여, 설계도대로 움직여줄 것들을 준비해야한다.
이렇게 위에서 정의한 Coldcase 클래스를 이용하여,Coldcase obj;에서 참조변수를 선언하고, obj = new Coldcase();에서 객체를 생성한다. 그리고 obj.y = "blue";에서 객체의 필드에 접근하여, double area = obj.getxt();에서 객체 매소드로 접근하는 구조로 이루어 진다.
참조변수
자바에서는 변수를 기초 변수(primitive variable)과 참조변수(reference variable)로 나눌 수 있다. 기포 변수는 int, float, char등과 같은 기초 자료형의 값을 저장하는 변수이다. 이들 기포변수형에는 실제 데이터 값이 저장된다. 반명 참조 변수는 객체를 참조할 떄 사용되는 변수로서 여기에는 객체의 참조값이 저장된다. 참조값은 일반적으로 객체의 주소이다. 참조 변ㅅ에 객체가 직접 저작되는 것은 아니라는 것을 알아두자.