void study(){解释
时间: 2023-07-30 14:11:41 浏览: 73
`void study()` 是一个函数的声明,其中 `void` 表示该函数没有返回值,即不会返回任何数据,而 `study()` 则是函数的名称。可以将函数中的代码写在大括号 `{}` 中,这样当调用该函数时,函数中的代码就会被执行。例如:
```
void study(){
// 在这里编写学习的代码
}
```
可以通过调用 `study()` 函数来执行其中的代码。
相关问题
你是一个C++开发专家,请详细解释一下如下代码的含义class Book{}; // 书籍 class Food{}; // 食物 class Human // 人类 { public: void Read(Book book); void Eat(Food food); }; class Notebook_computer //笔记本计算机 { }; class desktop_computer //台式计算机 { class Book{}; // 书籍 class Food{}; // 食物 class Human // 人类 { public: void Read(Book book); void Eat(Food food); }; class Notebook_computer //笔记本计算机 { }; class desktop_computer //台式计算机 { private: string cup; int Memory; int ssdist; //Solid state disk }; class Student { public: void Study_Programming(Notebook_computer compute); //学习编程 void Study_Programming(desktop_computer compute); void Study_Programming(Book book); // };
这段代码定义了多个类和它们的成员函数。其中:
- Book类和Food类分别代表书籍和食物。
- Human类包含了两个成员函数Read()和Eat(),分别接收Book类型和Food类型的参数,代表人类可以阅读书籍和吃食物。
- Notebook_computer类和desktop_computer类分别代表笔记本计算机和台式计算机。
- 在desktop_computer类中,又定义了一个Book类和一个Food类,与之前定义的Book类和Food类不同。这里的两个类只能在desktop_computer类内部使用。
- desktop_computer类中还有三个私有成员变量:cup、Memory和ssdist,分别代表杯子、内存和固态硬盘。
- Student类包含了三个成员函数Study_Programming(),分别接收Notebook_computer类型、desktop_computer类型和Book类型的参数,代表学生可以使用笔记本计算机、台式计算机或者阅读书籍来学习编程。
需要注意的是,同名类(如Book和Food)在不同的命名空间内是可以同时存在的,它们并不会相互干扰或冲突。此外,不同的成员函数可以接收相同类型的参数,只要它们在不同的类中定义即可。
利用Java的反射机制,编写一个自定义框架类:可以创建任意类的对象,并执行该对象中的任意方法。要求: (1)不改变该类的任何代码,可以创建任意类对象,并执行其中任意方法;(2)创建对象的类名和需执行的方法名存放到配置文件中(ref.properties);(3)配置文件、测试用类如下;ref.properties格式: className=ch7.reflection.Student methodName=study2 测试用Student类: public class Student { public void study() { System.out.println("我是学生,正在学习中..."); } private void study2() { System.out.println("我是学生2"); } protected void study3() { System.out.println("我是学生3"); } public void study4() { System.out.println("我是学生4"); } }
实现思路:
1. 读取配置文件,获取要创建的类名和要执行的方法名;
2. 利用反射机制创建类的对象;
3. 利用反射机制获取要执行的方法;
4. 执行方法。
代码实现如下:
```
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Properties;
public class ReflectionFramework {
public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
// 读取配置文件
InputStream input = ReflectionFramework.class.getClassLoader().getResourceAsStream("ref.properties");
Properties properties = new Properties();
properties.load(input);
String className = properties.getProperty("className");
String methodName = properties.getProperty("methodName");
// 利用反射机制创建类的对象
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();
// 利用反射机制获取要执行的方法
Method method = clazz.getDeclaredMethod(methodName);
// 执行方法
method.invoke(obj);
}
}
```
测试用的Student类代码如下:
```
public class Student {
public void study() {
System.out.println("我是学生,正在学习中...");
}
private void study2() {
System.out.println("我是学生2");
}
protected void study3() {
System.out.println("我是学生3");
}
public void study4() {
System.out.println("我是学生4");
}
}
```
配置文件ref.properties内容如下:
```
className=Student
methodName=study2
```
运行ReflectionFramework类,输出结果为:
```
我是学生2
```
阅读全文