一.JAVA方法
1.什么是方法
Java方法是语句的集合,它们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
2.方法的优点
- 1. 使程序变得更简短而清晰。
- 2. 有利于程序维护。
- 3. 可以提高程序开发的效率。
- 4. 提高了代码的重用性。
3.方法的命名规则
- 1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
- 2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<MethodUnderTest>_<state>,例如 testPop_emptyStack。
二.方法的定义
一般情况下,定义一个方法包含以下语法:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
方法 就是一段可以重复被执行的代码的封装 方法定义的五要素:修饰符,返回值类型,方法名,参数列表,方法体 public 访问修饰符 static 静态修饰符 void 返回值占位符 当方法没有返回值的时候使用void占位 main 方法名 main 方法是被 JVM 调用的,除此之外,main 方法和其它方法没什么区别,main 方法的头部是不变的 String[] args 中 String[]参数的数据类型 args 参数名称相当与变量 {} 方法体 可变参数 注意可变参数必须放在参数列表的最后一个位置
实例
public class Demo01 {
public static void main(String[] args) {
System.out.println("桃李不言下自成蹊");
fun01();
String fun02 = fun02();
System.out.println(fun02);
// 在调用有参方法的时候传递给方法的参数为实际有真实值的参数 那么这个参数我们称之为实际参数 简称实参
// 注意有一中特殊的实参 引用类型
// 实参是数据类型必须与形参一致或形参的子类型
fun03("核桃");
String fun04 = fun04("梁哲源");
System.out.println(fun04);
fun05(5, "包子");
int fun06 = fun06(10, 20);
System.out.println(fun06);
fun07(new int[]{0, 1, 2, 3, 4});
fun07(new int[]{});
fun07(null);
// fun07();
// fun07(0, 1, 2, 3, 4);
fun08(new int[]{0, 1, 2, 3, 4});
fun08(new int[]{});
fun08(null);
fun08();
fun08(0, 1, 2, 3, 4);
fun09(0, 1, 2, 3, 4);
}
1.没有参数没有返回值
public static void fun01() {
System.out.println("我爱你中国 亲爱的母亲");
}
2.没有参数有返回值
返回值的数据类型与 return 的数据类型有关 @return 返回字符串
public static String fun02() {
return "桃李不言下自成蹊";
}
3.有参数没有返回值
在定义方法的时候 该方法的参数 没有实际值 只是一个形式 我们把这种表现形式的参数称之为形式参数 简称形参 @param food 食物
public static void fun03(String food) {
System.out.println("吃" + food);
}
4.有参数有返回值
@param name 姓名 @return 我的名字 是 name
public static String fun04(String name) {
return "我的名字是 >>> " + name;
}
5.两个参数没有返回值
@param count 数量 @param food 食物
public static void fun05(int count, String food) {
System.out.println("吃" + count + "个" + food);
}
6.两个参数有返回值
计算两个int类型整数的和 * @param a 加数 * @param b 被加数 * @return a + b 的和
public static int fun06(int a, int b) {
return a + b;
}
7.遍历输出数组
@param array 被遍历的数组 可变参数的声明如下所示: typeName... parameterName 在方法声明中,在指定参数类型后加一个省略号(...) 。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 注意:可变参数必须放在参数的最后一个位置
public static void fun07(int[] array) {
System.out.print("[");
if (array != null) {
for (int i = 0; i < array.length; i++) {
if (i < array.length - 1) {
System.out.print(array[i] + ", ");
} else {
System.out.print(array[i]);
}
}
}
System.out.println("]");
}
public static void fun08(int... array) {
System.out.print("[");
if (array != null) {
for (int i = 0; i < array.length; i++) {
if (i < array.length - 1) {
System.out.print(array[i] + ", ");
} else {
System.out.print(array[i]);
}
}
}
System.out.println("]");
}
public static void fun09(int a ,int... array) {
System.out.print("a >>> " + a + "\t");
System.out.print("[");
if (array != null) {
for (int i = 0; i < array.length; i++) {
if (i < array.length - 1) {
System.out.print(array[i] + ", ");
} else {
System.out.print(array[i]);
}
}
}
System.out.println("]");
}
}
public class FunctionTest {
@Test
public void test01(){
String[] arr0 = {"我", "爱", "你"};
System.out.println(Arrays.toString(arr0));
String[] arr1 = Arrays.copyOf(arr0, 5);
System.out.println(Arrays.toString(arr1));
String[] arr2 = Arrays.copyOf(arr0, 2);
System.out.println(Arrays.toString(arr2));
}
}
输出结果:
[我, 爱, 你]
[我, 爱, 你, null, null]
[我, 爱]