본문 바로가기

자바

자바 프로그래밍 - 클래스

클래스의 정의


>>> // 클래스 생성
>>> public static Class Launch {
>>> }

>>> // 객체 생성
>>> public class Sample {
>>> 	public static void main(String[] args) {
>>> 		Launch hamburger = new Launch();
>>> 		Launch noodle = new Launch();
>>> 		Launch porkCutlet = new Launch();
>>> 		...
>>> 	}
>>> }

    클래스는 객체를 정의하는 것으로 객체를 생성하기 위해 존재한다. 클래스와 객체를 설명할 때 보통 '빵틀'로 비유한다.

붕어빵 틀과 붕어빵

 

붕어빵 틀이 클래스, 붕어빵이 객체이다.


  위에서도 보이듯 클래스인 launch를 메인 클래스에서 각각 햄버거, 국수, 돈까스 객체로 찍어낸 것이다. 이제 비어있는 클래스를 채워보자.

 

 

 

클래스의 사용 (객체 변수)


>>> // 클래스 생성
>>> public static class Launch {
>>> 	String menu;
>>> 	int price;
>>> }

>>> // 객체 생성
>>> public class Sample {
>>> 	public static void main(String[] args) {
>>> 		Launch hamburger = new Launch();
>>> 		hamburger.menu = hamburger;
>>> 		hamburger.price = 7900;
>>> 		
>>> 	}
>>> }

   클래스 안에 들어있는 menu와 price를 객체 변수(instance variable)라고 한다. 클래스에 의해 생성되는 것은 객체, 그 클래스에 의해 선언된 변수는 객체 변수라고 정리할 수 있다.

객체 변수 = 인스턴스 변수 = 멤버 변수 = 속성

  클래스에 메뉴와 가격, 두 종류의 변수가 들어 있고 메인 클래스에서 각각 햄버거 객체에 값을 넣어주었다. 이후 hamburger.menu를 출력하면 "hamburger"가 출력될 것이고 hamburger.price를 출력하면 7900이 출력될 것이다. 

 

 

클래스를 사용하는 이유


>>> public static class Hamburger1 {
>>> 	String menu = chickenBurger;
>>> 	int price = 7900;
>>> }
>>> public static class Hamburger2 {
>>> 	String menu = shrimpBurger;
>>> 	int price = 6900;
>>> }
>>> ...

  위의 햄버거 클래스의 예시를 보면 알 수 있듯, 햄버거라도 치킨버거, 새우버거 등 다양한 종류와 가격을 가지고 있다. 이때마다 새로 선언해 주면 이전 값들을 저장해 두거나 사라질 위험이 있다.

 

>>> public static class Hamburger {
>>> 	String menu;
>>> 	int price;
>>> }
>>>
>>> public class Sample {
>>> 	public static void main(String[] args) {
>>> 		Hamburger chikenBurger = new Hamburger();
>>> 		Hamburger shrimpBurger = new Hamburger();
>>> 		...
>>> 	}
>>> }

  이때 클래스를 사용해 똑같은 변수들을 가진 객체들을 선언하여 각각의 값을 저장할 수 있다. 물론 2가지 경우라면 간단해 보이지만 10개, 20개의 햄버거가 있다면 코드는 매우 복잡해질 것이다.

 

(해당 자료는 위키독스 점프 투 자바를 참고하였습니다)