클래스
- 정의 : 객체를 정의해 놓은 것
- 용도 : 객체를 생성하는데 사용한다
저장형태의 발전
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 타입의 데이터를 여러개 저장할 수 있는 공간
- 구조체 : 여러 종류의 데이터를 여러개 저장할 수 있는 공간
- 클래스 : 데이터와 함수를 같이 저장할 수 있는 공간
객체
- 정의 : 실존하는것 ( 사물(유형)이나 개념(무형) )
- 용도 : 객체가 가지고 있는 기능,속성에 따라 다르다
객체의 구성요소
- 여러개의 속성과 여러개의 기능으로 이루어져 있으며 이들을 객체의 멤버라고 한다.
- 속성 ( 객체가 TV일 때 ) : 크기, 색상, 볼륨, 채널
- 속성은 변수로 표현한다
- 기능 ( 객체가 TV일 때 ) : 볼륨올리기, 볼륨내리기, 채널변경
- 기능은 메서드로 표현한다.
- 인스턴스 : 클래스로부터 만들어진 객체를 인스턴스라고 한다.
class Example(){ public static void main(String[] args){ TV t = new TV(); //Tv클래스 타입의 참조변수 t에 생성된 Tv인스턴스의 주소 저장 t.size = 50; t.color = "Red"; t.volume = 10; t.channel = 0; t.channel_up(); //channel_up메서드 실행 } } class TV{ int size; //크기(속성) String color; //색상(속성) int volume; //볼륨(속성) int channel; //채널(속성) void volume_up(){volume++;} //볼륨올리기(메서드) void volume_down(){volume--;} //볼륨내리기(메서드) void channel_up(){channel++;} //채널올리기(메서드) void channel_down(){channel--;} //채널내리기(메서드) }
- 클래스는 설계도 객체는 제품이라고 할 수 있다.
- 클래스를 정의하고 클래스를 통해 객체를 생성한다.
- 클래스를 잘 만들어 놓으면 객체를 생성하여 사용하는 일이 쉽다.
- 같은 클래스로부터 생성되어도 각 인스턴스의 속성은 서로 다른 값을 가질 수 있다.
class Example(){ public static void main(String[] args){ TV t1 = new TV(); TV t2 = new TV(); t1.size = 50; //t1의 사이즈는 50 t2.size = 100; //t2의 사이즈는 100 } } class TV{ int size; //크기(속성) }
객체 배열
- 배열로 여러개의 객체를 다루는 것 ( 배열에 각 배열의 주소값이 요소로 저장된다. )
class Example(){ public static void main(String[] args){ TV [] t_arr = new TV [2]; t_arr[0] = new TV(); //인스턴스를 생성해서 배열의 요소에 저장 t_arr[1] = new TV(); //인스턴스를 생성해서 배열의 요소에 저장 TV [] t_arr2 = new TV [10]; //객체 배열의 길이가 길 때는 for문으로 인스턴스 생성 for(int i=0;i<t_arr2.length;i++){ t_arr2[i] = new TV(); } } } class TV{ int size; //크기(속성) }