공부 자료/자바[JAVA]
[Java] About 클래스와 객체
희희웃는청바지
2022. 10. 25. 23:30
[클래스]
: 객체의 설계도 또는 틀 (Ex. 붕어빵을 만드는 붕어빵 틀)
: 객체를 정의해 놓은 것으로 객체를 생성하는데 사용
: 데이터와 함수의 결합 (구조체 + 함수)
* 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
사용자정의 타입(user-defined type) : 클래스에서 서로 관련된 변수들을 묶어 하나의 타입으로 새로 추가하는 것
Ex) 3개의 시간을 다뤄야 할 경우 각 시/분/초에 대한 변수를 선언하거나 배열로서 정의하는 것은 불편함과 복잡함, 분리되어 있다는 점을 고려했을 때 데이터의 혼란이 생길 수 있음
class Time{
int hour;
int minut;
float second;
}
>> 시/분/초를 하나로 묶는 사용자정의 타입, 즉 클래스를 정의해 사용함으로써 시/분/초를 한개의 묶음으로 여러개를 다룰 수 있음
[객체]
: 클래스에 정의된 대로 생성 (Ex. 붕어빵 틀에 맞춰서 만들어진 붕어빵) >> 클래스 내에서만 정의 가능
: 실제로 존재하는 것으로 유형/무형이 모두 존재
: 속성과 기능의 집합 (멤버변수와 메서드의 집합)
속성(property) -> 멤버변수(variable)
기능(function) -> 메서드(method)
class TV{
//속성 = 멤버변수
String color; //색깔
boolean power; //전원 상태
int channel; //채널
//기능 = 메서드
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
}
인스턴스화 : 클래스로부터 객체를 만드는 과정으로, 클래스로부터 만들어진 객체를 클래스의 인스턴스라 함
객체 >> 모든 인스턴스를 대표하는 포괄적인 의미
인스턴스 >> 어떤 클래스로부터 만들어진 것인지를 강조
▶객체의 생성과 사용
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조 변수 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
class Ex{
public static void main(String[] args){
Tv t = new Tv(); //Tv 인스턴스 참조를 위한 t 변수 선언 및 생성
t.channel = 7;
t.channelDown();
System.out.println(t.channel); //실행 결과 : 6
}
}
class TV{
//속성 = 멤버변수
String color; //색깔
boolean power; //전원 상태
int channel; //채널
//기능 = 메서드
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
}
* 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 함