❓
문제 :
구동클래스를 실행하였을때 다음의 결과가 나오도록 관련 클래스를 구현하기
[결과]
DanceRobot은 춤을 춤니다.
SingRobot은 노래를 부릅니다.
DrawRobot은 그림을 그립니다.
문제
package chap8;
public class Test1 {
public static void main(String[] args) {
Robot[] robot = new Robot[3];
robot[0] = new DanceRobot();
robot[1] = new SingRobot();
robot[2] = new DrawRobot();
for(Robot r : robot) {
r.action();
}
}
}
package chap8;
abstract class Robot {
String name;
Robot(String name){
this.name = name;
}
abstract void action();
}
class DanceRobot extends Robot {
DanceRobot(){
super("DanceRobot");
}
public void action(){
System.out.println( name +"은 춤을 춤니다.");
}
}
class SingRobot extends Robot {
SingRobot(){
super("SingRobot");
}
public void action(){
System.out.println( name +"은 노래를 부릅니다.");
}
}
class DrawRobot extends Robot {
DrawRobot(){
super("DrawRobot");
}
public void action(){
System.out.println( name +"은 그림을 그립니다.");
}
}
public class Test1 {
public static void main(String[] args) {
Robot[] robot = new Robot[3];
robot[0] = new DanceRobot();
robot[1] = new SingRobot();
robot[2] = new DrawRobot();
for(Robot r : robot) {
r.action();
}
}
}
💡 인터페이스로도 구현 가능!
interface Robot {
void action();
}
class DanceRobot implements Robot {
@Override
public void action() {
System.out.println("DanceRobot은 춤을 춥니다.");
}
class SingRobot implements Robot {
@Override
public void action() {
System.out.println("SingRobot은 노래를 부릅니다.");
}
class DrawRobot implements Robot {
@Override
public void action() {
System.out.println("DrawRobot은 그림을 그립니다.");
}
}
❓
문제 :
구동 클래스 실행시 다음의 결과가 나오도록 ,
DataAccessObject 인터페이스와 OracleDao,MySqlDao 클래스를 구현하기.
[결과]
Oracle DB에서 검색
Oracle DB에 삽입
Oracle DB에 수정
Oracle DB에서 삭제
Mysql DB에서 검색
Mysql DB에 삽입
Mysql DB에 수정
Mysql DB에서 삭제
문제
package chap8;
public class Test2 {
public static void main(String[] args) {
dbWork(new OracleDao());
dbWork(new MySqlDao());
}
private static void dbWork(DataAccessObject dao) {
dao.select();
dao.insert();
dao.update();
dao.delete();
}
}
package chap8;
interface DataAccessObject {
void select();
void insert();
void update();
void delete();
}
class OracleDao implements DataAccessObject {
String DB;
OracleDao(){
this.DB = "Oracle";
}
@Override
public void select() {
System.out.println(DB+"DB에서 검색");
}
@Override
public void insert() {
System.out.println(DB + "DB에서 삽입");
}
@Override
public void update() {
System.out.println(DB + "DB에서 수정");
}
@Override
public void delete() {
System.out.println(DB + "DB에서 삭제");
}
}
class MySqlDao implements DataAccessObject {
String DB;
MySqlDao(){
this.DB = "MySql";
}
@Override
public void select() {
System.out.println(DB+"DB에서 검색");
}
@Override
public void insert() {
System.out.println(DB + "DB에서 삽입");
}
@Override
public void update() {
System.out.println(DB + "DB에서 수정");
}
@Override
public void delete() {
System.out.println(DB + "DB에서 삭제");
}
}
public class Test2 {
public static void main(String[] args) {
dbWork(new OracleDao());
dbWork(new MySqlDao());
}
private static void dbWork(DataAccessObject dao) {
dao.select();
dao.insert();
dao.update();
dao.delete();
}
}
'수업 문제(국비 지원) > Java' 카테고리의 다른 글
| [JAVA] 2022.09.07 - 내부 클래스 (0) | 2023.04.29 |
|---|---|
| [JAVA] 2022.09.06 - 예외 처리 (0) | 2023.04.29 |
| [JAVA] 서술형-클래스 생성자 문제 (0) | 2023.04.28 |
| [JAVA] 2022.09.02 - java 클래스 구현, 추상 클래스 (0) | 2023.04.28 |
| [JAVA] 2022.09.01 - java 클래스 생성자 (0) | 2023.04.28 |