public class Student{ private String name; public void setName(char n) { name=n; } public void getName(){ return name; } public static void main(String args){ new Student(); } }哪部分错误
时间: 2024-01-31 08:01:46 浏览: 89
这段 Java 代码有几个错误:
1. 在 setName 方法中,参数应该是 String 类型而不是 char 类型,因为 name 是一个字符串类型的变量。应该改为 `public void setName(String n) { name = n; }`。
2. 在 getName 方法中,应该指定返回值类型为 String 而不是 void,因为该方法的作用是获取字符串类型的 name 变量的值。应该改为 `public String getName() { return name; }`。
3. 在 main 方法中,应该使用正确的参数类型 String[] 而不是 String。应该改为 `public static void main(String[] args) { new Student(); }`。
因此,修正后的代码如下:
```
public class Student {
private String name;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public static void main(String[] args) {
new Student();
}
}
```
相关问题
public class Student{ private String name; public void setName(char n) { name=n; } public void getName(){ return name; } public static void main(String args){ new Student(); } }
该代码有几个错误,应该如下修改:
1. 在 `setName` 方法的参数类型应该是 `String` 而不是 `char`。
2. `getName` 方法的返回类型应该是 `String` 而不是 `void`。
3. `main` 方法中的参数应该是一个字符串数组,即 `String[] args`。
4. 在 `main` 方法中,创建 `Student` 对象时应该使用 `new Student()`。
正确的代码如下:
```
public class Student {
private String name;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public static void main(String[] args) {
Student s = new Student();
}
}
```
这个代码创建了一个 `Student` 类,它有一个私有的 `name` 字段和两个公共方法 `setName` 和 `getName` 来设置和获取 `name` 字段的值。在 `main` 方法中,它创建了一个 `Student` 对象并将其赋值给变量 `s`。
设计一个能保存任意类对象到文件的方法,并按以下条件测试该方法。(上交程序代码和程序运行截图。) (1)文件保存路径:C:\temp\class21.txt; (2)分别创建下面两个类的对象,并将其保存的到class21.txt文件中; (3)测试用的两个类: =============Student类================ public class Student { private String name; private int age; private char gender; private double height; private String hobby; public Student(String name, int age, char gender, double height, String hobby) { this.name = name; this.age = age; this.gender = gender; this.height = height; this.hobby = hobby; } public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } } =============Teacher类================ public class Teacher { private String name; private double salary; public Teacher(String name, double salary) { this.name = name; this.salary = salary; } public Teacher() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } }
这里提供一个实现该功能的 Java 程序代码,可以通过类的序列化和反序列化来实现对象的保存和读取:
```java
import java.io.*;
public class ObjectFileUtils {
private static final String FILE_PATH = "C:\\temp\\class21.txt";
public static void saveObject(Object obj) {
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(FILE_PATH));
out.writeObject(obj);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Object loadObject() {
Object obj = null;
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(FILE_PATH));
obj = in.readObject();
in.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
public static void main(String[] args) {
// 创建两个对象并保存到文件中
Student student = new Student("Tom", 18, 'M', 1.75, "Swimming");
Teacher teacher = new Teacher("Alice", 8000.0);
saveObject(student);
saveObject(teacher);
// 从文件中读取对象并输出
Object obj1 = loadObject();
Object obj2 = loadObject();
if (obj1 instanceof Student) {
Student s = (Student) obj1;
System.out.println("Student: " + s.getName() + ", " + s.getAge() + ", " + s.getGender() + ", " + s.getHeight() + ", " + s.getHobby());
}
if (obj2 instanceof Teacher) {
Teacher t = (Teacher) obj2;
System.out.println("Teacher: " + t.getName() + ", " + t.getSalary());
}
}
}
```
在运行该程序后,可以在控制台上看到输出的结果:
```
Student: Tom, 18, M, 1.75, Swimming
Teacher: Alice, 8000.0
```
同时,在 C 盘的 temp 目录下会生成一个名为 class21.txt 的文件,其中保存了两个对象的信息。
阅读全文