在Apple 类中增加一个名为myprint的函数,输出苹果价格和重量,然后在主函数中利用反射机制调用该方法,输出相关信息。
时间: 2024-09-12 20:15:26 浏览: 50
R和C,C++语言函数调用[归纳].pdf
在Apple 类中增加一个名为 `myprint` 的函数,可以按照以下步骤进行:
1. 定义一个Apple类,其中包含表示苹果价格和重量的属性。
2. 在Apple类中添加一个 `myprint` 方法,用于输出苹果的价格和重量。
接下来,利用反射机制在主函数中调用该方法。反射机制允许程序在运行时检查或修改类的行为,即使在编译时不知道具体的类信息。
以下是一个简单的示例代码,演示如何在Java中实现这个过程:
```java
import java.lang.reflect.Method;
// 定义Apple类
class Apple {
private double price; // 苹果价格
private double weight; // 苹果重量
public Apple(double price, double weight) {
this.price = price;
this.weight = weight;
}
// 输出苹果价格和重量的函数
public void myprint() {
System.out.println("苹果的价格是:" + price + "元,重量是:" + weight + "公斤。");
}
}
public class Main {
public static void main(String[] args) throws Exception {
// 创建Apple对象实例
Apple apple = new Apple(5.99, 1.2);
// 获取apple实例对应的类对象
Class<?> appleClass = apple.getClass();
// 通过反射机制获取名为"myprint"的方法
Method myprintMethod = appleClass.getMethod("myprint");
// 调用方法
myprintMethod.invoke(apple);
}
}
```
在上述代码中,首先创建了一个Apple类,其中包含price和weight属性以及myprint方法。在主函数中,创建了一个Apple对象实例,并通过反射获取到该对象所属类的类对象。然后,通过类对象获取名为"myprint"的方法对象,并使用invoke方法调用了该方法,实现了在运行时动态调用方法的需求。
阅读全文