当前位置: 首页 > 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.rkmt.cn/news/1453449.html

相关文章:

  • PCL2启动器网络异常问题:从快速诊断到彻底修复的终极指南
  • 2026年宁夏打包箱与钢结构工程源头工厂选型指南:西北五省厂房冷库一站式解决方案 - 优质企业观察收录
  • 香奈儿方胖子闲置怎么出手?广州黄金处置攻略,认准收的顶不踩坑 - 奢侈品回收测评
  • foobox-cn CD抓轨实战指南:三步实现无损音乐数字化完整方案
  • 从静态词表到智能语料库:如何构建面向NLP应用的现代英语词频资源
  • 去抖音水印的软件免费哪个好用?2026实测三款工具横评 - 科技热点发布
  • 长沙名表高价出手技巧 正规实体回收门店测评 - 奢侈品回收测评
  • S3.1功能堆砌陷阱——少即是多的产品设计哲学
  • 3分钟极速上手:DeepL Chrome翻译插件让你轻松阅读全球网页
  • 告别密码焦虑:手把手教你用KeePass+插件打造个人专属密码库(附Chrome自动填充配置)
  • 别再只会用id和class了!Selenium自动化测试中XPath相对路径的5个实战技巧(附Chrome调试方法)
  • S3.2自我中心陷阱——如何真正理解你的用户
  • 终极指南:用Mac Mouse Fix彻底改造你的Mac鼠标体验 [特殊字符]
  • 零成本搭建专业直播设备:DroidCam OBS插件完全指南
  • 九江本地家电维修师傅电话推荐|本地维修家电|欧米到家统一报修 - 欧米到家
  • Vintern-1B-v2-ViTable-docvqa未来展望:越南语多模态AI的5大发展趋势
  • STM32F103C8T6驱动MFRC522模块:从硬件SPI失败到软件模拟成功的完整避坑指南
  • PythonVista:让Windows Vista和Server 2008完美运行现代Python的终极方案
  • 从KITTI原始数据到OpenPCDet可用的.pkl:一份完整的自定义数据预处理指南
  • 5分钟搞定Linux无线网络:RTL8852BE驱动终极安装指南
  • 告别Keil:用J-Link和Ozone免费调试任意编译器生成的ELF文件(附波形分析)
  • Apex Legends智能压枪助手:免费开源工具实现精准射击控制
  • 如何优化Distilbert-base-uncased-emotion推理速度:3个实用技巧 [特殊字符]
  • 手把手教你白嫖Llama3-70B的API:用Python代码5分钟搞定免费集成
  • 微信小程序一键接入高德/腾讯/百度三地图定位与路线导航的完整代码包
  • 从日线到Tick:手把手教你用迅投QMT获取全周期历史行情数据(含北向资金等特殊数据)
  • BMFont避坑指南:为什么你导出的艺术字体在Unity里显示不全或变糊?
  • WzComparerR2终极指南:冒险岛WZ文件提取器完全使用教程
  • 额济纳旗26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • PADS老鸟的Gerber输出效率秘籍:巧用无模指令与CAM模板批量处理