6月3日笔记

  1. 面向过程和面向对象的差异
    面向对象围绕现实事物展开,定义事物自身属性;面向过程侧重程序编写,按执行步骤编码。

是抽象模板,定义一类事物共有:属性(特征)+方法(行为)

对象根据类实例化出来实实在在的个体

  1. 类和对象的关联
    类包含成员变量、成员方法两部分:
    成员变量:用来定义事物特征

​ 修饰符 class 类名{
​ 修饰符 数据类型 变量名;
}

​ 成员方法:用来定义事物行为

修饰符 class 类名{
修饰符 返回值类型 方法名(参数列表){
}
}

代码练习

public class Main {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.name = "常志遥";
        stu.id = 723410605;
        stu.age = 22;
        stu.study();
        stu.exam();
        stu.displayInfo();
    }
}
class Student {
    String name; 
    int id;
    int age;
    public void study() {
        System.out.println(name + " 正在学习");
    }
    public void exam() {
        System.out.println(name + " 正在考试");
    }
    public void displayInfo() {
        System.out.println("姓名: " + name + ", 学号: " + id + ", 年龄: " + age);
    }
}
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. 注册");
            System.out.println("2. 登录");
            System.out.println("3. 查看新闻列表");
            System.out.println("4. 发布新闻");
            System.out.println("5. 退出");
            System.out.print("请选择:");
            int choice = scanner.nextInt();
            scanner.nextLine();

            switch (choice) {
                case 1:
                    register();
                    break;
                case 2:
                    login();
                    break;
                case 3:
                    showNewsList();
                    break;
                case 4:
                    publishNews();
                case 5:
                    System.out.println("再见!");
                    scanner.close();
                    return;
                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();

        // 创建User对象并添加到userList集合中
        userList.add(new User(name, pwd));//创建了一个新的User对象,需要看User定义
        System.out.println("注册成功!");
    }

    // 登录方法
    static void login() {
        System.out.print("用户名:");
        String name = scanner.nextLine();
        System.out.print("密码:");
        String pwd = scanner.nextLine();

        // 遍历userList,查找匹配的用户名和密码
        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();

        // 创建News对象,自动生成发布时间,并添加到newsList集合中
        newsList.add(new News(title, content));
        System.out.println("发布成功!");
    }

    // 查看新闻列表方法
    static void showNewsList() {
        System.out.println("\n====== 新闻列表 ======");
        // 遍历newsList,按顺序显示每条新闻的标题和发布时间
        for (int i = 0; i < newsList.size(); i++) {
            News n = newsList.get(i);
            // 编号从1开始,所以用(i+1)
            System.out.println((i+1) + ". " + n.getTitle() + " (" + n.getPublishTime() + ")");
        }
    }
}
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 String getPublishTime() {
        return publishTime;
    }

}
public class User {
    private String username;
    private String password;

    public User() {}

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() { return username; }
    public void setUsername(String username) { this.username = username; }
    public String getPassword() { return password; }
    public void setPassword(String password) { this.password = password; }
}
posted on 2026-06-03 20:07  毋凶  阅读(10)  评论(0)    收藏  举报