老师我想问一个问题
来源:3-1 Class类的概述和使用
彤宝贝
2019-10-14 10:49:08

package com.ht.reflect.test;
import org.junit.Test;
/**
*
* @author 24516
*
*/
public class ClassTest{
/**
*获得class对象
*1.通过类名.class属性
*2.通过对象.getClass()
*3.通过Class.forName()
*/
@Test
public void test1() {
//通过类名.class
Class ca = Person.class;
//ca.eat();
//通过对象.getClass();
Person person = new Person();
Class cs = person.getClass();
person.eat();
//3.通过Class.forName()
try {
Class sc = Class.forName("com.ht.reflect.test.Person");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}package com.ht.reflect.test;
public class Person {
private String name;
private String sex;
public Person(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void eat() {
System.out.println("吃....");
}
}老师为什么Class的对象不能调用到Person类中的eat()方法,只有Person的对象可以调用,但是调用的时候出错了,老师能解释一下为什么吗?
1回答
好帮手慕阿满
2019-10-14
同学你好,Class类中不存在eat()方法,所以不能调用,Person类中有eat()方法,所以可以调用。另外Person类调用eat()方法可以正常运行,并没有报错,如:

建议同学再方法名上,点击右键,选择Run As Test再试试。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题