老师我想问一个问题

来源:3-1 Class类的概述和使用

彤宝贝

2019-10-14 10:49:08

http://img.mukewang.com/climg/5da3e205090cba1b06050838.jpg

     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()方法可以正常运行,并没有报错,如:

http://img.mukewang.com/climg/5da41b7d09c5784e02370090.jpg

建议同学再方法名上,点击右键,选择Run As  Test再试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

0 学习 · 8016 问题

查看课程