创建Student类,Student类中有name姓名,sex性别,age年龄,hobby外号4个属性,根据属性含义定义它们的属性类型并封装起来。创建正确对象student1和错误对象student2
时间: 2024-10-01 20:02:35 浏览: 33
当然可以。在创建`Student`类时,我们可以按照属性的含义来定义其数据类型,并使用访问修饰符(如私有化)来封装属性,确保外部只能通过定义好的公共方法来操作。以下是这个类的一个简单示例:
```java
public class Student {
// 封装姓名、性别、年龄和外号属性
private String name;
private String sex; // 假设性别是字符串
private int age;
private String hobby;
// 构造函数用于初始化对象
public Student(String name, String sex, int age, String hobby) {
this.name = name;
this.sex = sex;
this.age = age;
this.hobby = hobby;
}
// 获取和设置方法(提供对属性的操作)
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 int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public String getHobby() { return hobby; }
public void setHobby(String hobby) { this.hobby = hobby; }
// 错误的对象student2,因为hobby应该是一个字符串而不是整数
// 这里尝试创建一个无效的实例,但在实际应用中不应该这样做
public static void main(String[] args) {
try {
Student student1 = new Student("张三", "男", 20, "篮球");
System.out.println("Valid student: " + student1.getName());
// Error: Hobby should be a string
Student student2 = new Student("李四", "女", 25, 30); // 这行会抛出ClassCastException异常
System.out.println("Invalid student: " + student2.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`student1`是正确的对象,而试图像`student2`那样直接将整数值作为`hobby`创建学生则是错误的,因为`hobby`预期的是一个字符串。
阅读全文