2025

news/2025/12/6 19:56:33/文章来源:https://www.cnblogs.com/Ricard/p/19316478

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.mzph.cn/news/990485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

APP开发实用的技术选型:原生 vs 跨端 (Flutter/React Native) 对比与适配场景

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20个免费电子书下载网站,实现电子书自由!(2025持续更新)

在数字时代,电子书已成为知识传播的核心载体。以下基于您列出的网站,汇总成一篇指南,聚焦免费或开放访问的电子书平台。这些资源涵盖公共领域经典、学术文献和当代作品,帮助读者轻松获取海量内容。每个平台各有特色…

Sampler AI 材质流:一键“喂”图生成 PBR - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vue 实用指令

限制input 只允许输入正整数<input type="number" v-number-only >directives: {// 限制input 只允许输入正整数number-only: {bind(el) {el.addEventListener(input, function() {let val = this.val…

anaconda3安装及jupyter环境配置教程

{ "cells": [ { "cell_type": "markdown", "id": "c8425656-904b-468d-9f78-c6e8978a0e29", "metadata": { "editable": true, "slidesh…

【算法题解】MX-S5-T1:王国边缘与倍增跳跃——深入理解内向基环树处理

【算法题解】MX-S5-T1:王国边缘与倍增跳跃——深入理解内向基环树处理 题目概述与难点分析 题目链接:洛谷 P11267 问题描述 在一个神奇的“王国边缘”中,有 n 个节点,每个节点 i 都有一个唯一的下一个节点 to[i] 和…

标程-【MX-S5-T1】王国边缘

https://htoj.com.cn/cpp/oj/problem/detail?pid=22185117033728&tid=22487079604096&gid=22487067878400 #include <bits/stdc++.h> #define ll long long #define P 1000000007 using namespace std;…

关于排列问题的做题及思考

对于排列的处理方式较为经典,要么是确定相对顺序,要么是确定具体大小,插入法 确定(预定)法按值域 从小到大插入数 从小到大确定数的位置按位置(下标)从题目来着手,相信可以加深一些自己的认识。 At_dp_t 发现我…

图论杂题选讲

CF173D Deputies 题意简述 给定一个 3n 个点的二分图,将这个二分图分成 n 组,每组点之间没边。 分析 首先如果两边都是 3 的倍数,那么直接三个三个的选就好了。 如果不是那么就会有一边选一个另一边选两个的情况,同…

VMware Workstation Pro下载并安装Windows

VMware Workstation Pro下载并安装Windows 引言 欢迎阅读本教程!无论你是初次接触 VMware Workstation Pro,还是曾因安装失败而放弃,本指南都将为你提供一条清晰、无差错的路径。完成后,你将能顺利运行 VMware Wor…

第4章串、数组和广义表

第4章串、数组和广义表 4.1串的定义 1. 串的定义(课件核心内容)文字定义:由零个或多个字符组成的有限序列。 符号化表示:记作 S=′a1a2⋯an′(n≥0),其中 S 为串名,a1a2⋯an为串值,n 为串的长度。关于“串的定…

初始学习率 0.002

初始学习率 0.002 是 Faster R-CNN 精细微调场景下的保守配置,比标准值 0.02 小10倍,适用于迁移学习冻结Backbone或Warmup预热阶段。 一、0.002 的使用场景 场景1:分层学习率中的BackbonePython 复制# Backbone微调…

animation实现卡片翻转动效‌

使用animation实现卡片翻转动效‌,效果如下(iPhone转的gif有卡顿,实际效果流畅):先上全部代码,再在最后给出代码解析,分步说明实现原理。 html <div class="visual-card"><div class="…

调试工具

程序调试方法:串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息显示屏调试:直接将显示器连接到单片机,将调试信息打印在显示屏上Keil调试模式:借助Keil软件的调试模式,可使用单步运…

完整教程:复盘Netflix的2025:广告业务、线下业态和视频播客

完整教程:复盘Netflix的2025:广告业务、线下业态和视频播客2025-12-06 19:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !import…

深入解析:Photoshop图形工具组与图层样式

深入解析:Photoshop图形工具组与图层样式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

Spring Cloud Gateway 源码分析一

Spring Cloud Gateway 总体概述 请关注微信公众号:阿呆-bot 1. 项目概述 Spring Cloud Gateway 是 Spring 官方提供的 API 网关解决方案,基于 Spring Framework、Spring Boot 和 Project Reactor 构建。简单说,它就…

利用Eval Villain进行客户端路径遍历(CSPT)漏洞挖掘与利用

本文详细介绍了如何利用Eval Villain工具逐步发现和利用客户端路径遍历(CSPT)漏洞,并通过实际演练展示了从漏洞发现到完整利用链构建的过程,包括工具配置、源码插桩和漏洞利用技术。CSPT the Eval Villain Way! Do…

Daytona:90ms 启动的 AI 代码沙箱基础设施

开篇 你的 AI Agent 生成了一段 Python 代码,敢直接在生产环境运行吗?传统容器启动需要 3-5 秒,虚拟机更慢。开源项目 Daytona 给出了新方案:90 毫秒内创建隔离沙箱,支持 Python / Node / Go 等多语言,还能持久化…

MongoDB Docker 镜像制作与部署指南 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …