From 96953f49544018ddb291796f661f5f58cf942de9 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sat, 13 Mar 2021 18:03:44 +0900 Subject: [PATCH] java oop : object class --- JavaOOP/src/Java27.java | 2 +- JavaOOP/src/Java28.java | 20 ++++++++++++++++++++ JavaOOP/src/Java29.java | 31 +++++++++++++++++++++++++++++++ JavaOOP/src/myObject/A.java | 7 +++++++ JavaOOP/src/myObject/B.java | 7 +++++++ JavaOOP/src/poly/A.java | 2 +- 6 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 JavaOOP/src/Java28.java create mode 100644 JavaOOP/src/Java29.java create mode 100644 JavaOOP/src/myObject/A.java create mode 100644 JavaOOP/src/myObject/B.java diff --git a/JavaOOP/src/Java27.java b/JavaOOP/src/Java27.java index 163a3dfa..8294368d 100644 --- a/JavaOOP/src/Java27.java +++ b/JavaOOP/src/Java27.java @@ -1,4 +1,4 @@ -import myObject.A; +import poly.A; public class Java27 { public static void main(String[] args) { diff --git a/JavaOOP/src/Java28.java b/JavaOOP/src/Java28.java new file mode 100644 index 00000000..daa08c3d --- /dev/null +++ b/JavaOOP/src/Java28.java @@ -0,0 +1,20 @@ +import myObject.A; +import myObject.B; + +public class Java28 { + public static void main(String[] args) { + A a = new A(); + display(a); + + B b = new B(); + display(b); + } + + private static void display(Object o) { + if (o instanceof A) { + ((A) o).go(); + } else { + ((B) o).go(); + } + } +} diff --git a/JavaOOP/src/Java29.java b/JavaOOP/src/Java29.java new file mode 100644 index 00000000..7990f13b --- /dev/null +++ b/JavaOOP/src/Java29.java @@ -0,0 +1,31 @@ +import myObject.A; +import myObject.B; + +public class Java29 { + public static void main(String[] args) { + // A, B 클래스를 저장할 배열 + Object[] o = new Object[2]; + o[0] = new A(); + o[1] = new B(); + + for (int i = 0; i < o.length; i++) { + if (o[i] instanceof A) { + ((A) o[i]).go(); + } else { + ((B) o[i]).go(); + } + } + + printGo(o); + } + + private static void printGo(Object[] o) { + for (int i = 0; i < o.length; i++) { + if (o[i] instanceof A) { + ((A) o[i]).go(); + } else { + ((B) o[i]).go(); + } + } + } +} diff --git a/JavaOOP/src/myObject/A.java b/JavaOOP/src/myObject/A.java new file mode 100644 index 00000000..daa55c0b --- /dev/null +++ b/JavaOOP/src/myObject/A.java @@ -0,0 +1,7 @@ +package myObject; + +public class A { + public void go() { + System.out.println("A의 go 메소드"); + } +} diff --git a/JavaOOP/src/myObject/B.java b/JavaOOP/src/myObject/B.java new file mode 100644 index 00000000..ce0710d3 --- /dev/null +++ b/JavaOOP/src/myObject/B.java @@ -0,0 +1,7 @@ +package myObject; + +public class B { + public void go() { + System.out.println("B의 go 메소드"); + } +} diff --git a/JavaOOP/src/poly/A.java b/JavaOOP/src/poly/A.java index eb326cfb..dc2c943c 100644 --- a/JavaOOP/src/poly/A.java +++ b/JavaOOP/src/poly/A.java @@ -1,4 +1,4 @@ -package myObject; +package poly; public class A{