第一周java。2

方法的作用

将重复的代码包装起来,写成方法,提高代码的复用性。

方法的语法

方法的语法格式如下 :

复制代码
 [修饰符] 方法返回值类型 方法名(形参列表) 
{  
      //由零条到多条可执行性语句组成的方法体
      return 返回值;
}

定义方法语法格式的详细说明如下:

修饰符:修饰符可以省略,也可以是 public 、 protected 、 private 、 static 、 final 、 abstract ,其中 public 、 protected 、 private 三个最多只能出现其中之一 ; final 和 abstract 最多只能出现其中之一 ,它们可以 与 static 组合起来修饰方法。

方法返回值类型:返回值类型可以是 Java 语言 允许的任何数据类型,包括基本类型和引用类型: 如果声明了方法返回值类型,则方法体内必须有一个有效的 return语句,该语句返回 一个变量或一个表达式,这个变量或者表达式的类型必须与此处声明的类型匹配.除此之外 , 如果一个方法没有返回值,则必须使用 void 来声明没有返回值 .

方法名:方法名的命名规则与成员变量 的命名规则基本相同,但由于方法用于描述该类或该类 的实例的行为特征或功能实现,因此通常建议方法名以英文动词开头 .

形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组"参数类型形参 名"组合而成 ,多组参数之间以英文逗号 ( ,)隔开,形参类型和形参名之间以英文空格隔开。 一旦在定义方法时指定了形参列表,则调用该方法时必须传入对应的参数值即谁调用方法, 谁负责为形参赋值 。

方法体里多条可执行性语句之间有严格的执行顺序,排在方法体前面的语句方法体里多条可执行性语句之间有严格的执行顺序,排在方法体前面的语句总是先执行,排在方法体后面的语句总是后执行。

方法的归属

需要定义方法,则只能在类体内定义,不能独立定义一个方法。一旦将一个方法定义在 某个类的类体内,如果这个方法使用了 static 修饰,则这个方法属于这个类,否则这个方法属于这个类的实例 。 Java 语言是静态的 。一个类定义完成后,只要不再重新编译这个类文件,该类和该类的对象所拥有的方法是固定的,永远都不会改变 。 因为 Java 里的方法不能独立存在,它必须属于一个类或一个对象,因此方法也不能像函数那样被独立执行。

方法的传参

声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值 , 调用方法时实际传给形参的参数值被称为实参.那么,Java 的实参值是如何传入方法的呢?

这是由 Java 方法的参数传递机制来控制的, Java 里方法的参数传递方式只有一种 : 值传递。 所谓值传递,就是将实际参数值传入方法内 , 而参数本身不会受到任何影响。

复制代码
public class Prim
{
public static void swap (int a , int b) 
{
// 下面三行代码实现a,b变量的值交换
// 定义一个临时变量来保存a变量的值
int tmp = a; 
//把b的值赋给 a
a= b; 
// 把临时变量 tmp 的值赋给 a
b= tmp ; 
System.out.println("swap 方法里, a 的值是 "
+ a + ":b 的值是 " + b); 
}
public static void main(String[] args) 
{
  int a = 6 ; 
  int b = 9; 
  swap(a , b) ; 
System.out.println ("交换结束后,变量a的值是"
+a+":变量 b 的值是 " + b); 
}
}

方法的重载

Java 允许同一个类里定义多个同名方法,只要形参列表不同就行。如果同一个类中包含了两个或两 个以上方法的方法名相同,但形参列表不同,则被称为方法重载 。

方法重载的要求就是两同一不同 :同 一个类中方法名相同,参数列表不同 。至于方法的其他部分,与方法的重载没有任何关系。

复制代码
public class Over1oad 
{
//下面定义了两个test ()方法,但方法的形参列表不同
//系统可以区分这两个方法,这被称为方法重载
public void test() 
{
 System.out.println("无参数");
}
public void test(String msg) 
{
 System.out.print1n("重载的test方法"+msg);
 }
pub1ic static void main(String[] args)
{
  Over1oad 01 = new Over1oad( ); 
//调用 test ()时没有传入参数,因此系统调用上面没有参数的 test () 方法
  01.test () ; 
//调用 test ()时传入了一个字符串参数
//因此系统调用上面带一个字符串参数的 test ()方法
01.test( "he11o " ) ; 
}
}
相关推荐
king王一帅1 分钟前
做了三年 ProseMirror 后,我用四个月自研排版引擎实现 WPS / Google Docs 替代品,整套框架 MIT 开源
前端·vue.js·开源
এ慕ོ冬℘゜2 小时前
如何在 HTML 中嵌入音频和视频?
前端·html·音视频
wangchunyu11410 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
变与不变80611 小时前
jQuery怎么使用
前端·javascript
神膘护体小月半11 小时前
flex 布局的 order 属性
前端·css
paopaokaka_luck11 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir11 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
仰望.11 小时前
vue 表格组件 vxe-table 树表格懒加载支持拖拽排序的详细用法
前端·javascript·vue.js·vxe-table
前端 贾公子11 小时前
vite-plugin-uni-manifest 升级指南
前端
小码哥_常11 小时前
iPhone 用户传了张 HEIC,我的前端崩了
前端