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객체로 받는 것이다.
객체를 반환하고 받았으므로 객체 안에있는 메서드를 사용하는 것이 가능하다.
'JAVA' 카테고리의 다른 글
221012 이종모음-배열 다형성과 매개변수의 다형성 (0) | 2022.10.12 |
---|---|
221012 다형성 (0) | 2022.10.12 |
221012 클래스를 멤버변수로 받기, 클래스를 받는 생성자 만들기 (0) | 2022.10.12 |
221011 replaceAll 문자열 자르기 (0) | 2022.10.11 |
221011 getter setter 실습과 객체배열 (0) | 2022.10.11 |