1.方法的定义
方法就是对一段代码的一个封装,方法可以封装一个功能,可以把一段代码变成一个整体
方法的定义:
修饰符 返回值类型 方法名(参数类型 参数名){
方法的代码
}
2.方法的调用
如果是无返回值的方法:
1. 直接调用:
方法名(参数);
如果有返回值的方法:
1. 赋值调用:
数据类型 变量名 = 方法名(参数);
2. 输出调用:
System.out.println(方法名(参数));
3. 直接调用:(目前这么写没有意义)
方法名(参数);
public class Demo03 {
public static void main(String[] args) {
//调用方法
getSum();
}
//定义方法,功能是求三个整数的和
public static void getSum(){
int a = 10;
int b = 20;
int c = 30;
int sum = a + b + c;
System.out.println(sum);
}
}
3.方法的参数
方法的参数就是从方法外部传入方法内部的数据,也就是方法的未知数
注意事项:
1.方法的参数可以是任意数据类型,可以是任意个数
2.方法定义时的参数叫形参,方法调用时的参数叫实参
3.形参要什么类型实参就要给什么类型,形参要几个实参就要给几个
4.实参和形参的变量名不需要一样,变量名是可以随便命名的
public class Demo05 {
public static void main(String[] args) {
//调用方法
getSum(10,20,30);//实参
//调用方法
getSum(11,33,66);
}
//定义方法,功能是求三个整数的和
public static void getSum(int a,int b,int c){ //形参
int sum = a + b + c;
System.out.println(sum);
}
}
4.方法的返回值
返回值是方法得到的结果,返回值是从方法内部传到方法外部的数据
注意事项:
1.如果方法有返回值,那么就必须使用return返回一个结果
2.方法的返回值可以是任意类型,个数只能有一个
3.return代表结束方法,只要执行return方法就结束了
4.如果方法没有返回值,也可以出现return但是后面不能写值,这个return专门结束方法
5.方法的参数和返回值都是根据方法功能去定义的,两者之间没有必然联系.
5.方法的好处
方法能减少代码量,一次定义,多次调用
方法能不能提高代码执行效率?
不能
6.回顾数据类型
数据类型
基本数据类型 引用数据类型
byte 类 String
short 数组 int[] double[] String[]
int 接口
long 枚举
float
double
char
boolean
保存值 int a = 10; 保存地址值 int[] arr = new int[4];
7.练习引用类型作为方法参数
7.1 定义方法遍历数组
public class Demo11 {
public static void main(String[] args) {
//调用方法
int[] arr = {11,22,33,55};
bianLi(arr);
int[] brr = {10,20,30,405,50};
bianLi(brr);
}
//定义方法,功能是遍历数组
public static void bianLi(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
7.2方法求数组最大值
public class Demo12 {
public static void main(String[] args) {
int[] arr = {12,23,43,5,435};
int max = getMax(arr);
System.out.println(max);
}
//定义方法 方法求数组最大值
//参数是什么? 返回值是什么?
public static int getMax(int[] arr){
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if(arr[i]>max){
max = arr[i];
}
}
return max;
}
}
8.方法的重载
方法的重载是一个类中的多个方法,他们的方法名相同,参数列表不同(个数不同或类型不同),和返回值类型无关重载的好处是什么: 让方法名见名知意,方便调用
public class Demo01 {
public static void main(String[] args) {
getSum(10,20);
getSum(10,20,30);
getSum(2.2,2.32);
}
//定义三个方法
//求两个整数的和
public static int getSum(int a,int b){
int c = a + b;
return c;
}
//求三个整数的和
public static int getSum(int a,int b,int c){
int d = a + c + b;
return d;
}
//求两个小数的和
public static double getSum(double a, double b){
double c = a + b;
return c;
}
}
判断下面哪个方法和题干是重载:
public static int getSum(int a, double b){} ( A B C)
A.public static void getSum(double b, int a){}
B.public static int getSum(double a, int b){}
C.public static int getSum(){}
D.public static void getSum(int b , double a){}
9.基本类型和引用类型使用的区别
基本类型变量保存的是值
引用类型变量保存的是地址值
import java.util.Arrays;
public class Demo03 {
public static void main(String[] args) {
//基本类型变量保存的是值
int a = 10;
//把a的值赋值给b
int b = a;
//修改b的值
b = 200;
//问
System.out.println(a); //10
System.out.println(b); //200
//引用类型变量保存的是地址值
int[] arr = new int[3];
//把arr的地址值赋值给brr
int[] brr = arr;
//修改brr
brr[0] = 200;
brr[1] = 200;
//问
System.out.println(Arrays.toString(arr)); //200,200,0
System.out.println(Arrays.toString(brr)); //200,200,0
}
}
基本类型:
public class Demo04 {
public static void main(String[] args) {
int a = 10;
//调用方法
method(a);
//问
System.out.println(a); //10
}
//定义方法
public static void method(int k){
k = 200;
}
}
引用类型:
import java.util.Arrays;
public class Demo05 {
public static void main(String[] args) {
int[] arr = new int[4];
System.out.println(Arrays.toString(arr)); // 0 0 0 0
method(arr);
System.out.println(Arrays.toString(arr)); //100 200 0 0
}
//定义方法
public static void method(int[] arr){
arr[0] = 100;
arr[1] = 200;
}
}
10.方法的练习
public class Demo06 {
public static void main(String[] args) {
int[] arr = {11,33,55,88,22,99};
int num = 70;
//调用方法
int i = getIndex(arr,num);
System.out.println(i);
}
//定义一个方法,寻找一个数字在一个数组中的索引,如果找不到返回-1
//返回值是什么?参数是什么?
public static int getIndex(int[] arr,int num){
//遍历数组
for (int i = 0; i < arr.length; i++) {
//判断
if(arr[i]==num){
return i;
}
}
//循环结束了方法还没结束说明没有找到
return -1;
}
}
11.方法的递归调用
1-100的相加,方法里面调用方法
public static double sum(int num) {
if (num==1)
return 1 ;
return num+sum(--num);
}
public static void main(String[] args) {
System.out.println(sum(100));
}
RESPECT&LOVE :一起进步&一起成长