속성과 기능
객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있다. 앞서 클래스와 객체를 설명한 것과 같이 클래스는 객체를 만들기 위한 설계도이고 클래스에는 객체의 모든 속성과 기능이 정의되어 있다. TV를 예로 들어보면, TV의 속성으로는 전원상태, 크기, 길이, 높이, 색상, 볼륨, 채널과 같은 것들이 있으며, 기능으로는 켜기, 끄기, 볼륨 높이기, 채널 변경하기 등이 있다.
속성 | 기능 |
켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 | 크기, 길이, 높이, 색상, 볼륨, 채널 |
객체지향 프로그래밍에서는 속성과 기능을 아래와 같이 변수와 메서드로 표현할 수 있다.
속성(property) -> 멤버변수(variable)
기능(function)->메서드(method)
채널 -> int channel
채널 높이기 -> channelUp(){...}
위에서 분석한 내용을 토대로 Tv클래스를 만들어 보면 다음과 같다.
class Tv {
String color; //색깔
boolean power; //전원상태
int channel; //채널
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
위에 있는 멤버변수(color, power, channel)은 '변수'라 하고 아래에 있는 멤버변수(power, channelUp, channelDown)는 '메서드'라고 한다. 객체는 일반적으로 '클래스생성 -> 객체생성 -> 객체사용'의 순으로 생성 및 사용된다.
객체배열
많은 수의 객체를 다뤄야할 때, 배열을 다루면 편리할 것이다. 그래서 객체 또한 배열로 다루는 것이 가능하며 이를 '객체배열'이라 한다.
객체를 배여한다는 말의 의미는 배열안에 객체가 저장되는 것이 아니다. 객체의 주소가 저장된다. 객체 배열은 참조변수들을 하나로 묶은 참조변수 배열이다.
Tv tv1, tv2, tv3; -> Tv[] tvArr = new Tv[3];
객체 배열을 생성하는 것은, 그저 객체를 다루기 위한 참조변수들이 만들어진 것일 뿐, 아직 객체가 저장되지 않았다. 객체를 생성해서 객체 배열의 각 요소에 저장하는 것을 잊으면 안 된다.
Tv[] tvArr = new Tv[3]; // 참조변수 배열(객체 배열)을 생성
//객체를 생성해서 배열의 각 요소에 저장
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
출처:자바의 정석 기초편(저자: 남궁성, 출판사: 도우출판)
'java > 객체지향' 카테고리의 다른 글
[객체지향] static 메서드와 인스턴스 메서드 (0) | 2021.07.09 |
---|---|
[객체지향] return문과 반환값 (0) | 2021.07.09 |
[객체지향] 메서드 (0) | 2021.07.08 |
[객체지향] 변수 (0) | 2021.07.06 |
[객체지향]객체지향 언어, 클래스와 객체 (0) | 2021.07.05 |