특징
1. 코드의 재사용성
- 기존의 코드를 이용하여 새로운 코드를 작성할 수 있다.
2. 코드 관리 용이
- 코드간의 관계를 이용해서 쉬운 코드 변경이 가능하다.
3. 신뢰성이 높은 프로그래밍 가능
- 코드의 중복 제거 및 제어자와 메서드를 이용한 데이터 보호
클래스와 객체
클래스: 객체를 정의해 놓은 것으로 객체를 생성하는데만 쓰임.
객체: 실제로 존재하는 것. 사물 또는 개념
클래스 | 객체 |
제품 설계도 | 제품 |
TV 설계도 | TV |
붕어빵 기계 | 붕어빵 |
객체와 인스턴스
인스턴스(instance): 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스 라고 한다.
객체: 모든 인스턴스를 대표하는 포괄적인 의미
ex) 책상은 책상 클래스의 인스턴스다, 책상은 객체다
* 인스턴스와 객체는 같은 의미임. 엄격히 구분할 필요는 없지만, 문맥에 따라 구별하는 것이 좋다
객체의 구성요소 - 속성, 기능
속성: 맴버변수, 특성, 필드, 상태
기능: 메서드, 함수, 행위
* 클래스란 객체를 정의한 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다.
속성 | 기능 |
크기, 길이, 높이, 색상, 볼륨, 채널 등 | 켜기, 끄기, 볼륨, 높이기, 볼륨 낮추기, 채널 변경하기 등 |
인스턴스의 생성과 사용
* 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.
같은 클래스로부터 생성되었을지라도 각 인스턴스의 속성(맴버변수)은 서로 다른 값을 유지할 수 있으며, 메서드의 내용은 모든 인스턴스에 대해 동일하다.
class Tv{ // Tv 클래스
String color;
boolean power;
int chennel;
void power(){
power = !power;
}
void channelUp(){
channel++;
}
void channelDown(){
channel--;
}
}
class Main{
public static void main(String[] args){
Tv = tv; // Tv 인스턴스를 참조하기 위한 변수 t 선언
t = new Tv(); // Tv 인스턴스 생성
t.channel = 7; // Tv 인스턴스의 맴버변수 channel에 7 대입
t.channelDown(); // Tv 인스턴스의 메서드 channelDown() 호출
}
}
객체 배열
많은 수의 객체를 다뤄야할 때, 배열로 다루면 편리하다.
Tv[] tvArr = new Tv[3]; // 길이가 3인 객체 배열 tvArr 생성
// 객체를 생성해서 배열의 각 요소에 저장
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
Tv[] tvArr = new Tv{new Tv(), new Tv(), new Tv()};
위의 코드처럼 선언과 동시에 초기화가 가능하다.
'Language > Java' 카테고리의 다른 글
4.3 객체 지향 프로그래밍 (오버로딩, 생성자) (0) | 2021.07.08 |
---|---|
4.2 객체 지향 프로그래밍 (변수와 메서드) (0) | 2021.07.07 |
문자열 함수 종류 (0) | 2021.07.05 |
3. 연산자 (1) | 2021.07.01 |
[JAVA] 2. 변수(Variable) (0) | 2021.06.29 |