面向对象

一.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<User> userList = new ArrayList<>();
    static ArrayList<News> newsList = new 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() + ")");
        }
    }
}
posted on 2026-06-27 21:06  小巴拉  阅读(2)  评论(0)    收藏  举报