使用静态方法接受对象参数

我们先来看一个例子

public class MyInteger {  private int value;  // 构造函数  public MyInteger(int value) {  this.value = value;  }  // 实例方法  public boolean isEven() {  return value % 2 == 0;  }  // 静态方法接受int参数  public static boolean isEvenStatic(int value) {  return value % 2 == 0;  }  // 静态方法接受MyInteger参数  public static boolean isEvenStatic(MyInteger myInteger) {  return myInteger.value % 2 == 0;  }  // 提供一个getter方法来获取value字段的值(尽管在这个示例中不是必须的,但通常是个好习惯)  public int getValue() {  return value;  }  
}

接下来,我们演示如何使用这三种方法:

public class Main {  public static void main(String[] args) {  // 创建一个MyInteger对象  MyInteger myInteger = new MyInteger(10);  // 使用实例方法  boolean isEvenInstance = myInteger.isEven();  System.out.println("Is 10 even using instance method? " + isEvenInstance);   // 使用静态方法接受int参数  boolean isEvenStaticInt = MyInteger.isEvenStatic(10);  System.out.println("Is 10 even using static method with int parameter? " + isEvenStaticInt);  // 使用静态方法接受MyInteger参数  boolean isEvenStaticMyInteger = MyInteger.isEvenStatic(myInteger);  System.out.println("Is 10 even using static method with MyInteger parameter? " + isEvenStaticMyInteger); // 也可以这样使用静态方法接受MyInteger参数(如果已经有MyInteger对象的话)  boolean isEvenStaticMyIntegerAgain = myInteger.isEvenStatic(myInteger); // 注意这里调用静态方法时,仍然通过类名来调用,但我们可以使用myInteger对象作为参数  System.out.println("Is 10 even using static method with MyInteger parameter again? " + isEvenStaticMyIntegerAgain); }  
}

注意几点:

  1. 实例方法isEven()是通过MyInteger的实例myInteger来调用的。
  2. 静态方法isEvenStatic(int value)是通过类名MyInteger直接调用的,并传递了一个int类型的值。
  3. 静态方法isEvenStatic(MyInteger myInteger)也是通过类名MyInteger直接调用的,但传递了一个MyInteger类型的对象作为参数。

在实际编程中,我们通常直接通过类名来调用静态方法。


静态方法的特点

  1. 不依赖于对象实例:静态方法可以在没有创建类实例的情况下调用。
  2. 通过类名直接调用:你可以使用类名来调用静态方法,而不是通过类的实例。
  3. 可以访问静态变量:静态方法可以访问和修改类的静态变量。
  4. 不能访问非静态变量或方法:除非在静态方法中创建一个类的实例,否则静态方法不能直接访问类的非静态变量或方法。

// Main.java  class MyInteger {  private int value;  // 构造函数  public MyInteger(int value) {  this.value = value;  }  // Getter方法  public int getValue() {  return value;  }  // toString方法,用于打印MyInteger对象的信息  @Override  public String toString() {  return "MyInteger{" + "value=" + value + '}';  }  // 静态方法,接受两个MyInteger对象作为参数,返回它们的和  public static MyInteger add(MyInteger a, MyInteger b) {  int sum = a.getValue() + b.getValue();  return new MyInteger(sum);  }  
}  public class Main {  public static void main(String[] args) {  // 创建两个MyInteger对象  MyInteger num1 = new MyInteger(5);  MyInteger num2 = new MyInteger(10);  // 使用静态方法add计算两个MyInteger对象的和  MyInteger sum = MyInteger.add(num1, num2);  // 打印结果  System.out.println(sum); // 输出: MyInteger{value=15}  }  
}

 在这个例子中,add方法是一个静态方法,它接受两个MyInteger对象作为参数,并返回一个新的MyInteger对象,该对象表示这两个数的和。这个方法不需要MyInteger类的实例来调用,因为它是通过类名MyInteger直接调用的。

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

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

相关文章

leetcode打卡#day44 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

1049. 最后一块石头的重量 II class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int> dp(1501, 0);int sum 0;for (int i 0; i < stones.size(); i) {sum stones[i];}int target sum / 2;for (int i 0; i < stones.si…

动态功能连接评估方法的变异性

摘要 背景&#xff1a;动态功能连接(dFC)已成为理解大脑功能的一种重要测量指标。虽然已经开发了各种各样的方法来评估dFC&#xff0c;但目前尚不清楚方法的选择会如何影响结果。在这里&#xff0c;本研究旨在考察常用dFC方法的结果变异性。 方法&#xff1a;本研究在Python中…

IT人的拖延——拖是因为不想离开“舒适区”?

人都是求“稳”的,在一个区域内呆了很久,也很舒适了,如果冒险离开进入未知的区域,万一结果不好怎么办?万一自己不适合怎么办?万一这个区域有着自己难以忍受的东西怎么办?这些对未知区域的恐惧感让我们在面对应该要做的事情时,不自觉地又拖延了起来。比如,我们在面临需…

【TF-IDF|1】深入解析TF-IDF算法—基础介绍

TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;是一种用于文本挖掘和信息检索的加权技术&#xff0c;用来评估一个词语对于一个文档集或一个语料库的重要程度。下面我们将从理论到实践&#xff0c;逐步解析TF-IDF算法&#xff0c;并编写一个简单的实…

阻塞IO、非阻塞IO、IO复用的区别 ?(非常详细)零基础入门到精通,收藏这一篇就够了

前言 在《Unix网络编程》一书中提到了五种IO模型&#xff0c;分别是&#xff1a;阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三种模型&#xff0c;供大家参考学习。 一、什么是IO 计算机视角理解IO: 对于计…

const与static区别

const与static的主要区别在于它们修饰的对象的行为和属性。 const 用于声明一个值不能被修改的常量。它主要用于定义常量、修饰指针、函数的输入参数和返回值&#xff0c;以确保这些值在程序运行期间保持不变。const修饰的变量或对象具有不可变性&#xff0c;这有助于提高程序的…

算法练习(一)——数学公式,逻辑思维,DFS递归

算法练习 题目一题干解法代码解释 Tips 题目二题干解法代码解释 Tips 题目三题干解法代码解释 Tips 题目一 题干 给定一个数a&#xff0c;这个a是可以由一组m个连续的正整数相加得到的&#xff0c;求这个m的最小值。举例&#xff1a;a211234561011&#xff0c;会发现10和11是…

VD1011 单节锂离子充电电池保护 2.8V过放保护 SOT-23小封装芯片

VD1011&#xff0c;内置高精度电压检测电路和延迟电路以及内置MOSFET&#xff0c;是用于单节锂离子/锂聚合物可再充电 电池的保护IC。 本IC适合干对1节锂离子/锂聚合物可再充电电池的过充电、过放电和过电流进行保护。 VD1011具备如下特点 高精度电压检测电路 过充电检测电压 …

JDK8-17新特性

一、JDK8新特性:Lambda表达式 1.Lambda表达式及其使用举例 Lambda是一个匿名函数&#xff0c;我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格&#xff0c;使Java的语言表达能力…

类加载的验证阶段你不知道的东西

一、验证是链接阶段&#xff08;验证&#xff0c;准备&#xff0c;解析&#xff09;的第一步&#xff0c;是验证.class文件中的二进制字节流被转换成的Java虚拟机里的Class对象是否合法的步骤。主要作用就是确保被加载的类的正确性、安全性及符合Java虚拟机规范&#xff0c;确保…

nc网络收发测试-tcp客户端\TCP服务器\UDP\UDP广播

netcat&#xff08;nc&#xff09;&#xff1a; 作用&#xff1a;一个功能强大的网络工具&#xff0c;提供了简单的网络测试和网络编程功能。工作原理&#xff1a;可以用于建立TCP或UDP连接&#xff0c;并发送和接收数据。示例用法&#xff1a; 监听TCP端口&#xff1a;nc -l 1…

OO U4 博客

文章目录 正向建模与开发单元架构设计与追踪关系单元架构设计追踪关系 架构设计思维进化测试思维演进课程收获 正向建模与开发 在本单元中&#xff0c;我学习了UML这一建模工具。UML具备相当多种类的图&#xff0c;通过先设计UML图再进行开发&#xff0c;能够避免架构的重大调…

django学习入门系列之第二点《浏览器能识别的标签4》

文章目录 input类型下拉框多行文本往期回顾 input类型 1&#xff1a;打出后可以在里面编写内容 <!-- 自闭合标签 --> <!-- 默认行内标签 --> <input type"text">placeholder 显示背景 <input type"text" id"txtUser" p…

如何在Spring Boot中实现图片上传至本地和阿里云OSS

在开发Web应用时&#xff0c;处理文件上传是常见的需求之一&#xff0c;尤其是在涉及到图片、视频等多媒体数据时。本文将详细介绍如何使用Spring Boot实现图片上传至本地服务器以及阿里云OSS存储服务&#xff0c;并提供完整的代码示例。 一、上传图片至本地 首先&#xff0c…

逻辑这回事(五)---- 资源优化

基础篇 Memory 避免细碎的RAM。将大的RAM拆分成多个小RAM&#xff0c;并根据地址关断可以优化功耗&#xff0c;但把多个小RAM合成大RAM可以优化面积。Block RAM和分布式RAM合理选择。根据存储容量&#xff0c;对Block RAM和分布式RAM的实现面积和功耗进行评估&#xff0c;选择…

文章MSM_metagenomics(三):Alpha多样性分析

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 本教程使用基于R的函数来估计微生物群落的香农指数和丰富度&#xff0c;使用MetaPhlAn prof…

签约喜报 | Smartbi朋友圈又添新朋友啦~

近期&#xff0c;一系列业界翘楚如国际精密集团、惠达卫浴、华天科技、中国人寿等新老朋友纷纷携手Smartbi&#xff0c;共同探索数据驱动业务的新路径、新思路。 Smartbi数10年专注于商业智能BI与大数据分析软件与服务&#xff0c;为各行各业提供提供一站式商业智能平台&#x…

视频转换器在线哪个好?让视频播放不受格式限制

在日常的视频观看中&#xff0c;我们可能会遇到视频格式与设备不兼容的问题&#xff0c;导致无法顺畅播放。这就像是缺少了播放的钥匙&#xff0c;让人无法享受视频内容。 面对视频格式不兼容的挑战&#xff0c;选择合适的转换工具至关重要。但不用担心&#xff0c;本文将分享…

通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践

Qwen2&#xff08;通义千问2&#xff09;是阿里云最近推出的开源大型语言模型系列&#xff0c;相比2月推出的Qwen1.5&#xff0c;Qwen2实现了整体性能的代际飞跃&#xff0c;大幅提升了代码、数学、推理、指令遵循、多语言理解等能力。其中&#xff0c;Qwen2系列包含5个尺寸的预…

LeetCode:2779. 数组的最大美丽值(滑动窗口 Java)

目录 2779. 数组的最大美丽值 题目描述&#xff1a; 实现代码与解析&#xff1a; 滑动窗口 原理思路&#xff1a; 2779. 数组的最大美丽值 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。 在一步操作中&#xff0c;你可以执行下述指令…