Java方法
方法的概述
Java方法是语句的集合,他们在一起执行一个功能.
- 方法是解决一类问题的步骤的有序集合
- 方法包含在类或对象中
- 方法在程序中被创建,在其他地方被引用
- 方法可以含参数也可以不含参数
方法的优点
- 提高代码的复用性
- 提高程序的开发效率
- 有利于程序的维护
- 程序变的更加简短
方法的命名规则
方法的名字第一个单词要以小写的字母开头,后边的单词则以大写的字母开头,例如:testMethod
方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体
…
return 返回值;
}
方法包含一个方法头和一个方法体.以下是一个方法所有部分的详解:
- 修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型
- 返回值类型: 方法可能会有返回值,returnValueType是方法返回值的数据类型.有些方法没有返回值,那么这种情况下的返回值类型的关键字就是void
- 方法名: 是方法的实际名称,方法名和参数表共同构成方法签名
- 参数类型: 参数像是一个占位符,当方法被调用时,传递值给参数.这个值被称为实参或变量,参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体: 方法体包含具体的语句,定义该方法的功能
实例1
下面的例子演示了如何定义一个方法,以及如何调用它:
package com.tedu.cn;
//这个类用来测试方法
public class Test_Method {
//主方法
public static void main(String[] args) {
int result = max(2,3);
System.out.println(result);
}
// 返回两个整数变量较大的值
public static int max(int n1,int n2){
int result =0;
if (n1>n2){
result =n1;
}else{
result=n2;
}
return result;
}
}
编译结果
注: 这个程序包含 main 方法和 max 方法。main 方法是被 JVM 调用的,除此之外,main 方法和其它方法没什么区别。
main 方法的头部是不变的,如例子所示,带修饰符 public 和 static,返回 void 类型值,方法名字是 main,此外带个一个 String[] 类型参数。String[] 表明参数是字符串数组。
实例2
void 关键字
说明如何声明和调用一个 void 方法。
下面的例子声明了一个名为 score的方法,并且调用它来打印给定的分数
package com.tedu.cn;
//这个类用来测试如何声明和调用一个void方法
public class Test_Method2 {
public static void main(String[] args) {
score(78);
}
public static void score(double scores){
if (scores>=90){
System.out.println("A");
}else if (scores>=80){
System.out.println("B");
}else if (scores>=60){
System.out.println("C");
}else if (scores<60){
System.out.println("D");
}
}
}
编译结果
这里score方法是一个void类型方法,它不返回值。
一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。
实例3
这个类用来测试方法通过值来传递参数,下面的例子演示按值传递的效果
该程序创建一个方法,该方法用于交换两个变量
package com.tedu.cn;
//这个类用来测试方法通过值来传递参数
//下面的例子演示按值传递的效果
//该程序创建一个方法,该方法用于交换两个变量
public class Test_Method3 {
public static void main(String[] args) {
int num1 = 2;
int num2 = 3;
System.out.println("交换前num1:"+num1+",num2:"+num2);
//调用swap
swap(num1,num2);
System.out.println("交换后num1:"+num1+",num2:"+num2);
}
public static void swap(int a,int b){
System.out.println("\t进入swap方法");
System.out.println("\t\t交换前a的值为"+a+",b的值为:"+b);
//交换a与b的值
int temp = a;
a = b;
b = temp;
System.out.println("\t\t交换后的a的值为:"+a+",b的值为:"+b);
}
}
编译结果
传递两个参数调用swap方法。方法被调用后,实参的值并没有改变。
s/