blob: 63e8a5ce2593cc2974384416693f4fbc5d2581ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/* PrintableObject.java */
import java.lang.reflect.*;
public class PrintableObject
{
public String toString()
{
StringBuffer sb = new StringBuffer(200);
Class clazz = getClass();
while (clazz != null) {
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; ++i) {
sb.append(fields[i].getName() + " = ");
try {
Object obj = fields[i].get(this);
if (obj.getClass().isArray()) {
Object[] ar = (Object[])obj;
for (int j = 0; j < ar.length; ++j) {
sb.append(ar[j].toString() + " ");
}
sb.append("\n");
} else {
sb.append(obj.toString() + "\n");
}
} catch (IllegalAccessException e) {
sb.append(e.toString() + "\n");
}
}
clazz = clazz.getSuperclass();
}
return sb.toString();
}
public static void main(String[] args)
{
JavaProgrammer jim = new JavaProgrammer();
jim.name = "Jim Miller";
jim.department = "Operating Systems";
jim.age = 32;
String[] langs = {"C", "Pascal", "PERL", "Java"};
jim.languages = langs;
jim.linesofcode = 55000;
jim.jdk12 = true;
jim.swing = false;
System.out.println(jim);
}
}
class Employee
extends PrintableObject
{
public String name;
public String department;
public int age;
}
class Programmer
extends Employee
{
public String[] languages;
public int linesofcode;
}
class JavaProgrammer
extends Programmer
{
public boolean jdk12;
public boolean swing;
}
|