0-日常知识点补充,问题解答

news/2025/2/22 22:49:45/文章来源:https://www.cnblogs.com/Newlife666/p/18731583

为什么要实例化才能用方法,而有些类直接就用方法了,两者的区别和这样做的好处是什么,用通俗的语言解释?

可以用一个生活中的例子来理解这个问题:

假设你要做菜🍳

需要实例化的类:像"厨师"

必须先雇一个具体厨师(实例化),才能让他炒菜
每个厨师有自己的特点:老王做川菜,老张做粤菜(不同实例的不同状态)
好处:可以同时有多个厨师工作,互不干扰(实例独立)
直接使用方法的类:像"菜刀工具包"

不需要特定的人,直接拿起来就能切菜(静态方法)
比如菜刀磨锋利的方法,所有厨师共用同一套工具(无需实例化)
好处:随用随取,节省资源(无需重复创建对象)
为什么这样设计?

实例化的好处:

每个对象像独立的机器人🤖,能记住自己的状态(比如游戏角色各自的血量、等级)
避免数据混乱(你银行的存款不会和别人的混在一起)
静态方法的好处:

像公共工具箱🔧,提供通用功能(比如计算器、单位换算)
省内存(不用创建无数个相同的工具)
适合纯逻辑操作(比如Math.sqrt(9)计算平方根)

// 需要实例化的「电饭煲」类
class RiceCooker {private int riceAmount; // 每个电饭煲有自己的状态(米量)// 必须实例化后才能用的方法public void cook() {if (riceAmount > 0) {System.out.println("煮饭中...");}}public void setRice(int amount) {riceAmount = amount;}
}// 直接使用的「数学工具」类
class MathUtils {// 静态方法:不需要实例化就能用public static int add(int a, int b) {return a + b;}
}public class Main {public static void main(String[] args) {// 实例方法的使用(必须 new 对象)RiceCooker myCooker = new RiceCooker();myCooker.setRice(2);myCooker.cook(); // 输出:煮饭中...// 静态方法的使用(直接通过类名调用)int result = MathUtils.add(3, 5);System.out.println(result); // 输出:8}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888211.html

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

相关文章

this和super--java进阶day01

1.this和super的代表super是父类的标识符,如堆内存中的标志 2.this和super的访问重点说访问构造方法,super()访问父类构造方法我们已经清楚,但是this()访问本类构造方法,我们不清楚有什么用意义 如以下情境 假设在公司制作一个系统,1.0有三位角色随着版本更新,1.1要新…

软件开发与创新课程设计第一次作业---小游戏《勇者冒险》改写

《勇者冒险》小游戏代码优化 一、项目名称与来源 题目为《勇者冒险》(原项目没有名字,是作者取的),代码来源是CSDN,链接如下: https://blog.csdn.net/zjx120307/article/details/126221342?sharetype=blog&shareId=126221342&sharerefer=APP&sharefrom=qq 本…

多周期处理器debug记录

这篇随笔记录的是从普通的多周期处理器到加入握手信号和axi-lite协议sram的处理器。 在之前的多周期处理器里,由于结构比较简单,所以我给ifu和exu的握手信号加入的是时序逻辑,idu由于只做解码,所以握手信号放在了组合逻辑里,差不多就和透传差不多。但是加入sram握手信号以…

继承内存图--java进阶 day01

主方法进栈,有new进堆堆内存中先存自己类中有的变量又因为继承了父类,所以父类中的变量也要存入 即使被私有化,依旧可以继承,只是没有权限使用!创建对象时,会调用构造方法,所以走构造方法,实参传形参.....继续走到super,访问父类的构造方法,父类构造方法进栈,形参继…

离散化学习笔记

离散化学习笔记 OP:又是一如既往的周更。。。水死了 定义离散化:将数字映射为是第几小的数,其保证数据在Hash之后仍然保持原来的全/偏序关系,能够解决:通过元素相对大小即可解决的问题。 其实本质上就是哈希的一种特殊规则而已。(离散化简化了不止亿点)目标将一堆乱序且…

java知识面试day2

1.说出java和c++的区别java是一个纯粹的面向对象语言,所有的对象都继承于java. lang.Object,C++兼容C,不但支持面向对象也支持面向过程 java有着一次编译四处运行的跨平台特性。 java不具有指针,但具有垃圾回收。 java不支持多重继承,只能通过实现多个接口去达到相同目的2.…

继承中构造方法访问特点--java 进阶day01

1.子类不可以继承父类的构造方法构造方法的名称必须与类名一致,上图中类名是Zi,而构造方法名是Fu,肯定不行 2.子类在初始化之前,需要对父类初始化 子类在初始化的过程中,很有可能会调用到父类的数据,如果父类没有提前初始化,子类就无法调用这些数据3.通过在子类中访问父…

Mysql莫名其妙爆出拒绝访问问题的原因及解决方案

本文记录使用Mysql作为数据库时发生拒绝访问问题的解决方案Mysql出现拒绝连接问题 ⛄问题原因 : Mysql密码错误,本机上并不是只有一个Mysql服务,我们在开机时启动了并非以前使用的那个Mysql服务,所以造成了密码的错误🌟解决方案 :手动关闭当前正在启用的Mysql服务,尝试找…

Codes 开源 免费 研发项目管理平台 3.0.0 版本发布及创新的轻IPD实现

Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作,使敏捷开发更易于实施。采用轻量化的 IPD 模式实现,且融合了敏捷 。轻 IPD 主要解决多项目交付的研发过程管理,…

2025/2/15课堂记录

数字转换,皇宫看守,树上dp,树的直径目录数字转换 皇宫看守数字转换这是一道树的直径题。 首先,树的直径定义是:树上两个结点之间的最短(加权)路中最长的一条路径(和二分答案没关) 但由于贪心思想,这个路径一定起点终点是两片叶子结点如图,这棵树的直径就是5,即节点…

基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真

1.课题概述基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真。利用电压外环PI调节器得到有功 电流指令值结合由负载侧电流检测 到 的无功 电流指令值 ,经由 状态解耦PI调节的电流内环控制器输出直接得到的是输出电压的指令值,用此信号作为采用控制…