java方法

java方法

方法的基本结构

修饰符 返回值类型 方法名 (参数类型 参数名){

方法体

return 返回值;
}

修饰符: 定义了该方法的访问类型(public,private,protected,default)。
返回值类型:没有返回值用void,有返回值时写明是int,float,double,Sting等等。
方法名: 方法名和参数表共同构成方法签名。
参数类型: 相当于一个占位符,方法可以没有参数。
方法体: 定义该方法要实现的功能。

例子1:

//返回两个整型数的最大值
public static int max (int num1,int num2){
    if(num1 > num2){
        return num1;
    }else{
        return num2;
    }
}
//打印HelloWork
public static void put(){
    System.out.println("HelloWork");
}

这里写图片描述

方法的调用

当程序调用一个方法时,程序控制权转移到被调用的方法。一个名为方法将控制返回给调用者时,其执行return语句或当达到其方法结束的右大括号。
如果该方法返回一个值,调用该方法通常被视为一个值。例如:

int maxNum = max(num1,num2);

如果该方法返回void,则调用该方法必须是一个语句。例子2:

put();
System.out.print(“The max number is:”);

public class Put {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 3;
        int maxNum = max(num1,num2);
        put();
        System.out.print("The max number is:");
        System.out.println(maxNum);
    }
    //返回两个整型数的最大值
    public static int max (int num1,int num2){
        if(num1 > num2){
            return num1;
        }else{
            return num2;
        }
    }
    //打印HelloWork
    public static void put(){
        System.out.println("HelloWork");
    }
}

程序运行结构如下:

HelloWork
The max number is:5

void关键字

上例中put()是一个void方法。它不返回任何值。调用一个void方法必须是一个语句。

通过值传递参数

当调用一个方法时,需要提供的参数,它必须以相同的顺序被指定为他们在法规范的相应参数。这就是所谓的参数顺序关联。

例子3:传递两个参数调用change方法。方法被调用后,实参的值并没有改变。

public class Put {
    public static void main(String[] args) {
        int num1 = 1;
        int num2 = 2;
        System.out.println("交换之前 num1:" + num1 + ";num2:" + num2);
        // 调用change方法
        change(num1, num2);
        System.out.println("交换之后num1:" + num1 + ";num2:" + num2);
        }
    // 交换两个变量的方法
    public static void change(int n1, int n2) {
        System.out.println("change方法里面交换值之前n1:" + n1 + ";n2:" + n2);
        // 交换 n1 与 n2的值
        int temp = n1;
        n1 = n2;
        n2 = temp;
        System.out.println("change方法里面交换值之后n1:" + n1 + " ;n2:" + n2);
        }
    }

程序运行结果:

交换之前 num1:1;num2:2
change方法里面交换值之前n1:1;n2:2
change方法里面交换值之后n1:2;n2:1
交换之后num1:1;num2:2

方法的重载

例子1中max函数只能用于int型的数据,如果要比较double型的数据就需要创建一个相同名字但参数不同的方法。

public static double max(double num1, double num2) {
  if (num1 > num2)
    return num1;
  else
    return num2;
}

如果调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用; 如果传递的是double型参数,则double类型的max方法体会被调用。
一个类的两个方法拥有相同的名字,但是有不同的参数列表,即同名不同参,这个就叫做方法重载。
例子4:

public class Put {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 3;
        double num3 = 5.0;
        double num4 = 3.0;
        int maxNumInt = max(num1,num2);
        double maxNumDou = max(num3,num4);
        System.out.println("int类型最大值:" + maxNumInt);
        System.out.println("double类型最大值:" + maxNumDou);
    }
    //返回两个整型数的最大值
    public static int max (int num1,int num2){
        if(num1 > num2){
            return num1;
        }else{
            return num2;
        }
    }
    public static double max(double num1, double num2) {
          if (num1 > num2)
            return num1;
          else
            return num2;
        }
}

程序运行结果:

int类型最大值:5
double类型最大值:5.0

变量的作用域

局部变量在一个方法中定义的变量。局部变量的范围始于它的声明,并继续到包含该变量的块的结束。全局变量在类的整个范围之内,都有效的变量。
例子5:

public class Test {
    public static void main(String[] args) {
        int num1 = 5;
        System.out.print("main函数num1值:" + num1);
        for (int i = 0; i < 2; i++) {
            System.out.println("\ri:" + i);
            for (int j = 0; j < 3; j++) {
                System.out.print("\tj:" + j);;
            }
        }
        System.out.println("\rret函数返回的num2值" + ret(num1));
        System.out.println("main函数num1值:" + num1);
    }
    public static int ret(int num1){
        int num2;
        num2 = num1 + 5;
        return num2;
    }
}

变量的作用域见下图:

这里写图片描述

程序运行结果:

main函数num1值:5
i:0
j:0 j:1 j:2
i:1
j:0 j:1 j:2
ret函数返回的num2值10
main函数num1值:5

构造方法

当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有明确的返回值。 通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。
所有的类都有构造函数,不管有没有定义,Java会自动提供一个默认的构造函数来初始化所有成员变量为零。一旦定义自己的构造函数,默认的构造函数不再使用。
例子6:

public class Test {
    public static void main(String[] args) {
        //调用构造方法来初始化一个对象
        Student s1 = new Student("s1");
        Student s2 = new Student("s2");
        System.out.println("这个班级的学生有:" + s1.stuName + "、" + s2.stuName);
    }
}
//构造函数
class Student{
    String stuName;
    public Student(String name) {
        stuName = name;
    }

}

程序运行结果:

这个班级的学生有:s1、s2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值