面向对象

User类
public class User {
private String username;
private String password;
public User() { // 无参构造函数
}
// 有参构造函数
// User user = new User("Tom", "123")
public User(String username, String password) {
this.username = username;
this.password = password;
}
// String a = user.getUsername();
// Syatem.out.println(a); //tom
public String getUsername() {
return username;
}
//String a = user.setUsername("Bob");
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
News类
import java.text.SimpleDateFormat;
import java.util.Date;
public class News {
private String title;
private String content;
private String publishTime;
public News(String title, String content) {
this.title = title;
this.content = content;
this.publishTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPublishTime() {
return publishTime;
}
public void setPublishTime(String publishTime) {
this.publishTime = publishTime;
}
}
Main
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
static ArrayList
static ArrayList
static User currentUser = null;
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
while (true) { // 无限循环显示主菜单
System.out.println("\n====== 微头条主菜单 ======"); // 输出主菜单标题
System.out.println("1. 注册"); // 输出选项1
System.out.println("2. 登录"); // 输出选项2
System.out.println("3. 查看新闻列表"); // 输出选项3
System.out.println("4. 发布新闻"); // 输出选项4
System.out.println("5. 退出"); // 输出选项5
System.out.print("请选择:"); // 提示用户输入选择
int choice = scanner.nextInt(); // 读取用户输入的整数选项
scanner.nextLine(); // 吸收换行符,避免影响后续nextLine()
switch (choice) { // 根据用户选择执行不同操作
case 1:
register(); // 调用注册方法
break; // 跳出switch
case 2:
login(); // 调用登录方法
break;
case 3:
showNewsList(); // 调用显示新闻列表方法
break;
case 4:
publishNews(); // 调用发布新闻方法
break;
case 5:
System.out.println("再见!"); // 输出再见信息
scanner.close(); // 关闭Scanner释放资源
return; // 结束main方法,退出程序
default:
System.out.println("无效选择!"); // 输入其他数字时的提示
}
}
}
static void register() {
System.out.print("用户名:");
String name = scanner.nextLine();
// 检查重复
for (User u : userList) {
if (u.getUsername().equals(name)) {
System.out.println("用户名已存在!");
return;
}
}
System.out.print("密码:");
String pwd = scanner.nextLine();
userList.add(new User(name, pwd));
System.out.println("注册成功!");
}
static void login() {
System.out.print("用户名:");
String name = scanner.nextLine();
System.out.print("密码:");
String pwd = scanner.nextLine();
for (User u : userList) {
if (u.getUsername().equals(name) && u.getPassword().equals(pwd)) {
currentUser = u;
System.out.println("登录成功!");
return;
}
}
System.out.println("用户名或密码错误!");
}
static void publishNews() {
if (currentUser == null) {
System.out.println("请先登录!");
return;
}
System.out.print("标题:");
String title = scanner.nextLine();
System.out.print("内容:");
String content = scanner.nextLine();
newsList.add(new News(title, content));
System.out.println("发布成功!");
}
static void showNewsList() {
System.out.println("\n====== 新闻列表 ======");
for (int i = 0; i < newsList.size(); i++) {
News n = newsList.get(i);
System.out.println((i+1) + ". " + n.getTitle() + " (" + n.getPublishTime() + ")");
}
}
}

浙公网安备 33010602011771号