객체를 정의해 놓은 것
객체를 생성하는데 사용되고, 객체는 클래스에 정의된 대로 생성된다.
클래스가 객체 그 자체가 아니다.
설계도
하나의 잘 만든 설계도가 있으면 매번 고민하지 않고 설계도대로만 만들면 되기 때문이다.
객체를 만드는 과정을 인스턴스화라고 하며, 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.
🔸 객체 : 모든 인스턴스를 대표하는 일반적인 용어
🔸 인스턴스 : 특정 클래스로부터 만들어진 객체
(책상은 인스턴스다. ➡️ 책상은 객체다 혹은 책상은 책상 클래스의 인스턴스다.)
객체는 속성과 기능의 집합이다. (속성 + 기능을 그 객체의 멤버라고 한다.)
🔸 속성 = 멤버변수, 특성, 필드, 상태 ➡️ 멤버변수를 사용
🔸 기능 = 메서드, 함수 ➡️ 메서드를 사용
클래스명 변수명;
변수명 = new 클래스명();Tv tv; // 참조변수 선언 tv = new Tv(); // new생성자를 통해 클래스의 객체 생성 후, 참조변수에 객체의 주소를 저장
class Tv{ String color; boolean power; int channel; void power(){ power = !power; } void channelUp(){ ++channel; } void channelDown(){ --channel; } }
class test{ public static void main(String args[]){ Tv tv = new Tv(); tv.channel = 7; tv.channleUp(); System.out.println("현재 채널은 " + tv.channel + "입니다."); } }
참조변수는 TV를 조종하는 리모컨과 같다.
➡️ 인스턴스는 참조변수를 통해서만 다룰 수 있고, 참조변수의 타입과 인스턴스의 타입은 일치해야 한다.
참조변수들을 하나로 묶은 참조변수 배열이라고 생각하면 된다.
Tv[] tvArr = new Tv[3]; // 객체를 다루기 위한 참조변수만 생성된 것. 객체를 생성해서 참조변수에 저장해야 한다. tvArr[0] = new Tv(); tvArr[1] = new Tv(); tvArr[2] = new Tv();
Tv[] tvArr = { new Tv(), new Tv(), new Tv() };