본문 바로가기
JAVA

221012 클래스 받기 실습

package quiz11;

public class Computer {
	//1. 키보드, 마우스, 모니터 클래스를 저장하는 변수를 선언하세요
	private KeyBoard keyboard;
	private Monitor monitor;
	private Mouse mouse;
	
	//2.기본생성자를 생성하고, 변수를 객체로 초기화 하세요
	public Computer() {//안에 아무것도 적지 않으면 객체가 null값을 갖는다! 때문에 메인에서 정보를 호출하면 에러가 뜬다
		keyboard=new KeyBoard();
		monitor =new Monitor();
		mouse=new Mouse();
	}
	
	
	//3.KeyBoard, Mouse, Monitor를 전달받는 생성자를 생성하세요.
	public Computer(KeyBoard keyboard, Monitor monitor, Mouse mouse) {
		super();
		this.keyboard = keyboard;
		this.monitor = monitor;
		this.mouse = mouse;
	}

	//4.키보드, 모니터, 마우스 정보를 출력하는 computerInfo() 메서드를 생성하세요
	public void computerInfo() {
		keyboard.info();
		monitor.info();
		mouse.info();
	}

	//5.키보드, 모니터, 마우스에 대한 getter/setter도 생성하세요	
	public KeyBoard getKeyboard() {
		return keyboard;
	}
	public void setKeyboard(KeyBoard keyboard) {
		this.keyboard = keyboard;
	}

	public Monitor getMonitor() {
		return monitor;
	}
	public void setMonitor(Monitor monitor) {
		this.monitor = monitor;
	}

	public Mouse getMouse() {
		return mouse;
	}
	public void setMouse(Mouse mouse) {
		this.mouse = mouse;
	}
	//6.메인메서드에서 getter로 접근하여 모니터에 대한 정보를 확인하세요
	
	
	
	
}

1.먼저 클래스를 멤버변수로 받음

2.그리고 초기화. 이때 생성자안에 값을 적지 않으면 객체가 전부 null값을 갖는다. 때문에 메인에서 정보를 출력하면 에러가 뜬다. 값을 받아서 초기화해주어야 함. 때문에 new를 쓴 것.

3. 매개변수를 통해 값을 입력받아서 멤버변수에 넣어주기. 받아야 출력을 하니까

4. 클래스를 받았기에 각 클래스에 있는 info메서드를 호출할 수 있다.

5.getter setter 만들기. 멤버변수 접근제한자가 private임

 

main

package quiz11;

public class MainClass {
	public static void main(String[] args) {
		
		Computer com = new Computer();
		com.computerInfo();
		
		Monitor moni = com.getMonitor();//호출했을 때 반환이 Monitor 객체.
		moni.info();
		
	}

}
----키보드 정보----
from 삼성
----모니터 정보----
from LG
----마우스 정보----
from 미키마우스
----모니터 정보----
from LG

6. 메인에서 getter로 접근. 

Computer 객체 생성. 키보드, 모니터, 마우스는 이미 컴퓨터클래스에서 받았다!

Monitor moni = com.getMonitor();

com.getMonitor();는 컴퓨터 클래스에서 3개의 getter setter에서 받아서 Monitor 객체로 받을 수 있는 것

이때 getMonitor()는 호출했을 때 Monitor객체를 반환하므로 Monitro moni객체로 받는 것이다.

객체를 반환하고 받았으므로 객체 안에있는 메서드를 사용하는 것이 가능하다.