方法解释
方法(method)是程序中最小的执行单元。

方法里面代码不可再拆,而单独执行。还可以再定义一个方法。

方法用来调用,就是这样。

1,什么是方法?
方法是程序中最小的执行单元。
2,实际开发中,什么时候用到方法?
重复的代码,具有独立功能的代码可以抽取到方法中。
3,实际开发中,方法有什么好处?
可以提高代码的复用性。
可以提高代码的可维护性。
方法的格式
把一些代码打包在一起(如何) 方法定义
用到的时候就调用(如何) 方法调用
方法的定义格式
1,最简单的方法定义
2,带参数的方法定义
3,带返回值方法的定义
eg:

方法名:如果是一个单词,全部小写。
如果是多个字母,第一个单词全小写,从第二个单词开始,首字母大写。

看代码说结果

人肉计算器
需求:定义一个方法,在方法内部定义两个变量,求出他们的和并进行打印。
答案:
import java.util.Scanner;
public class Method111 {
public static void main(String[] args) {
getsum();
}
public static void getsum(){
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入两个要求和的数:");
int number1 = sc.nextInt();
int number2 = sc.nextInt();
System.out.println("和为:" + (number1+number2));
}
}
带参数的方法定义和调用
主方法和其他方法肯定要有联系!
定义:
单个参数:
public static void 方法名(参数){...........}
多个参数:
public static void 方法名(参数1,参数2,参数3,...){..............}
调用:
单个参数:
方法名(参数);
多个参数:
方法名(参数1,参数2,参数3,...)
形参和实参
形参:全程形式参数,是指方法定义中的参数
实参: 全程实际参数,是指方法调用中的参数
注意:方法调用时,形参和实参必须一 一对应,负责程序将报错。
eg:定义一个方法,求长方形的周长,将结果在方法中进行打印。
答案:
import java.util.Scanner;
public class Method111 {
public static void main(String[] args) {
double chang = 19.2;
double kuan = 16.3;
Chzc(chang,kuan);
}
public static void Chzc(double number1,double number2){
System.out.println((number1+number2)*2);
}
}
带返回值方法的定义和调用
为什么要有带返回值的方法呢?
调用者----->方法
方发------>调用者
定义:
public static 返回值类型 方法名 (参数) {
方法体;
return 返回值;
}
eg:
public static int getSum(int a, int b){
int c = a+b;
return c;
}
直接调用:
方法名(实参);
赋值调用:
整数类型 变量名 = 方法名(实参);
输出调用:
System.out.println(方法名(实参));
比较两个长方形的面积,题目给出两个长方形的长和宽。
import java.util.Scanner;
public class Method111 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("第一个长和宽:");
double number1 = sc.nextDouble();
double number2 = sc.nextDouble();
double area1 = getArea(number1,number2);
System.out.println("第二个长和宽:");
double number3 = sc.nextDouble();
double number4 = sc.nextDouble();
double area2 = getArea(number3,number4);
if(area1 >area2){
System.out.println("第一个大");
}else if(area2 > area1){
System.out.println("第二个大");
}else{
System.out.println("一样大");
}
}
public static double getArea(double num1,double num2){
double area = num1*num2;
return area;
}
}
在实际开发当中,我们一般是把重复的代码或者具有独立功能的代码抽取到方法当中。
方法的注意事项
方法不调用就不执行。
方法和方法之间是平级关系,不能互相嵌套定义。
方法的编写顺序和执行顺序无关。
方法的返回值类型为void,表示该方法没有返回值。
没有返回值的方法可以省略return语句不写。
如果要编写return,后面不能跟具体的数据。
return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
return关键字
方法没有返回值:可以省略不写。如果书写,表示结束方法。
方法有返回值:必须要写,表示结束方法和返回结果。
方法的重载
在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。
每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。
与返回值也无关。
学会:
1,会判断方法之间是否构成重载关系
2, 会定义重载的方法

eg:
需求:使用方法重载的思想,设计比较两个整数是否相同的方法。
要求:兼容全整数类型(byte,short,int,long)
import java.util.Scanner;
public class Method111 {
public static void main(String[] args) {
compare((byte)10,(byte)20);
}
public static void compare(byte b1,byte b2){
System.out.println("byte");
System.out.println(b1 == b2);
}
public static void compare(short s1,short s2){
System.out.println("short");
System.out.println(s1 == s2);
}
public static void compare(int i1,int i2){
System.out.println("int");
System.out.println(i1 == i2);
}
public static void compare(long n1,long n2){
System.out.println("long");
System.out.println(n1 == n2);
}
}
方法的三个练习
数组遍历
需求:设计一个方法用于数组的遍历,要求遍历的结果是在一行上的。例如[11,22,33,44,55]
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//动态定义一个数组
System.out.println("数组的长度和数组元素:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int[] arr = new int[number];
for (int i = 0; i < number; i++) {
arr[i] = sc.nextInt();
}
printArr(arr);
}
public static void printArr(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
if(i<arr.length-1){
System.out.print(",");
}
}
System.out.println("]");
}
}
解释:
System.out.println("abc");//先打印abc,再进行换行
System.out.print("abc");//只打印abc,不换行
System.out.println();//不打印任何数据只做换行处理
第二个练习
数组的最大值
需求:设计一个方法求数组的最大值,并将最大值返回。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("老套路,请输入数组的长度和所有的数组元素:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int arr[] = new int[number];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
System.out.println("其最大值为:"+getMax(arr));
}
public static int getMax(int[] arr){
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
max = arr[i];
}
}
return max;
}
}
王通哥教你学习!
判断是否存在
定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] arr = {1,5,8,12,56,89,34,67};
System.out.println("已定义好数组,请输入您要判断是否存在的数:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
System.out.println(contains(number,arr));
}
public static boolean contains(int num,int[] arr){
for (int i = 0; i < arr.length; i++) {
if(num == arr[i]){
return true;
}
}
return false;
}
}
return,break关键字的区别
return:其实跟循环没有什么关系,跟方法有关的,表示1结束方法 ;2返回结果
如果方法执行到了return,那么整个方法全部结束,里面的循环也会随之结束了。
break关键字
其实跟方法没有什么关系,结束循环或switch的。