java方法

方法也称函数,用于封装一段特定功能的代码,为了便于这段功能代码的调用,减少代码的重复和冗余,便于维护。

方法的声明的语法:

修饰符 返回值类型 方法名(参数列表){
        //方法体

}

方法的五个要素:

  • 修饰符 private、protected、public、static、final,其中前三个属于访问权限控制符
  • 返回值类型 方法的返回数据的类型,基础数据类型和引用数据类型都可以,如果方法没有返回值,需要写void

return 用于方法体中返回数据: return 数据;

注意:

1.方法体中如果执行了return后,方法体剩余的代码不再执行。

2.方法体中return返回的数据类型需要与声明的方法的返回值类型要兼容。即可以隐式类型转换。

3.如果方法体中有分支流程,要保证走每个分支到最后都可以执行return。

4.如果方法的返回值类型为void,编译器在方法体的最后添加了一个隐式的return,若想自由控制返回,可直接使用:return;//return后面不加任何数据。

  • 方法名 即方法的名字,命名规范见另一篇博客,java编程规范
  • 参数列表 方法名后面的()中的列表,各个参数之间使用逗号隔开。

1.参数列表中的参数为0个或多个。

2.根据参数列表中的参数的有无,分为有参方法和无参方法。

3.参数列表的写法:  (类型1 参数名1,类型2 参数名2,....,类型n 参数n)

4.参数列表中所声明的参数,叫做形参,调用方法时传入的参数叫做实参。

  • 方法体  {}中的代码块,用于实现方法的功能

方法的调用

  • 方法声明后,不能直接被运行或生效,只有进行方法调用时,才会被执行。
  • 有参方法进行调用时,需要按照参数列表中的顺序和数据类型来传递实际的值(或已赋值的变量或表达式)。
  • static修饰的方法在类声明后就存在,可以直接被调用,而没有static修饰的方法只有在类实现的对象后才后存在,所以不能被直接调用,若是方法想被其他的方法(不论是不是在同一个类中)调用,则需要加上static修饰符。

注意:

  1. 如果参数的类型是基本数据类型,则方法调用中实参传入的是值,即使改变这个值,传入这个方法的参数本身也不会被改变。
  2. 如果参数的类型是引用数据类型,则方法调用中参入的实参是引用,如果改变参数的值,则原先参入这个方法的参数本身也会被改变。
  • 递归  如果方法体中的代码调用方法本身,则会发生递归,如果不进行条件判断终止,会造成隐式的死循环,导致栈溢出。

方法的重载

重载(OverLoad),是指同一个方法名的方法,具有不同的功能。是面向对象的多态的一种体现。

学方法重载之前需要先知道方法的签名,即方法名+参数列表,方法的签名不同,则不认为是重名方法(重名方法会编译错误)。

在一个类中,方法名相同,参数列表不同的多个方法,称为方法的重载。出现以下情况的一种,即视为方法的重载。

  • 参数列表的参数个数不同
  • 参数类型或顺序不同

方法的重载跟形参的不相关,比如sayHello(String name) 和 sayHello(String myName)的方法签名相同,这种不认为是重载,而是重名方法。

方法的重载跟方法的返回值类型和权限控制符也不相关。

重载方法的调用:

  1. 调用时的实参类型顺序如果有完全符合的重载方法,则调用该完全符合的方法
  2. 如果传入的实参在重载方法的参数列表中没有完全相符的,调用遵循就近原则

 就近原则:

1.在实参发生隐式类型转换的情况下,跟哪一个形参列表中的类型最近,则调用哪一个

2.如果实参不能通过隐式类型转换后与重载的形参相符,则不能调用重载的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值