Java基础——方法
1.方法定义
格式:
public static void()方法名{
//方法体
}
调用格式:方法名();
示例:判断一个数是否是偶数
public class MethodDemo01 {
public static void main(String[] args) {
//调用方法
ieEvenNumber();
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void ieEvenNumber(){
//定义变量
int number=10;
number=9;
//判断该数据是否是偶数
if(number%2==0){
System.out.println("是偶数");
}else{
System.out.println("不是偶数");
}
}
}
**
2.带参数方法的定义和调用
定义格式:
public static void 方法名(参数){
}
调用格式:方法名(参数)
示例:判断一个数是否是偶数
public class MethodDemo03 {
public static void main(String[] args) {
//常量值的调用
isEvenNumber(5);
//变量的调用
int number=10;
isEvenNumber(number);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
public static void isEvenNumber(int number){
if(number%2==0){
System.out.println("偶数");
}else{
System.out.println("不是偶数");
}
}
}
3.形参和实参
形参:方法定义中的参数
等同于变量定义的格式,例如: int number
实参:方法调用中的参数
等同于使用变量或常量 例如:10 number
带参数方法练习:
需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数
思路:
1.定义一个方法,用于打印两个数字中的较大数
2.为方法定义两个参数,用于接收两个数字
3.使用分支语句分两种情况对两个数字的大小关系进行处理
4.在main()方法中调用定义好的方法(使用常量)
5.在main()方法中调用定义好的方法(使用变量)
示例:
public class MethodDemo04 {
public static void main(String[] args) {
//直接传递常量
getMax(10,20);
//定义变量,传递
int a=11;
int b=12;
getMax(a,b);
}
//1.定义一个方法,用于打印两个数字中的较大数
//2.为方法定义两个参数,用于接收两个数字
public static void getMax(int a,int b){
//3.使用分支语句分两种情况对两个数字的大小关系进行处理
if (a>b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
带返回值方法的定义和调用:
定义格式:
public static 数据类型 方法名(参数){
}
调用格式:
1.方法名(参数)
2.数据类型 变量名=方法名(参数)
public class MethodDemo05 {
public static void main(String[] args) {
//数据类型 变量名=方法名(参数)
boolean flag=isEvenNumber(10);
System.out.println(flag);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值
public static boolean isEvenNumber(int number){
if (number%2==0){
return true;
}else {
return false;
- }
}
}
方法注意事项:
1.方法不能嵌套定义
2.void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
方法的通用格式:
public static 返回值类型 方法名(参数){
方法体;
return数据;
}
注释:
public static--------------------------- 修饰符,目前先记住这个格式
返回值类型--------------------------- 方法操作完毕之后返回的数据的数据类型 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写
return方法名---- ----------------------- 调用方法时使用的标识
参数 ---- ----------------------- 由数据类型和变量名组成,各个参数之间用逗号隔开
方法体---- ----------------------- 完成功能的代码块
return---- ----------------------- 如果方法操作完毕,有数据返回,用于把数据返回给调用者
定义方法时,要做到两个明确 :
1.明确返回值类型:主要明确方法操作完毕后是否有数据返回,如果没有,写void;如果有,写对应的数据类型。
2.明确参数:主要是明确参数的类型和数量
方法重载:
方法重载是指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载
- 多个方法在同一个类中
- 多个方法据具有相同的方法名
- 多个方法的参数不相同,类型不同或者数量不同
方法重载特点:
- 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
- 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否互相构成重载
范例:
/*
方法重载:
多个方法在同一个类中
多个方法据具有相同的方法名
多个方法的参数不相同,类型不同或者数量不同
与返回值无关,Java虚拟机会通过参数的不同来区分同名的方法
*/
public class MethodDemo07 {
public static void main(String[] args) {
//调用方法
int result=sum(10,20);
System.out.println(result);
double result2=sum(3.5,5.6);
System.out.println(result2);
int result3=sum(5,6,7);
System.out.println(result3);
}
//1.求两个int类型的数据和方法
public static int sum(int a,int b){
return a+b;
}
//2.求两个double类型的数据和的方法
public static double sum(double a,double b){
return a+b;
}
//3.求三个int类型数据和的方法
public static int sum(int a,int b,int c){
return a+b+c;
}
}
方法重载练习:
/*
方法重载练习
*/
public class MethodDemo08 {
public static void main(String[] args) {
//调用方法
System.out.println(compare(10,20));
System.out.println(compare((byte)10,(byte)20));
System.out.println(compare((short)10,(short)20));
System.out.println(compare((long)10,(long)20));
}
//定义比较两个数字是否相同的方法compare()方法,参数选择两个int类型
public static boolean compare(int a,int b){
System.out.println("调用int:");
return a==b;
}
//byte
public static boolean compare(byte a,byte b){
System.out.println("调用byte:");
return a==b;
}
//short
public static boolean compare(short a,short b){
System.out.println("调用short:");
return a==b;
}
//定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数
public static boolean compare(long a,long b){
System.out.println("调用long:");
return a==b;
}
}
方法参数传递(基本类型):
对于基本类型的参数,形式参数的改变,不影响实际参数的值
范例:
/*
方法参数传递(基本类型):
对于基本类型的参数,形式参数的改变,不影响实际参数的值
*/
public class MethodDemo09 {
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;
}
}
方法参数传递(引用类型):
对于引用类型的参数,形式参数的改变,影响实际参数的值
范例:
/*
方法参数传递(引用类型):
对于引用类型的参数,形式参数的改变,影响实际参数的值
*/
public class MethodDemmo10 {
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]);
}
//定义一个change()方法
public static void change(int[] arr){
//修改数组里的内容
arr[1]=200;
}
}