第一周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 " ) ; 
}
}
相关推荐
子兮曰11 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!11 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰11 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙11 小时前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
俊昭喜喜里11 小时前
java中的继承和多态的区别
java
小羊没烦恼!11 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万11 小时前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝11 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_4260039611 小时前
启动playwright录制codegen生成自动化测试脚本
python·自动化
譕痕11 小时前
JSONObject与JSONArray封装数据格式区别
java·json