1.方法的概述和基本使用
*方法就是完成特定功能的代码块
*很多语言称之为函数,Java中被称之为方法
*方法的格式
*修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){
方法体(函数体);
return 返回值;
};
*求和方法案例
package com.text;
/*
* 有明确返回值的方法的调用:
* A:单独调用,没有什么意义。
* B:输出调用,有意义,但是不够好,因为我可能需要对求和的结果进行进一步的操作
* C:赋值调用
*/
public class MethodDemo2 {
// 求和的方法
public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 单独调用
// sum(10,20);
// 输出调用
// System.out.println(sum(10,20));
// 赋值调用
int s = sum(10, 20);
// s+=100;
System.out.println("s:"+s);
}
}
*void修饰的方法代表没有明确的返回值
package com.text;
/*
* 需求:写一个方法,在控制台输出10次HelloWorld案例。
*
* 两个明确:
* 返回值类型:void
* 参数列表:无参数
*
* 如果一个方法没有明确的返回值类型,java提供了void进行修饰。
*
* void修饰的方法的调用:
* A:单独调用
*/
public class MethodDemo {
//在控制台输出10次HelloWorld案例。
public static void printHelloWorld() {
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
}
public static void main(String[] args) {
//单独调用
printHelloWorld();
//输出调用
//System.out.println(printHelloWorld());
//System.out.println(void);
//赋值调用
//void v = printHelloWorld();
}
}
2.方法的重载
*在同一个类中出现了方法名一样,参数列表不同,跟返回值无关的现象就叫做重载
package com.text;
/*
* 方法重载:在同一个类中,出现了方法名相同的方法,这就是方法重载。
* 方法重载特点:
* 方法名相同,参数列表不同。与返回值无关。
* 参数列表不同:
* 参数的个数不同。
* 参数对应的类型不同。
* 注意:
* 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。
*/
public class MethodDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 求和
int result = sum(a, b);
System.out.println("result:" + result);
int c = 30;
// 求和
//int result2 = sum2(a,b,c);
//System.out.println("result2:"+result2);
result = sum(a,b,c);
System.out.println("result:"+result);
}
//两个float类型的数据求和
public static float sum(float a,float b) {
return a + b;
}
// 三个整数的求和
public static int sum(int a,int b,int c) {
return a + b + c;
}
/*
public static int sum2(int a, int b, int c) {
return a + b + c;
}
*/
// 两个整数的求和
public static int sum(int a, int b) {
return a + b;
}
}
3.方法的参数传递
*形式参数
*用于接受实际数据的变量
*实际参数
*实际参与运算的变量
*方法的参数为为基本数据类型的时候,形参的改变不影响实参
public class ArgsDemo {
public static void main(String[] args) {
// 定义变量
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
change(a, b);
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
}
public static void change(int a, int b) { // a=10,b=20
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
a = b; // a=20;
b = a + b;// b=40;
System.out.println("a:" + a + ",b:" + b);// a:20,b:40
}
}
*方法的参数为引用数据类型时,形参的改变影响实参
package com.text;
/*
* 方法的参数是引用类型:
* 形式参数的改变直接影响实际参数
*/
public class ArgsDemo2 {
public static void main(String[] args) {
// 定义数组
int[] arr = { 1, 2, 3, 4, 5 };
// 遍历数组
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
change(arr);
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}
public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
// 如果元素是偶数,值就变为以前的2倍
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}
}