1. 학습목표
객체배열에 대해 이해할 수 있다.
프로그래밍관점에서 클래스를 이해할 수 있다.
2.필요 개념 문장정리
객체배열
- 객체 역시 배열로 다루는 것이 가능하며 이를 객체 배열이라 한다.
- 객체 배열 안에 객체가 저장되는 것이 아니고 객체의 주소가 저장된다. 객체 배열은 참조변수들을 하나로 묶은 참조변수 배열이다.
- 객체배열을 생성하는 것은 객체를 다루기위한 참조변수들이 만들어진 것일 뿐 아직 객체가 저장되지 않았다.
- 배열초기화 블럭이나 for문을 사용하여 초기화를 한다.
- 객체배열도 같은 타입의 객체만 저장할 수 있다.
클래스
- 변수 : 하나의 데이터를 저장할 수 있는 공간
배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
클래스 : 데이터와 함수의 결함 - 객체지향언어에서는 변수와 함수를 하나의 클래스에 정의하여 서로 관계가 깊은 변수와 함수들을 함께 다룰 수 있게 했다.
- 자바에서 클래스가 사용자 지정타입이다. 제어자와 메서드를 이용해서 조건들을 코드에 반영할 수 있다.
3. 코드작성
class Tv {
// Tv의속성(멤버변수)
String color; // 색상
boolean power; // 전원상태(on/off)
int channel; // 채널
// Tv의기능(메서드)
void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드
void chanelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드
void channelDown() { --channel; } // TV의채널을 낮추는 기능을 하는 메서드
}
class TvTest2 {
public static void main(String args[]) {
Tv[] tvArr = new Tv[3]; //길이가 3인 Tv객체 배열
// Tv객체를 생성해서 Tv객체 배열의각 요소에 저장
for(int i = 0; i < tvArr.length; i++){
tvArr[i] = new Tv();
tvArr(i].channel = i + 10; //tvArr[i]의 channel에 i+10을 저장
}
for (int i = 0; i < tvArr.length; i++) {
tvArr[i].channelUp(); // tvArr[1]의 메서드를 호출. 채널이 1증가
System.out.printf ("tvArr[%d].channel=%d%n", i, tvArr[i].channel);
}
}
실행결과
tvArr[0].channel=11
tvArr[1].channel=12
tvArr[3].channel=13
4. 마무리
클래스를 만들어 변수를 지정하고 메서드를 사용하여 조건을 반영하는 객체지향프로그래밍 구조를 이해할 수 있었다.
'언어 기초 > JAVA' 카테고리의 다른 글
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 메서드 (0) | 2024.01.17 |
---|---|
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 클래스변수와 인스턴스변수 (1) | 2024.01.16 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 클래스,객체,인스턴스 (0) | 2024.01.15 |
[자바의정석 | Chapter 05 배열] 다차원배열 예제 18~23 (0) | 2024.01.11 |
[자바의정석 | Chapter 05 배열] String배열 예제12~15 (0) | 2024.01.11 |