创建Student类,Student类中有name姓名,sex性别,age年龄,hobby外号4个属性,根据属性含义定义它们的属性类型并封装起来。创建正确对象student1和错误对象student2
时间: 2024-10-01 07:02:39 浏览: 120
当然,首先我们来定义一个`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;
}
}
```
现在我们可以创建正确的`student1`对象:
```java
Student student1 = new Student("张三", "男", 20, "学霸");
```
而错误的对象`student2`通常意味着尝试给不可变属性赋值,例如在`Student`类中,`age`和`name`通常是通过构造函数初始化后不应改变的,所以创建它可能会导致异常:
```java
// 错误示例,因为age通常是不可修改的
Student student2 = new Student("李四", "女", 25, "学霸"); // 这里设置age会引发运行时错误
student2.setAge(26); // 如果这样做将抛出异常
```
请注意,在实际应用中,如果需要修改年龄等非可变属性,一般应该提供一个setter方法,但在初始化完成后就不应允许直接修改了。
阅读全文
相关推荐

















