public static void main(String[] args) {
getMax();
}
//public static void 方法名(){}
public static void getMax(){
int a = 10;
int b = 20;
if(a>b){
System.out.println(a+"是最大值");
}else{
System.out.println(b+"是最大值");
}
public static void getMax(double a ,double b){
if(a>b){
System.out.println(a+"是较大的数");
}else{
System.out.println(b+"是较大的数");
}
}
public static void main(String[] args) {
System.out.println("开始");
getMax(3.14,2.0);
System.out.println("结束");
}
}
4. 带返回值方法的定义和调用
4.1 带返回值方法定义和调用(掌握)
- 定义格式
public static 数据类型 方法名(数据类型 变量名,数据类型 变量名....){
方法体;
return 返回值;
}
这是一个完整定义方法的格式:
public static:方法的修饰:现在只需要照抄main方法;
数据类型:因为方法是你写的,有没有返回值,你肯定知道,如果有返回值,这个返回值是什么类型,这个数据类型就是什么类型.如果你的方法你写完没有返回值,这里就写void.
方法名:你自己给这个方法起的名字,遵循小驼峰命令法
参数列表:你定义一个方法的时候,你要要求调用者给你传递什么数,我们这里的参数列表接收,调用者传递的实际参数与我的参数列表个数,顺序,以及数据类型都要一致,否则程序报错.
方法体:这个方法具体的功能代码,就是你以前写在main方法中的代码,你能写在main方法中的代码,这里都可以写.
return 返回值:你的程序执行完,你需要给调用者返回一个数,这个数和你方法定义上的数据类型保持一致,否则报错,如果你没有返回值,return可以省略,如果你定义了返回值类型,你没有return,程序也会报错.
return也可以表示结束方法的意思.
- 范例
public class Demo5 {
//定义一个主方法
public static void main(String[] args) {
//方法的调用
//int c = 10;
// int d = 20;
//让用户去输入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数");
int a = scanner.nextInt();
System.out.println("请输入第二个数");
int b = scanner.nextInt();
//int max = getMax(a,b);//有返回值的 你先写方法名(实际参数) ALT+Enter
System.out.println(getMax(a,b));
}
//定义一个方法去判断两个数的最大值
/* public static 数据类型 方法名(数据类型 变量名,数据类型 变量名....){
方法体;
return 返回值;
}*/
public static int getMax(int a , int b ){
//用if去判断两个数的大小,约定好谁大我就返回谁
if(a>b){
return a ;
}else{
return b ;
}
}
}
- 注意:
- 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
- 调用格式
getMax(a,b)
- 范例
public static int getMax(int a , int b ){
//用if去判断两个数的大小,约定好谁大我就返回谁
if(a>b){
return a ;
}else{
return fasle ;//报错
}
}
}
public static int getMax(int a , int b ){
//用if去判断两个数的大小,约定好谁大我就返回谁
if(a>b){
return a ;
}//也是报错
}
}
4.2 带返回值方法练习(应用)
- 需求:设计一个方法可以获取两个数的较大值,数据来自于参数
- 代码:
public static void main(String[] args) {
//方法的调用
//int c = 10;
// int d = 20;
//让用户去输入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数");
int a = scanner.nextInt();
System.out.println("请输入第二个数");
int b = scanner.nextInt();
//int max = getMax(a,b);//有返回值的 你先写方法名(实际参数) ALT+Enter
System.out.println(getMax(a,b));
}
5. 方法的注意事项
5.1 方法的注意事项(掌握)
- 方法不能嵌套定义
- 示例代码:
public class Demo6 {
public static void main(String[] args) {
public static void getMax(){
}
- 错误范例:
public static void show(double b,int a){
}
public static void show(float a,int b){
}
public static void show(double c,int f){
}
6.2 方法重载练习(掌握)
- 需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
- 思路:
- ①定义比较两个数字的是否相同的方法compare()方法,参数选择两个int型参数
- ②定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数
- ③定义所有的重载方法,两个byte类型与两个short类型参数
- ④完成方法的调用,测试运行结果
- 代码:
public class Demo7 {
public static void main(String[] args) {
int sum = sum(2, 2,6);
System.out.println(sum);
}
public static int sum(int a,int b){
System.out.println(1);
return a+b;
}
public static double sum(double a,double b){
System.out.println(2);
return a+b;
}
public static long sum(long a,long b){
System.out.println(3);
return a+b;
}
public static double sum(double a,int b){
System.out.println(4);
return a+b;
}
public static double sum(int a,double b){
System.out.println(5);
return a+b;
}
public static int sum(int a,int b,int c){
System.out.println(6);
return a+b+c;
}
}
//方法的重复载入,方法你需要接受的参数,可能存在顺序,类型,个数不同的各种需求,我就用重载,别人只需要记一个方法名就可以了,然后传入对应的实际参数,程序自动的根据实际参数的顺序类型个数去匹配对应的方法.
7. 方法的参数传递
7.1 方法参数传递基本类型(理解)
- 测试代码:
public class ArgsDemo01 {
public static void main(String[] args) {
int number = 100;
System.out.println("调用change方法前:" + number);
change(number);
System.out.println("调用change方法后:" + number);
}
public static void change(int number) {
number = 200;
}
}
- 结论:
- 基本数据类型的参数,形式参数的改变,不影响实际参数
- 结论依据:
- 每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失
7.2 方法参数传递引用类型(理解)
- 测试代码:
public class ArgsDemo02 {
public static void main(String[] args) {
int[] arr = {10, 20, 30};
System.out.println("调用change方法前:" + arr[1]);
change(arr);
System.out.println("调用change方法后:" + arr[1]);
}