当前位置: 首页 > news >正文

63笔记

一、面向对象核心基础概念

  1. 类与对象
    类:事物的抽象模板,用来归纳同一类事物共有的特征(成员变量 / 属性)与行为(成员方法)。
    对象:依照类模板实例化出来的具体实体。
    类的两大组成:
    成员变量(属性):用来保存事物特征,例如用户账号、密码、新闻标题;
    成员方法:用来定义事物可执行的动作,例如账号注册、账号登录、展示新闻列表。
  2. 封装(Encapsulation)
    核心规则:将类的成员变量使用private私有化,外部无法直接访问,依靠公共getter/setter方法实现属性取值、赋值。
    封装优势:约束字段访问权限、规避非法数据赋值、提升代码安全性与后期维护性。
    java
    public class User {
    // 私有成员变量
    private String username;
    private String password;
    // 获取用户名
    public String getUserName() {
    return username;
    }
    // 设置用户名
    public void setUserName(String username) {
    this.username = username;
    }
    }
  3. 构造方法
    语法规范:方法名和类名完全一致、无返回值修饰符;分为无参构造、有参构造两类。
    无参构造:默认空参,用来快速创建空属性对象;
    有参构造:实例化对象时直接给成员变量赋值,完成属性初始化。
    java
    // 用户有参构造方法
    public User(String username, String password) {
    this.username = username;
    this.password = password;
    }
  4. ArrayList 动态集合
    可以自动扩容的容器,动态存放多个引用类型对象,本次微头条项目用来批量存储注册用户、新闻数据。
    java
    // 创建用户集合容器
    ArrayList userList = new ArrayList<>();
    // 往集合存入用户对象
    userList.add(new User("Tom", "123"));
    二、微头条项目实体类代码解析
  5. News 新闻实体类
    成员属性:title(新闻标题)、content(新闻正文)、publishTime(发布时间)
    构造方法内通过日期工具类自动生成系统当前发布时间:
    java
    this.publishTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
    对外暴露getTitle()、getPublishTime()两个取值方法,遵循封装思想。
  6. User 用户实体类
    成员属性:username(用户名)、password(登录密码)
    全字段提供 getter/setter 封装方法,用于项目注册、登录业务:
    注册逻辑:控制台录入账号密码→构建 User 对象→存入 ArrayList 用户集合;
    登录逻辑:遍历全部集合数据→比对账号密码→匹配成功记录登录状态。
    三、主程序 Main 代码架构说明
  7. Main 主类结构
    表格
    分类 作用说明
    静态集合 userList 充当简易数据库,持久化所有注册用户信息
    静态集合 newsList 统一存放所有发布的新闻实例
    静态成员 currentUser 标记当前已登录用户,为空代表未登录
    main 主方法 while 死循环驱动首页功能菜单
    register() 用户注册业务方法
    login() 账号登录校验方法
    publishNews() 新闻发布功能
    showNewsList() 全量新闻查看
  8. 项目核心功能代码汇总
    表格
    功能模块 关键代码
    循环遍历集合校验用户名 for (User u : userList)
    注册新增用户到集合 userList.add(new User(name,pwd))
    登录账号密码匹配 u.getUserName().equals(name) && u.getPassword().equals(pwd)
    保存登录用户状态 currentUser = u
    判断用户是否登录 if(currentUser == null)
    新增新闻存入集合 newsList.add(new News(title,content))
    普通 for 遍历新闻列表 for(int i=0;i<newsList.size();i++)
    三、当日知识点复盘总结
    ArrayList:不定长容器,实现对象批量存储,突破数组固定长度限制;
    封装:private私有化属性 + 公共 get/set,隔离外部直接操作成员变量;
    static 修饰:被 static 修饰的变量属于类,全局共用,跨方法共享数据;
    面向对象设计:拆分 User、News 两个独立实体类,各司其职,代码解耦;
    构造方法:new User(参数)、new News(参数)实例化对象并初始化字段。
    四、整体小结
    表格
    | 概念 | 核心作用 | 代码示例 |
    | --------- | ------- | ---------------------------------------- |
    | 类 | 抽象事物模板 | class User{} |
    | 对象 | 类的具体实例 | new User() |
    | 封装 | 数据安全防护 | private + getter/setter |
    | 构造方法 | 对象初始化赋值 | public User(String name){} |
    | ArrayList | 批量存对象 | ArrayList list = new ArrayList<>() |
    实训当日心得
    今日正式从面向过程编程转向面向对象开发,最大收获是理解了类与对象是现实事物的代码映射。之前写代码习惯把所有逻辑堆在 main 方法里,通过微头条分层练习,学会拆分实体类、封装数据、用集合模拟数据库。明白了封装不只是语法规范,更是项目后期迭代、数据安全的保障,后续练习继续巩固面向对象的设计思维。
http://www.jsqmd.com/news/947934/

相关文章:

  • Hermes WebUI留存率:提高用户粘性的终极指南
  • 年省30万!杉山润滑油科技降本增效案例解析 - 速递信息
  • Material Design 终极指南:15个开源Android应用设计技巧
  • Qwen3.5-9B的MoE架构解析:混合专家模型在Ascend硬件上的终极优势指南
  • Qt多窗口架构设计需求简介
  • Vibe-Trading:赋予交易助手全面能力,多特性助力金融研究与交易!
  • 收藏必备!小白程序员快速掌握大模型:AI Agent 代码产出与架构质量平衡秘籍
  • 2026年6月热门的储能电站服务商推荐,大型光伏储能电站/农村光伏电站/新能源光伏电站,储能电站服务商推荐 - 品牌推荐师
  • 目前靠谱的TPO融合瓦厂家 - GrowthUME
  • 2026 年东北玉米种子哪家强?四家企业格局深度解析 - 勤劳的黄色小蜜蜂
  • 杭州源睿汽车服务:建德靠谱的中巴车租赁公司怎么联系 - LYL仔仔
  • 2026年笔记本维修全攻略,换屏幕换电池清灰重装系统一站解决 - 资讯焦点
  • 如何快速部署YI-1.5-9B:5步完成中文大语言模型本地安装
  • 轻量化大模型工程实践:低延迟高保真LLM端侧部署指南
  • 多维度可视化分析,智能数据驱动全周期教学质量评估 - 玖叁鹿
  • Granite Guardian 3.0-2b-GGUF性能评测:横扫12项权威基准,F1分数高达0.98
  • GPT2_PMC-openmind性能优化指南:提升医学问答准确率的3个技巧
  • 实战应用:基于快马平台与openhuman开发虚拟试衣演示系统
  • 破解工业废水处理定制难题:GCE全链路定制化达标方法论如何实现稳定达标? - 资讯快报
  • 鸿蒙Flutter实战:IndexedStack保持Tab页面状态
  • Vicuna-7B配置文件详解:优化模型参数提升对话质量
  • VisRAG-Ret性能优化秘籍:提升视觉检索效率的10个技巧
  • 江苏省采购证书怎么选择怎么考?2026年CPPM注册职业采购经理报考全攻略(官方授权版) - 众智商学院课程中心
  • Python爬虫实战:构建你的“国家标准”本地索引库!
  • 第222期方班学术研讨厅(复盘课)成功举办
  • 2026 安庆全域工装甄选指南|迎江 / 大观 / 宜秀 / 桐城 / 怀宁 / 宿松全区域商铺、办公室、商场装修 3 家正规合规企业排行 + 本地装修避坑全攻略 - 本地便民网
  • AceGPT-v1.5-13B模型压缩与优化:降低推理成本的10个技巧
  • WinUtil:一键解决Windows系统三大痛点的终极免费工具指南
  • Rose/flan-t5-xxl-SFT与OpenMind框架:华为NPU上的高效AI推理方案
  • Vue3 + Element Plus 实战:用Composition API重构el-tabs动态加载表格(对比Vue2选项式API)