已知有User类,属性为姓名,年龄,性别,完成类的封装并提供无参数,有参数的构造方法完成以下要求,1.创建一个List,在List中增加三个对象2.打印输出集合中所有的女用户信息3.利用自遍历的方式,打印输出用户名长度大于2的信息
时间: 2024-10-03 18:03:35 浏览: 26
Java代码实现移方块游戏05
首先,我们来创建一个名为`User`的类,包含姓名(`name`)、年龄(`age`)和性别(`gender`)属性,并提供无参和带参的构造方法。为了满足您的需求,我们可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
public class User {
private String name;
private int age;
private String gender;
// 无参数构造方法
public User() {
this.name = "";
this.age = 0;
this.gender = "";
}
// 带参数构造方法
public User(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 提供获取用户信息的方法
public String getName() {
return name;
}
// 其他getter和setter方法可以按需添加
// 打印所有女用户的函数
public static void printFemaleUsers(List<User> userList) {
for (User user : userList) {
if ("女".equals(user.getGender())) {
System.out.println("女用户信息: " + user.getName());
}
}
}
// 自遍历打印用户名长度大于2的用户
public void printUsersWithLongNames(List<User> userList) {
for (User user : userList) {
if (user.getName().length() > 2) {
System.out.println("用户名长度大于2的用户: " + user.getName());
}
}
}
public static void main(String[] args) {
// 创建一个User对象列表
List<User> userList = new ArrayList<>();
userList.add(new User("Alice", 25, "女"));
userList.add(new User("Bob", 30, "男"));
userList.add(new User("Charlie", 28, "女"));
// 打印所有女用户信息
printFemaleUsers(userList);
// 使用自定义遍历打印用户名长度大于2的用户
userList.forEach(user -> {
if (user.getName().length() > 2) {
user.printUsersWithLongNames(userList); // 这里会报错,因为printUsersWithLongNames只能打印当前用户自身的信息,不是整个列表
}
});
// 正确的自遍历打印方式
for (User user : userList) {
user.printUsersWithLongNames(userList);
}
}
}
```
注意:在`main`方法中,当我们试图在`forEach`循环内调用`printUsersWithLongNames`时,由于它实际上是接收整个列表作为参数,所以这里会引发错误。正确的做法应该是让每个用户单独检查并打印自己的信息。
阅读全文