Backend/JAVA

자바(4)- Class(instance의 생성과 사용)

creativeDeveloper! 2022. 9. 12. 01:16
728x90

1. 객체와 인스턴스

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

결국,

객체=인스턴스

2. 객체의 구성요소(속성과 기능)

객체는 속성과 기능으로 이루어져 있으며, 이 둘을 객체의 멤버라고 한다.

속성-> 멤버변수/특성/필드/상태

기능-> 메서드/함수

public class Tv {
	//Tv의 속성(멤버변수)
	String color;		//색상
	boolean power;		//전원
	int channel;		//채널
	
	//Tv의 기능(메서드)
	void power() {power=!power;}		//Tv를 켜거나 끄는 기능을 하는 메서드
	void channelUp() {++channel;}		// Tv채널을 높이는 기능을 하는 메서드
	void channelDown() {--channel;}		//Tv 채널을 낮추는 기능을 하는 메서드			
}

3.  참조변수란?

참조변수는 말 그대로 객체를 만드는데 참조하는 변수이다. Tv객체를 생성한다 했을때, 

리모콘이 참조변수 역할을 해준다 할 수 있다.

아래는 위의 속성과 기능을 가지고 메인 메서드가 있는 TV 객체를 생성한 클래스이다.

public class TvTest {
 public static void main(String[] args) {	
	
 Tv t;			// Tv인스턴스를 참조하기 위한 변수 t를 선언
 t=new Tv();		// Tv인스턴스를 생성한다.
 t.channel=7;		// Tv인스턴스의 멤버변수 channel을 7로 한다.
				
	}

}

이번에는 리모콘 두개를 사용해보자.

public class TvTest2 {

	public static void main(String[] args) {
		
		Tv t1=new Tv();
		Tv t2=new Tv();
		
		System.out.println("t1의 채널은"+t1.channel+"입니다.");
		System.out.println("t1의 채널은"+t2.channel+"입니다.");
		
		t1.channel=7;		//channel의 값을 7로 한다.
		System.out.println("t1의 채널을 7로 변경하였습니다.");
		
		System.out.println("t1의 채널은"+t1.channel+"입니다.");
		System.out.println("t2의 채널은"+t2.channel+"입니다.");
	}

}

t1으로 만들어진 TV 객체만 채널을 7로 변경했기때문에 출력 결과 t1.channel은 7이고, t2.channel은 0이다.

이를 통해 참조변수는 각자 다른 주소를 저장한다는 것을 알수있다.

728x90