Java编程中的方法
1-Java方法
1.1-初始方法
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题步骤的有序组合。
方法包含类或者对象中。
方法在程序中被创建,在其他地方被引用。
方法包含一个方法头和方法体。
方法的命名规则:
方法名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符,
例如:macroPolo 。
下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<Method>_<state>。
2-方法的定义与调用
2.1-方法的定义:
大多数情况下,一个方法包含以下语法:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。确定该方法的访问类型。
返回值类型 :方法可能会返回值。return 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,return 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。参数分为实参和形参。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
2.2-方法调用:
调用方法:对象名,方法名(实参列表)
Java 支持两种调用方法的方式,根据方法是否返回值来选择。
当方法返回一个值的时候,方法调用通常当做一个值。例如:
int max = max(3,4);
方法返回值是void,方法调用一定是一个语句。
Systm.out.println("");
2.3-方法的代码详解
方法定义代码详解
//下面的方法包含 2 个参数 a 和 b,它返回这两个参数的最大值。
public static int max (int a,int b){//这里定义的a,b为形参
int result = 0;
if (a == b){
System.out.println("俩个数相等");
}else {
if (a > b) {
result = a;
} else {
result = b;
}
}
return result; //返回result
}
}
方法调用代码详解
package Method;
//比较俩个数大小,方法无void版
public class Dom1 {
//主方法
public static void main(String[] args) {
int a = 3;
int b = 4;
int max = max(a,b);
System.out.println( a + " 和 " + b + " 比较,最大值是:" + max);
}
//该方法会返回俩个数较大的值
public static int max (int a,int b){
int result = 0;
if (a == b){
System.out.println("俩个数相等");
}else {
if (a > b) {
result = a;
} else {
result = b;
}
}
return result;
}
}
输出结果:
3-void关键字
package Method;
//比较俩个数大小,方法void版
public class Dom1 {
//主方法
public static void main(String[] args) {
max(3, 4);
}
//该方法会直接输出俩个数较大的值
public static void max(int a, int b) {
if (a == b) {
System.out.println("俩个数相等");
} else {
if (a > b) {
System.out.println(a);
} else {
System.out.println(b);
}
}
}
}
输出结果:
注:一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。
4-通过值传递参数
4.1-初识值传递
传递分俩种值传递,引用传递。
Java为值传递。
调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。
4.2-值传递代码详解
package Method;
//交换值
public class Dom3 {
public static void main(String[] args) {
int a=3;
int b =20;
System.out.println("交换前"+ "a="+a +"b=" +b);
System.out.println("进入jioaHuan方法后");
jiaoHuan(a,b);
}
public static void jiaoHuan(int a, int b){
System.out.println("交换前"+ "a="+a +"b=" +b);
int tmp;
tmp =a;
a = b;
b = tmp;
System.out.println("交换后"+ "a="+a +"b=" +b);
}
}
输出结果:
5-方法重载
5.1-初始方法重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
方法重载的规则
方法名称必须相同。
参数列表必须不同(个数不同或者类型不同,参数排列顺序不同等)。
方法的返回值类型可以相同也可以不同。
仅仅返回类型不同不足以称为方法重载。
方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
5.2-方法重载的代码详解
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
public static double max(double num1) {
if (num1 > num2)
return num1;
else
return num2;
}
public static int max(int num1, int num2) {
if (num1 > num2)
return num1;
else
return num2;
}
如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;
6-命令行参数
6.1-初识命令行参数
在Java中Java命令行参数是一个参数,即在运行Java程序时传递的参数。 从控制台传递的参数可以在Java程序中接收,并且可以用作输入。
有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
命令行参数是在执行程序时候紧跟在程序名字后面的信息。
6.2-命令行参数代码详解
public class Dom4 {
public static void main(String[] args){
int [] array ={1,2,3,4,5};
for(int i=0; i<array.length; i++){
System.out.println("array[" + i + "]: " + array[i]);
}
}
}
输出结果:
7-可变参数
7.1-初识命令行参数
JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。
在方法声明中,在指定参数类型后加一个省略号(...)。
一个方法只能指定一个可变参数,他必须是方法的最后一个参数,任何普通参数必须在可变参数之前声明。
注:存入可变参数的参数会以数组的形式保存起来。
7.2-可变参数代码详解
public static void main(String[] args) {
// 调用可变参数的方法
printMax(34, 3, 3, 2, 56.5);
}
//该放方法输出俩个数较大的值
public static void printMax( double... numbers) {
if (numbers.length == 0) {
System.out.println("No argument passed");
return;
}
double result = numbers[0];
for (int i = 1; i < numbers.length; i++){
if (numbers[i] > result) {
result = numbers[i];
}
}
System.out.println("最大数为" + result);
}
输出结果: