공부 자료/자바[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--;}
}

* 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 함