Java中的方法定义与调用

article/2025/10/8 15:39:08

1.方法
将具有独立功能的代码块组织成为一个整体,使其成为具有特殊功能的代码集。

2.方法必须先创建才可以使用,该过程称为方法定义

方法必须先定义后调用,否则程序会报错。

3.方法创建后并不是直接运行的,需要手动使用后才可执行,该过程称为方法调用

4.方法定义

1)不带参数的方法定义格式:

public static void 方法名(){
//方法体,根据实际需求编写的代码块
}

2)带参数的方法定义格式:

public static void 方法名(参数1,参数2,....){//参数的一般格式:数据类型 变量名
//方法体
}

方法定义时,参数中的 数据类型 和变量名 都不可以省略,缺少其中任意一个,程序将报错。多个参数之间用逗号进行分割。

5.方法调用
1)不带参数的方法调用格式:

方法名();

2)带参数的方法调用格式:

方法名(参数);//参数为变量名或常量值,多个参数之间用逗号分割

方法调用要在main()方法中调用,因为这是程序的入口。

当方法调用出现以后,会进入到相应的方法中,程序从上到下开始执行。

方法调用时的参数的数量与类型,必须与方法 定义中的设置相匹配,否则程序报错。

6.形参:方法定义中的参数,等同于变量定义的格式:数据类型 变量名;

7.实参:方法调用中的参数,等同于直接使用变量或常量。

8.练习:输入一个数,判断它是否为偶数

import java.util.Scanner;public class Demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int x = sc.nextInt();isEvenNumber(x);}public static void isEvenNumber(int x){if (x%2==0)System.out.println(x+"是偶数");elseSystem.out.println(x+"不是偶数");}}

9.练习:输入两个数,输出其中的最大值

import java.util.Scanner;public class Test {public static void main(String[] args){Scanner sc = new Scanner(System.in);int x = sc.nextInt();int y = sc.nextInt();isMax(x,y);}public static void isMax(int x,int y){int max;max = x>y?x:y;System.out.println("两个数中的最大值为:"+max);}
}

10.带返回值方法的定义:

//格式
public static 数据类型 方法名(参数){
return 数据;//return后面的返回值与方法定义上的数据类型要匹配
}

11.带返回值方法的调用:

//格式1:
方法名(参数);//参数为常量或变量
//格式2:
数据类型 变量名 = 方法名(参数);

方法的返回值通常使用变量进行接收。

方法调用时:
Ⅰ、void类型的方法,直接调用即可。
Ⅱ、非void类型的方法,一般用变量接收调用。

12.方法是平阶关系,不能嵌套定义。

13.void 表示无返回值,可以省略 return ,也可以单独书写 return ,后面不加任何数据。

14.方法定义的通用格式:

public static 返回值类型(参数){//明确返回值类型,如果方法操作完毕之后有数据返回,就写对应的数据类型。如果没有,就写void。还要明确参数的类型和数量。
方法体;
return 数据;
}
/* public static 是修饰符。返回值类型:方法操作完毕之后,返回的数据的类型。如果方法操作完毕没有数据返回,返回值类型写void,而且方法体中一般不写return。方法名:调用方法时使用的标识。参数:由数据类型和变量名组成,多个参数之间用逗号隔开。方法体:完成功能的代码块。return :如果方法操作完毕有数据返回,用于把数据返回给调用者。*/

15.方法重载:同一个类中定义的多个方法之间的关系,满足一定条件的多个方法相互构成重载。

条件:
Ⅰ、多个方法在同一个类中。
Ⅱ、多个方法具有相同的方法名。
Ⅲ、多个方法的参数不相同(数据类型不同数量不同)。

16.方法重载的特点:

1)重载仅针对方法的定义而言,与方法的调用无关。

2)重载仅针对同一个类方法的名称与参数进行识别,与返回值无关。

不能够通过返回值来判定两个方法是否相互构成重载。

在调用的时候,JVM会通过参数的不同来区分同名的方法

17.练习:使用方法重载的思想,设计比较两个整数是否具有相同的方法,兼容全整数类型(byte ,short ,int ,long)。

public class Compare {public static void main(String[] args){System .out.println(compare(10,20));System .out.println(compare((byte)10,(byte)20);System .out.println(compare((short)10,(short)20);System .out.println(compare(10L,20L);}public static boolean compare(int a,int b){System .out.println("int");return a==b;}public static boolean compare(long a,long b){System .out.println("long");return a==b;}public static boolean compare(byte a,byte b){System .out.println("byte");return a==b;}public static boolean compare(short a,short b){System .out.println("short");return a==b;}}

结果

Ⅰ、如果只在方法调用时输入整数作为参数,可以看出仅仅只调用了一个方法:
public static boolean compare(int a,int b){ System .out.println("int"); return a==b;
因为 在Java中,整数默认是int类型。

Ⅱ、 要想调用其他类型的方法,需要在方法调用时的参数对其进行数据的强制转换。
Ⅲ、转换为long类型的时候,只需要在整数后面加上L

18.方法的参数传递:

1)对于基本数据类型的参数,形参的改变不影响实参的值。

2)练习:

public class Test1 {public static void main(String[] args){int n=1;System.out.println("调用前:"+n);change(n);System.out.println("调用后:"+n);}public static int change(int n){n=2;return n;}/*程序的执行流程:Ⅰ、程序一开始会把main()方法加载到栈内存。此时在main()方法中int n =1; Ⅱ、然后输出main()方法中n的值为1,所以在控制台首次输出的n的值为1。Ⅲ、然后调用了change()方法,这个方法会被加载到栈内存,Ⅳ、在运行change()方法的时候,会在栈内存中输入形参 int n;而且,n的初始值是由main()方法中的实参给的,所以此时的n的初值为1。Ⅴ、进入了change方法之后,修改n的值为2。Ⅵ、修改完毕之后,change()方法中n的值为2,但是main()方法中n的值仍然为1。Ⅶ、接着往下执行,change()方法调用完毕,从栈内存消失。Ⅷ、回到main()方法,再次输出n。Ⅸ、继续往下执行,当main()方法执行完毕之后,也会从栈内存消失。*/}

结果
19.引用类型的方法参数传递:

1)对于引用类型的参数,形参的改变影响实参的值。

2)练习:

public class Test1 {public static void main(String[] args){int[] arr={1,2,3};System.out.println("调用前:"+arr[1]);System.out.println("调用后:"+change(arr));}public static int change(int[] arr){arr[1]=6;return arr[1];}
}
/*程序的执行流程:
Ⅰ、程序的开始从main()方法开始,
Ⅱ、进入main()方法之后,定义了一个整型的数组,并对其进行了初始化处理。
Ⅲ、此时栈内存中存放的是:方法main()和int[] arr,而该数组的元素值和对应的索引会存放在堆内存中。还会把堆内存中的地址值赋值给栈内存的arr。
Ⅳ、继续往下执行,在控制台输出arr数组索引下标为1的值。
Ⅴ、然后调用change()方法,加载到栈内存中,形参int[] arr也会被加载到栈内存中。此时的形参必须是引用类型,而数组属于引用类型。
Ⅵ、接着往下执行,执行完change()方法之后,change()方法会在栈内存中消失。
Ⅶ、再回到main()方法中,输出arr[1]的值,此时,该值已经被修改,所以在控制台输出的是2。
Ⅷ、执行完main()方法,main()方法也会在栈内存中消失。
*/

结果


http://chatgpt.dhexx.cn/article/h5S4Z9h5.shtml

相关文章

JAVA类之间方法的调用

JAVA类方法的调用 一、静态方法调用其他方法:1. 静态方法调用非静态方法2.静态方法调用静态方法 二、非静态方法调用其他方法1.非静态方法在同一类内调用其他方法2.非静态方法在不同类之间调用其他方法 注:调用方法——调用另一方法的方法 被调用方法——…

Java方法调用的过程是怎样的?

写在前面 本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定Java虚拟机 解答 方法(Java…

在java中方法的三种调用方式

在java中方法的调用有三种方式: 先写主代码: public static int sum (int a,iny b){System.out.println("有结果显示");int result ab;return result; }1.单独调用:方法名(参数); sum(10,15);2…

惠普z840工作站linux,全模块战神 惠普旗舰级Z840工作站评测

【IT168 评测】对于设计师来说,无论是动漫设计还是工程制图,一款运行流畅、性能强大、安静稳定的工作站都是必要的选择。作为工作站市场的领军者,惠普早在多年前就进军工作站领域,并凭借Z800这样的高端产品树立了全新的形象。近日,我们收到了来自惠普送测的全新一代Z840工…

NVIDIA GPU显卡介绍

一、参考资料 NVCC学习笔记 NVIDIA GPU 架构演进 Nvidia GPU架构 - Cuda Core,SM,SP等等傻傻分不清? 请问英伟达GPU的tensor core和cuda core是什么区别? CUDA 专栏 二、相关概念 2.1 dGPU dGPU(discrete GPU&…

GPU结构设计初探

GPU结构设计 1. 框架设计 GPU 即 graphics process unit,图形处理单元,其主要功能在于图形渲染和合成,擅长于浮点运算和三角形生成填充处理; 本部分主要回答:GPU如何实现让自己擅长于图形渲染和合成操作&#xff1f…

大型三维GIS图形工作站

随着GIS应用的深入,人们越来越多地要求从真三维空间来处理问题。在应用要求较为强烈的部门如采矿、地质、石油等领域已率先发展专用的具有部分功能的三维GIS。所以大型三维GIS图形工作站应运而生。 UltraLAB H360/H370系列是一款配备intel第7代高频处理器&#xff0…

怎样配置更完美的图形工作站

现在网上太多计算机“专业人士”,推出各种图形工作站选购方案,似乎采购一台理想的图形工作站,是一件轻松简单事情。客户方面:资金充裕,买个高端的,资金比较紧,买个低端的,找个大品牌…

如何搭建自己的深度学习工作站?

硬件设备,是任何一名深度学习er不可或缺的核心装备。普通玩家都是标准设备,高端玩家都是自己动手搭建合适自己的GPU 工作站甚至GPU集群. 可是,各种主板、CPU、GPU、内存条、外设,那么多品牌种类型号参数,到底该怎么选?…

工作站 桌面 服务器,图形工作站也虚拟化,立即让你的工作站也可以远程访问

在虚拟化的今天,几乎所有的计算机资源都可以虚拟化,如CPU,内存,存储,网络,IO等等,但是我们很少听到图形卡的虚拟化,也就是我们今天提到的GPU虚拟化。 为什么需要GPU?相信不需要说太多…

GPU

一、GPU简介 1.GPU是什么: GPU是图形处理器(Graphics Processing Unit),计算机显卡的处理器. 2.GPU产生背景: 在GPU出世之前,处理2D、3D图像都依赖于CPU,这样会使”日理万机“的CPU更加劳累不…

GPU服务器Ubuntu环境配置教程及各种踩坑

博主的GPU服务器快要过期了,为了让其发挥更多的光和热,博主打算将系统重装,来分别感受下不同系统下的GPU服务器。哈哈哈 博主为了快速运行项目,在购买服务器时选择的是Pytorch 1.9.1 Ubuntu 18.04 ,该系统下会帮我们安…

图灵深度学习工作站介绍

Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。是的,在人类和大…

GPU是什么?有多大的用处?

想必大家最近都听说了GPU的断供的事件,但很多人却不知道GPU是什么?有多大的用处?下面就一起来了解一下吧。 GPU简介: GPU是Graphics Processing Unit的简写,是现代显卡中非常重要的一个部分,其中文名为图…

ShareStation工作站虚拟化,实现工作站共享使用

今年以来,由于挖矿导致显卡涨价,不少玩家成了等等党。公司需要给新报到设计师配置图形工作站,采购成本也暴涨。就拿以前不到3000的RTX3060TI为例,现在市场价格要7000-8000。但是工作不能耽误,等不起啊。经过对比测试&a…

NVIDIA-GPU 驱动程序安装

下面以GeForce RTX 2080TI GPU为例,基于ubuntu18.04进行驱动程序的安装。 1. 下载驱动程序 驱动程序下载链接:官方驱动 | NVIDIA 根据GPU型号,在如下下拉列表中进行选择,然后点击搜索按钮: 2. 安装驱动程序 1&…

工作站压力测试软件,胜任多种工作负载 联想P500工作站评测

【IT168 评测】对于设计师来说,无论是动漫设计还是工程制图,一款运行流畅、性能强大、安静稳定的工作站都是必要的选择。作为工作站市场的领军者,联想不久前推出了全新一代ThinkStation P系列工作站家族,颠覆以往命名,启用以“P”开头的全新命名规则,包括从入门级到旗舰级…

Sharestation 工作站GPU虚拟化,实现共享GPU办公

一 背景分析 今年以来,由于挖矿导致显卡涨价,不少玩家成了等等党。公司需要给新报到设计师配置图形工作站,采购成本也暴涨。就拿以前不到3000的RTX3060TI为例,现在市场价格要7000-8000。但是工作不能耽误,等不起啊。经…

移动工作站Windows10系统深度学习GPU环境搭建:CUDA+cuDNN+Pytorch

文章目录 前言一、查看CUDA版本二、CUDA、cuDNN1.CUDA10.2下载与安装2.cuDNN下载与安装 三、Pytorch安装 前言 CUDA(ComputeUnified Device Architecture)是NVIDIA推出通用并行计算架构,使GPU能够解决复杂的计算问题。 NVIDIA cuDNN是用于深度神经网络的GPU加速库。…

工作站 显卡 测试软件,CineBench R15测试:考验CPU+GPU_工作站移动工作站-中关村在线...

CineBench R15测试:考验CPUGPU能力 CineBench使用的是针对电影电视行业开发的Cinema 4D特效软件引擎,是很有说服力的一套CPU和显卡测试系统。考虑到惠普ZBook Studio G3搭配的是Windows 10 Pro 64操作系统,所以我们也选择了支持64位操作系统的…