在Java中,我們可以通過打印對象或類的方式來查看它們的屬性、方法等信息。下面我們就來介紹一下如何打印對象和打印類。
首先,讓我們看一看打印對象的方式。
public class Student{ private String name; private int age; public Student(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } }
假設現(xiàn)在我們有一個Student對象,我們可以通過以下方式來打印它:
public static void main(String[] args){ Student s = new Student("Tom", 18); System.out.println(s); }
輸出結果為:Student@15db9742
,這是因為System.out.println
默認調用了對象的toString()
方法,而Student
類并沒有重寫toString()
方法,所以輸出的是對象的哈希碼。
如果我們想要輸出對象的屬性信息,我們可以在Student
類中重寫toString()
方法:
public class Student{ private String name; private int age; public Student(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
現(xiàn)在我們再次打印Student
對象,輸出結果為:Student{name='Tom', age=18}
,可以看到輸出了對象的屬性信息。
接下來,我們來看一看打印類的方式。
假設我們有一個Person
類:
public class Person{ private String name; private int age; public Person(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } public void showInfo(){ System.out.println("name: " + name + ", age: " + age); } }
我們可以使用Class
類的getName()
、getFields()
、getMethods()
等方法來打印類的信息:
public static void main(String[] args){ Person p = new Person("Alice", 20); Class clazz = p.getClass(); System.out.println(clazz.getName()); Field[] fields = clazz.getFields(); for(Field f : fields){ System.out.println(f.getName()); } Method[] methods = clazz.getMethods(); for(Method m : methods){ System.out.println(m.getName()); } }
輸出結果為:
com.example.Person name public java.lang.String com.example.Person.getName() age public int com.example.Person.getAge() showInfo public void com.example.Person.showInfo() wait wait waitUntil equals hashCode getClass notify notifyAll
可以看到,我們成功地打印出了Person
類的名稱、屬性和方法等信息。