一、方法:是一组可以实现特定功能的代码块的集合,在语法上主要有功能有两个:
1、结构化代码:将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,程序的可维护性强。
2、减少代码重复:一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应功能的代码。
二、在实际声明一个方法的时候,需要依次确定以上内容:
(1)访问控制符:
①访问控制符用于限定方法可见的范围,或者说是方法被调用的范围。
②方法控制符的四种:public、protected、无访问控制符、private
(2)修饰符:
修饰符是可选的,在方法声明时可不写
方法的访问控制符有五个:
- static----静态的
- final—最终的
- abstract—抽象的
- synchronized—同步的
- native—本地的
(3)返回值类型:如果方法功能实现以后不需要反馈结果,则返回值类型书写为void,int类型还是int
(4)方法名称:方法名称是一个标识符,用来代表该功能块。例如实现数组排序的方法,可以将方法名称设定为sort,
在Java编码规范中,要求方法的首字母小写,二方法名称中单词和单词间隔的第一个字母大写,如bubbleSort。
(5)参数列表:是声明方法需要从外部传入的数据类型以及个数:
eg.数据类型 参数名称
多个参数格式为:
eg.数据类型 参数名称1,数据类型 参数名称2
(6)方法体:是方法的功能实现的代码
eg.有需要返回值的时候:
return 结果的值;
eg.无结果返回的时候:
return;
三、方法的定义格式:
//一、调用有返回值的方法:
// eg.(有返回值的) public 返回值类型 方法名(){具体逻辑;return 结果;}
public int getSum(){
int sum = this.a+this.b;
return sum;
//二、没有返回值的方法用void表示:
pair.say();
//三、调用带参数,但是没有返回值的方法
pair.say("彭于晏")
//四、调用带参数,并且有返回值的方法
public int qiuhe(int a,int b){
return a+b;
//一、调用有返回值的方法:
int xx =pair.getSum();
System.out.println(xx);
//二、没有返回值的方法用void表示
//调用没有返回值的方法:
public void say(){
System.out.println("i .you");
}
//三、调用带参数,但是没有返回值的方法
public void say(String name){
System.out.println("i miss you"+name);
}
//四、调用带参数,并且有返回值的方法
int sum = pair.qiuhe(5,8);
System.out.println(sum);
四、案例1:
package javase.day04.list.demo.fuction;
public class NumberPair {
public int a;
public int b;
public int getSum(){
int sum = this.a+this.b;
return sum;
}
}
package javase.day04.list.demo.fuction;
public class FuctionDemo {
public static void main(String[] args) {
NumberPair pair= new NumberPair();
pair.a=18;
pair.b=20;
//int sum = pair.a+pair.b;相当于
int xx =pair.getSum();
System.out.println(xx);
}
}
五、案例2:
利用上一篇内容
原:
//计算List中所有商品成交金额最大高的商品
tmp = pdts.get(0);
for(int i = 1; i<pdts.size();i++){
if(pdts.get(i).price*pdts.get(i).number>tmp.price * tmp.number){
tmp = pdts.get(i);
}
利用方法之后:
//计算List中所有商品成交金额最大高的商品
tmp = pdts.get(0);
for(int i = 1; i<pdts.size();i++){
if(pdts.get(i).getAmount()>tmp.getAmount()){
tmp = pdts.get(i);
}
六、方法的重载
1、概念:是一种语法现象,指在一个类内部出现了多个方法名相同但参数列表不同的方法。
2、功能:将功能相同但参数不同的方法采取相同的方法名称,便于程序员使用。
eg.
public void a(int a){}
public int a(){}
public void a(int a,String s){}
//以上示例方法中,方法的名称都是a,但是参数列表却各不相同,这些方法实现了重载的意义。