1. 带参方法,如何定义类:
<访问修饰符> 返回值类型 <方法名> (<参数列表>){
//方法的主体
}
其中:
(1)<访问修饰符>指该方法允许被访问的权限范围,只能是public . protected 或 private。其中public访问修饰符表示
该方法可以被任何其他代码调用,另外两种修饰符将后续课程中陆续学习。
(2)返回值类型值返回值的类型。如果方法不返回任何值,它应该声明为void类型,java对待返回值的要求很严格,方法
返回值必须与所说明的类型相匹配。使用return语句返回值。
(3)<方法名>是定义方法的名字,他必须使用合法的标识符。
(4)<参数列表>是传送给方法的参数列表。列表中各参数间用以逗号分隔。参数列表的格式如下:
数据类型 参数1 , 数据类型 参数2 , ........... , 数据类型 参数n , 其中n>=0。
如果n=0,代表没有参数,只是方法就是前面学习过的无参方法。
2. 带一个参数的方法
String[] names=new String[30]; //学生姓名数组 public void addName(String name){ for(int i=0;i<names.length;i++){ //有参方法 if(names[i]==null){ names[i]=name; break; //增加学生姓名 } } } public void showName(){ //无参方法 for(int i=0;i<names.length;i++){ if(names[i]!=null){ System.out.println(names[i]); //显示学生姓名 } } }
调用带参方法
对象名 . 方法名(参数1,参数2,......,参数n)
在定义方法和调用方法时,把参数分别称为形式参数和实际参数,简称形参和实参,形参是
在定义方法时对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时
传递给方法处理的实际的值。
调用方法时,需要注意一下两点。
(1)先实例化对象,再调用方法。
(2)实参的类型,数量,顺序都有一一对应。
调用方法:
public static void main(String[] args) { Dome01 aa=new Dome01(); Scanner input=new Scanner(System.in); for(int i=1;i<=5;i++){ System.out.println("请输入姓名:"); String name1=input.next(); aa.addName(name1); //调用并传实参 } aa.showName(); //显示全部学生的姓名 }
3.带有两个参数的方法
public class Dome02 { String[] names = new String[30]; public void addName(String name) { for (int i = 0; i < names.length; i++) { if (names[i] == null) { names[i] = name; break; } } } public void showName() { for (int i = 0; i < names.length; i++) { if (names[i] != null) { System.out.print(names[i] + " "); } } } public boolean xiugaiName(String name2, String name3) { //两个参数 boolean panduan = false; for (int i = 0; i < names.length; i++) { if (names[i].equals(name2)) { names[i] = name3; panduan = true; break; } } return panduan; } public void showName2() { for (int i = 0; i < names.length; i++) { if (names[i] != null) { System.out.print(names[i] + " "); } } } }
调用两参的方法:
public static void main(String[] args) { Scanner input=new Scanner(System.in); Dome02 aa=new Dome02(); for(int i=0;i<=5;i++){ System.out.println("请输入学员姓名:"); String name=input.next(); aa.addName(name); } System.out.println("*****************************"); System.out.println("客户信息列表:"); System.out.println("*****************************"); aa.showName(); System.out.println("请输入要修改的客户姓名:"); String name2=input.next(); System.out.println("请输入新的客户姓名:"); String name3=input.next(); System.out.println("******修改结果******"); boolean panduan =aa.xiugaiName(name2, name3); //调用两个参数 if(panduan){ System.out.println("找到并修改成功"); System.out.println("*********************************"); System.out.println("客户姓名列表:"); System. out.println("**********************************"); aa.showName2(); }else{ System.out.println("查无此人"); } }
4.带有数组的方法
public class Dome03 { public void show(String[] names){ //数组做参数 Arrays.sort(names); } }
调用数组的方法:
public static void main(String[] args) { Dome03 aa=new Dome03(); String[] names=new String[]{"Tom","Jack","Mery","Smith","Sunny"}; System.out.println("排序前:"); for(int i=0;i<names.length;i++){ if(names[i]!=null){ System.out.println(names[i]+" "); } } aa.show(names); //调用数组方法 System.out.println("排序后:"); for(int i=0;i<names.length;i++){ if(names[i]!=null){ System.out.println(names[i]+" "); } } }