Day22_java方法

news/2025/3/26 1:31:58/文章来源:https://www.cnblogs.com/piphermitage/p/18792673

Java方法

方法重载

package com.xiang.method;public class Demo02 {public static void main(String[] args) {int max = max(20, 100, 10);System.out.println(max);}// 比大小public static int max(int num1,int num2){int result = 0;if (num1 == num2){System.out.println("num1==num2");return num1;   // 终止方法}if (num1 > num2)result = num1;else {result = num2;}return result; // 终止方法}// 重载:浮点数比大小public static double max(double num1,double num2){double result = 0;if (num1 == num2){System.out.println("num1==num2");return num1;   // 终止方法}if (num1 > num2)result = num1;else {result = num2;}return result; // 终止方法}// 重载:三个数比大小(注:存在小问题,仅作练习用)public static int max(int num1,int num2,int num3){int max = 0;max = max(num1,num2);max = max(max,num3);return max;}
}

可变参数

package com.xiang.method;public class Demo04 {public static void main(String[] args) {//Demo04 demo04 = new Demo04();//demo04.test(1,2,3,4,5,8);printMax(34,55,9,2,8,7,469);printMax(new double[]{2,6,7,9,15});}public void test(int... i){System.out.println(i[0]);System.out.println(i[1]);System.out.println(i[2]);System.out.println(i[3]);System.out.println(i[4]);System.out.println(i[5]);}public static void printMax( double... numbers){if (numbers.length == 0){System.out.println("No argument passed");return;}double result = numbers[0];// 排序for (int i = 1; i < numbers.length; i++) {if (numbers[i] > result){result = numbers[i];}}System.out.println("The max value is " + result);}
}

每日一题:Java中的‘static’

在Java中,static成员(包括变量和方法)是属于类本身的,而不是类的某个特定实例。这意味着它们可以在不创建类的实例的情况下被访问。然而,虽然可以通过类的实例来访问这些静态成员,但这并不是推荐的做法,原因如下:

1. 语义清晰性

通过类名直接访问静态成员能够更清晰地表达出这个成员是属于类级别的,而非实例级别的。这样做可以提高代码的可读性和可维护性,让其他开发者(或未来的你)一眼就能看出该成员与整个类有关,而不是与任何特定的对象实例相关。

2. 避免混淆

如果使用实例引用来访问静态成员,可能会给不太熟悉代码的人造成误解,误以为该成员是与特定对象实例相关的。这会增加理解代码逻辑的难度,并可能导致错误的理解或假设。

3. 编译器优化

尽管从技术角度看,通过实例引用访问静态成员不会影响程序的行为,但它可能会影响编译器优化的效率。通过类名访问静态成员,可以让编译器更容易识别出这种访问模式,从而做出更好的优化决策。

4. 继承和多态问题

当涉及到继承时,通过实例引用来调用静态方法可能会导致一些困惑,因为静态方法不会像实例方法那样参与多态机制。也就是说,如果你有一个父类的引用指向子类的实例,通过这个引用来调用静态方法时,总是会调用父类中定义的方法版本,而不会考虑实际的运行时类型。这与人们通常期望的动态绑定行为不符。

综上所述,为了代码的清晰性、避免混淆以及更好地利用编译器优化,Java语法建议直接通过类名来访问静态成员,而不是通过实例引用来访问。这样不仅使代码更加直观易懂,而且有助于减少潜在的错误和误解。

百词斩

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

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

相关文章

文献阅读《Spectral Networks and Deep Locally Connected Networks on Graphs》

参考博客 第一代图卷积网络:图的频域网络与深度局部连接网络 - 知乎 (zhihu.com) 论文解读一代GCN《Spectral Networks and Locally Connected Networks on Graphs》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 论文核心 卷积神经网络得益于所处理的数据具有局部平移不变…

【CodeForces训练记录】Codeforces Round 1013 (Div. 3)

训练情况赛后反思 A题题目读半天,发现日期有前导零,div3还是比较基础一点,但是感觉自己还是不够熟练,D题看出来二分但是调了挺久的 A题 判断取多少个数之后才能构成 20250301,我们维护数字的出现次数,直到所有数字的出现次数全部大于等于 20250301 的出现次数时输出位置即…

字符串问题的江湖奇宝:进制哈希

江湖中,剑客以快制胜,而算法竞赛里,字符串哈希(String Hashing)便是那柄出招如电的快剑。 各种字符串问题纷乱复杂,各种字符串算法招式繁复,需苦练内功心法。但字符串哈希算法却只凭一招:将字符串化作数字,以数论为刃,至简之道斩尽来犯之敌。 但此招并非无懈可击。若…

HW-1

1.选项A是正确的,它表示的是极小项m6的正确形式。极小项m6对应的是变量a=0,b=1,c=1,d=0的情况,因此其表达式应为(\overline{a} \cdot b \cdot c \cdot \overline{d}),即选项A。 其他选项的分析:选项B是一个或项,不符合极小项的定义。 选项C缺少变量a和d,不是一个完整的…

为什么nn.Linear 的weight 是 (out_features, in_features)

在PyTorch的nn.Linear中,权重矩阵的形状为(out_features, in_features)。这是因为线性变换的实现方式为:具体来说:当创建nn.Linear(10, 60)时,in_features=10,out_features=60,因此权重的形状是(60, 10)。 输入张量t的形状为(2, 5, 10),与转置后的权重a.weight.T(形状(…

字符串问题的终极法宝:进制哈希

江湖中,剑客以快制胜,而算法竞赛里,字符串哈希(String Hashing)便是那柄出招如电的快剑。 各种字符串问题纷乱复杂,各种字符串算法招式繁复,需苦练内功心法。但字符串哈希算法却只凭一招:将字符串化作数字,以数论为刃,至简之道斩尽来犯之敌。 但此招并非无懈可击。若…

布局机器人,vivo用三十年技术沉淀回答“时代之问”

科技创新给产业界带来最大的影响就是“跨界焦虑”。不敢错过,这是企业面对风口的普遍心态。生怕一波没跟上,就被时代淘汰了。 但不错过,并不等于抓得住。比如元宇宙概念经历资本狂欢,无数科技巨头卷入,退潮时一地鸡毛。再比如在新能源汽车赛道卷起千亿投资风暴时,也有很多…

石油化工厂区防爆入侵报警系统

石油化工厂区防爆入侵报警系统采用AI智能防爆预警摄像头嵌入AI人体识别深度算法,对人体目标特征的检测分析识别预警。系统设备采用AI算法,通过大量真实的场景样本训练后,能够在各种应用场景下及时准确地对场景中发生的人体入侵行为发出告警信息。通过对实时视频图像进行智能…

矿山皮带运输机安全监测预警系统

智慧矿山皮带运输机安全监测预警系统是基于AI视频监测分析识别的智能皮带管理系统,该系统通过将人工智能识别算法提高实时分析的效率,达到现场快速识别、分析、预警的目的,为矿山皮带运输系统提供可视化的安全生产保障,该系统已经实现了皮带运输机大媒块、传输带异物、传输…

OP253自动安装凸轮弹簧常见问题

1.夹爪抓取弹簧后不停扔料 两台弹簧振动盘里面的弹簧是镜像件,如果出现混料被取走,会导致卷簧时卡死。夹爪夹住弹簧并提起时,有两个接近开关会检测弹簧是否正确,如果不正确,会将弹簧扔进废料桶。上图两个接近开关是埋入式,只有中心位置检测。应该左边不亮,右边亮,如果任…