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

2025

2025.12.06

  • 常见困惑

    • 封装:

      • 实现:1.私有化成员属性(隐藏数据):用private关键字修饰类的成员变量(属性),禁止外部直接访问

        ​ 2.提供公共访问接口(暴露可控方法):在类内部定义public修饰的getter方法(读属性)和setter方法(写属性),外部只能通过这些方法访问或修改属性,同时可在方法内部添加校验逻辑

        class Calculator {// 1. 私有化属性private TextField num1;private TextField num2;private TextField num3;// 2. getter方法:外部获取属性值(读操作)public TextField getNum1() {return num1;}public TextField getNum2() {return num2;}public TextField getNum3() {return num3;}// 3. setter方法:外部修改属性值(写操作,可加校验)public void setNum1(TextField num1) {// 可选:添加校验逻辑,确保数据合法if (num1 != null) {this.num1 = num1;}}// 4. 扩展:封装业务接口(不止get/set,还能封装复杂逻辑)public void resetInput() {// 内部封装“清空输入框”逻辑,外部直接调用num1.setText("");num2.setText("");num3.setText("");}
        }
        

        3.外部通过接口访问属性:外部通过接口访问属性,外部代码不能直接操作private属性,只能通过getter和setter或其他公共方法实现对内部数据的可控访问

        class MyCalculatorListener implements ActionListener {private Calculator calculator;public MyCalculatorListener(Calculator calculator) {this.calculator = calculator;}@Overridepublic void actionPerformed(ActionEvent e) {// 外部通过getter获取属性,而非直接访问int n1 = Integer.parseInt(calculator.getNum1().getText());int n2 = Integer.parseInt(calculator.getNum2().getText());// 通过getter修改属性值calculator.getNum3().setText(String.valueOf(n1 + n2));// 调用封装的业务接口,清空输入calculator.resetInput();}
        }
        
    • 构造器:又叫构造方法,是在创建类的对时(执行new类型名()),自动初始化这个对象的属性,状态,组件 规则:1.名称必须和类名完全一致,没有返回值类型,自动执行,默认构造方法

    • Object类的问题:强制转换的问题:

      1.向上转型(子类->Object)无条件自动完成

      2.向下转型(object->子类),不能随意转,必须满足object引用的实际对象是目标子类,且建议先用Instanceof判断,避免转换异常

http://www.gsyq.cn/news/74873.html

相关文章:

  • 门面模式
  • anaconda3安装及jupyter环境配置教程
  • 图论杂题选讲
  • 初始学习率 0.002
  • animation实现卡片翻转动效‌
  • 完整教程:复盘Netflix的2025:广告业务、线下业态和视频播客
  • 深入解析:Photoshop图形工具组与图层样式
  • 利用Eval Villain进行客户端路径遍历(CSPT)漏洞挖掘与利用
  • MongoDB Docker 镜像制作与部署指南 - 教程
  • 详细介绍:28种CSS3炫酷加载动画:创建引人入胜的网页加载体验
  • 内部网关协议——OSPF 协议(开放最短路径优先)(链路状态路由协议) - 指南
  • 【GitHub热门项目】(2025-11-09) - 详解
  • 深入解析:Nginx优化与防盗链
  • [GESP202312 三级] 小猫分鱼
  • markdown文档格式分析,再使用python对md文件进行结构化拆解
  • CMake Uninstall
  • Day12-20251206
  • [NOI2015 程序自动分析]
  • 【基础】Unity着色器网格和计算对象介绍
  • 首单半价对话框的实现
  • Anchor宽高比
  • SAM3模型来了,手把手带你运行SAM3模型代码,SAM3模型初探!
  • 从可优化到可进化:企业智能化的本质、边界与治理
  • 线段树学习笔记
  • 短剧小程序 2025 核心痛点分析:内容、工艺与合规的三重困境
  • 「Java EE开发指南」如何在MyEclipse中构建EJB 2 Session Bean?(一)
  • 文件摆渡系统哪个好:提升企业文件交换安全性的首选方案
  • 115.娇三“独处-再思考”
  • 2025最新发布!耐磨的轮胎推荐:五大高耐磨胎精选报告
  • 2025年权威发布!防爆胎更换推荐:权威防爆胎更换TOP指南