第一周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 " ) ; 
}
}
相关推荐
じòぴé南冸じょうげん23 分钟前
若依框架favicon.ico缓存更新问题解决方案:本地生效但线上未更新
前端·javascript·前端框架·html
koo36425 分钟前
pytorch环境配置
人工智能·pytorch·python
狮子座的男孩27 分钟前
js基础高级:01、数据类型(typeof、instanceof、===的使用)、数据与变量与内存(定义、赋值与内存关系、引用变量赋值、js调函数传参)
前端·javascript·经验分享·数据类型·数据与变量与内存·赋值与内存关系·引用变量赋值
程序员杰哥3 小时前
Python自动化测试之线上流量回放:录制、打标、压测与平台选择
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
吴佳浩3 小时前
LangChain v1 重大更新讲解⚠⚠⚠
python·langchain·agent
Cyclo-3 小时前
PDFJS 在React中的引入 使用组件打开文件流PDF
前端·react.js·pdf
向着光芒的女孩5 小时前
【IDEA】关不了的Proxy Authentication弹框探索过程
java·ide·intellij-idea
Filotimo_5 小时前
Spring Boot 整合 JdbcTemplate(持久层)
java·spring boot·后端
李慕婉学姐6 小时前
【开题答辩过程】以《“饭否”食材搭配指南小程序的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring·小程序
椒盐螺丝钉6 小时前
Vue Router应用:组件跳转
前端·javascript·vue.js