java 利用setter、getter方法解决私有权限问题。要求:定义一个类,成员属性(变量名仅供参考):date(私有访问权限)、day(私有访问权限)及weather,严格按输出样例打印输出(注:主函数类名为Main)
时间: 2024-10-29 22:11:16 浏览: 6
devicerent:定义一个实体
在Java中,为了保护类的内部数据不被随意修改,通常将字段设为`private`访问级别。这时我们可以使用`getter`(获取方法)和`setter`(设置方法)来间接地控制对这些私有字段的访问。例如,假设我们有一个`WeatherInfo`类:
```java
public class WeatherInfo {
// 私有字段
private Date date;
private int day;
private String weather;
// Getter方法允许外部获取这些信息
public Date getDate() {
return date;
}
public int getDay() {
return day;
}
public String getWeather() {
return weather;
}
// Setter方法用于设置这些信息,通常会包含一些验证逻辑
public void setDate(Date date) {
this.date = date;
}
public void setDay(int day) {
if (day >= 0 && day <= 31) {
this.day = day;
} else {
throw new IllegalArgumentException("Invalid day number");
}
}
public void setWeather(String weather) {
this.weather = weather.trim();
if (weather.isEmpty()) {
throw new IllegalArgumentException("Weather cannot be empty");
}
}
// 主函数 Main 类中如何使用
public static void main(String[] args) {
WeatherInfo info = new WeatherInfo();
info.setDate(new Date()); // 使用setter设置date
info.setDay(5); // 设置day,注意验证逻辑
info.setWeather("Sunny"); // 设置weather,同样有验证
// 通过getter获取并打印信息
System.out.println("Date: " + info.getDate());
System.out.println("Day: " + info.getDay());
System.out.println("Weather: " + info.getWeather());
}
}
```
在这个例子中,`main`函数可以通过`WeatherInfo`类的公共方法来获取和设置`date`、`day`和`weather`的信息,而不需要直接访问它们的私有字段。这保证了数据的安全性和一致性。
阅读全文