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

2026.6.3面向对象

一.面向对象核心概念

1. 类与对象

类:模板/蓝图,描述一类事物的共同特征(属性)和行为(方法)。
对象:根据类创建的具体实例。
类的组成:
成员变量(属性):描述类的状态(如颜色、品牌、容量)。
成员方法:描述类的行为(如登录、注册、展示新闻)。

2. 封装(Encapsulation)

将属性私有化(private),通过公共的 getter/setter 方法访问。
优点:保护数据安全、控制访问权限、便于维护。
示例(User类):
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"));

二.微头条示例代码解析

1.News 类(新闻)

属性:title, content, publishTime
构造方法中自动生成发布时间:
java
this.publishTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
提供 getTitle() 和 getPublishTime() 方法。

2.User 类(用户)

属性:username, password
提供 getter/setter 方法。
典型应用场景(注册+登录)
注册:
输入用户名、密码
创建 User 对象
存入 ArrayList
登录:
遍历 ArrayList
校验用户名和密码是否匹配

三.代码分析

0872784f47093c4449ac344caf0a047

1.Main.java(主程序)

├── 静态集合(模拟数据库)
│ ├── userList:存储所有注册用户
│ ├── newsList:存储所有新闻
│ └── currentUser:记录当前登录用户
├── main():主菜单循环
└── 5个功能方法
├── register():注册
├── login():登录
├── publishNews():发布新闻
└── showNewsList():查看新闻列表

2.关键代码片段总结

功能 核心代码
遍历判断用户名是否存在 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 (int i = 0; i < newsList.size(); i++)

3.知识点回顾

ArrayList:动态存储多个对象
封装:通过 getUserName() / getPassword() 访问私有属性
static:类级别共享数据
面向对象:User 和 News 是两个独立的类
构造方法:new User(name, pwd)、new News(title, content)

四.小结

概念 作用 示例
类 定义模板 class User
对象 具体实例 new User()
封装 保护数据 private + getter/setter
构造方法 初始化对象 public User(...)
ArrayList 存储多个对象 ArrayList

http://www.jsqmd.com/news/942026/

相关文章:

  • CodeT5社区资源汇总:学习资料、工具和最佳实践
  • PCL2启动器网络异常问题:从快速诊断到彻底修复的终极指南
  • GitHub_Trending/ma/machine-learning-for-trading数据处理教程:从原始数据到交易信号的完整流程
  • Windows系统盘救星:用mklink命令把Oracle数据库从C盘挪走(附详细步骤)
  • AI大模型、Agent、MCP彻底搞懂!从大脑到智能体,底层逻辑全解析,小白也能秒懂!
  • AI 赋能金融场景钓鱼攻击演化、技术解构与全链路风控研究
  • 大连本地黄金回收猫腻不少,完整版避坑手册,选准门店守住变现收益 - 合扬奢侈品交易中心
  • 数据库适配的“最后一公里”:从“能连上”到“跑得稳”
  • 2026年宁夏打包箱与钢结构工程源头工厂选型指南:西北五省厂房冷库一站式解决方案 - 优质企业观察收录
  • 突破3D视觉数据瓶颈:合成数据引擎的创新策略与实践
  • Arduino超声波感应洗手液机DIY:从传感器原理到机械传动全解析
  • BarrageGrab:革新直播弹幕采集工具的终极解决方案
  • 3个关键步骤:彻底解决Windows 11热键冲突问题
  • 从论文到实践:Distill-Any-Depth-Large-hf单目深度估计核心技术原理解析 [特殊字符]
  • 香奈儿方胖子闲置怎么出手?广州黄金处置攻略,认准收的顶不踩坑 - 奢侈品回收测评
  • foobox-cn CD抓轨实战指南:三步实现无损音乐数字化完整方案
  • 2026深圳工商注册公司口碑排行推荐 5家直营机构实测对比哪家好 - 奔跑123
  • 2026年6月科普|北上广深杭宁锡珠劳力士欧米茄卡地亚等九大瑞表常见故障与科学养护指南 - 亨得利官方售后
  • ComfyUI-AnimateDiff-Evolved:AI动画生成的终极解决方案与创新应用
  • 21个开箱即用的WPF主题文件,WhistlerBlue/RainierRadialBlue等已修复兼容问题
  • 2026年国庆灯会:解读行业三大核心趋势 - 资讯纵览
  • 从静态词表到智能语料库:如何构建面向NLP应用的现代英语词频资源
  • 去抖音水印的软件免费哪个好用?2026实测三款工具横评 - 科技热点发布
  • 2026年,必须掌握的8种AI Agent核心设计模式
  • 在线去水印工具有哪些?2026实测这四款工具最能打 - 科技热点发布
  • 王伯吉巧斗母猪龙
  • 2026年湖南基建钢模板定制租赁怎么选?从BIM精准设计到共享周转的完整避坑指南 - 精选优质企业推荐官
  • S3.1功能堆砌陷阱——少即是多的产品设计哲学
  • 长沙名表高价出手技巧 正规实体回收门店测评 - 奢侈品回收测评
  • starlette笔记、和fastapi的区别