当前位置: 首页 > 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.jsqmd.com/news/64319/

相关文章:

  • vue 实用指令
  • vue 实用指令
  • 【算法题解】MX-S5-T1:王国边缘与倍增跳跃——深入理解内向基环树处理
  • APP开发实用的技术选型:原生 vs 跨端 (Flutter/React Native) 对比与适配场景
  • Sampler AI 材质流:一键“喂”图生成 PBR - 教程
  • anaconda3安装及jupyter环境配置教程
  • 关于排列问题的做题及思考
  • 图论杂题选讲
  • VMware Workstation Pro下载并安装Windows
  • 第4章串、数组和广义表
  • 初始学习率 0.002
  • animation实现卡片翻转动效‌
  • EXTI外部中断
  • 调试工具
  • 完整教程:复盘Netflix的2025:广告业务、线下业态和视频播客
  • 深入解析:Photoshop图形工具组与图层样式
  • Spring Cloud Gateway 源码分析一
  • 利用Eval Villain进行客户端路径遍历(CSPT)漏洞挖掘与利用
  • RocketMQ优缺点及使用场景以及如何保证消息不丢失
  • Daytona:90ms 启动的 AI 代码沙箱基础设施
  • Daytona:90ms 启动的 AI 代码沙箱基础设施
  • 20234320 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • MongoDB Docker 镜像制作与部署指南 - 教程
  • 东莞水乡也新建了一个人工智能应用创新中心?怎么回事 - ---Wg--
  • 详细介绍:28种CSS3炫酷加载动画:创建引人入胜的网页加载体验
  • RocketMQ 与 Kafka 的详细对比(架构、性能、使用场景)
  • 智商就是贼商,情商就是骗商,美国就是如此
  • 深入解析:Excel斜线表头怎么做?合并单元格后添加对角线+两侧输入文字,新手也能秒会!
  • 深入理解RocketMQ基本原理
  • 内部网关协议——OSPF 协议(开放最短路径优先)(链路状态路由协议) - 指南