Java中的 方法

一、什么是方法

  • 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。

  • 在java中,方法就是用来完成解决某件事情或实现某个功能的办法。

  • 对于以程序来说,方法是完成特定功能的、相对独立的程序段。

方法的特征是 =>()

二、方法的分类

(1)系统方法

在Java中,系统拥有自带的系统方法

例如

System.out.println()
Arrays.toString()

这些方法都是Java开发工具包( jdk )提供好的系统方法

(2)自定义方法

自定义方法是我们根据需求,自定义出能完成特定功能,解决问题的程序段

自定义方法的构成:

[修饰符] 返回值类型 方法名称([参数表]){
    //方法体
}

例如:

public static void play(){
    
}
public String play(Sting str){
    
}

三、使用方法

(1)使用方法

jglz.jpeg

分别输入两个学生的语文和数学成绩,然后分别计算两人总分。

未使用方法的做法:

public static void main(String[] args) {
    int chinese = 0;
    int math = 0;
    int sum = 0;
    //第一名学生成绩
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第一名学生总成绩为:"+sum);
    //第二名学生成绩
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第二名学生总成绩为:"+sum);
}

我们可以看到,相同的代码我们用了两遍,就很冗余,而方法就是能够帮助我们提高代码的复用率,让我们的代码更加的简洁高效。

使用了方法的代码

public static void getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("学生总成绩为:"+sum);
}

public static void main(String[] args) {
   getSum();
   getSum();
}

上面的代码中,我们使用了getSum()方法来获得学生的总成绩,每调用一次方法,就可以得到一个学生的总成绩,减少了代码冗余。

但是,方法定义遵循功能单一原则,也就是一个方法只做一件事。所以,上面的代码是有缺陷的。既有获得总分,又要输出,这是两件事。

(2)设计方法的返回值

如果主调方法需要知道被调方法的处理结果,那么被调方法就需要设计成有返回值的方法

返回值的设计

  1. 在方法名前面写返回值的类型
  2. 在方法体内部使用return语句返回数据
  3. 主调方法通过赋值语句将方法返回值赋给变量
  4. 一个方法只能返回一个值

在上边的例子中,我们发现了方法要遵循功能单一原则,那么我们就不能把输出放在getSum()方法里了。

我们可以单独为输出设计一个方法,在main方法里面输出也行,但是都要求我们知道被调方法的返回值

//被调方法
public static int getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    return sum;
}
//主调方法
public static void main(String[] args) {
    System.out.println("第一位学生成绩为"+getSum());
    System.out.println("第二位学生成绩为"+getSum());
}

我们从主调方法的输出语句中调用被调方法,得到了被调方法的返回值sum总分。

(3)方法中常见的问题

(1)如果方法定义为void,表示不返回值,此时return后面不允许写返回的数据

(2)方法返回值定义了返回什么类型的值,就必须使用return返回什么类型的值。

(3)当方法没有返回值时,不允许主调方法接收返回值。

(4)返回数据的类型要与返回值类型一致。

(5)使用if语句时,如果条件a>0,语句内return,但是没有写出

(6)方法遇到return后就结束了方法,后面的语句没有机会执行。

(4)形式参数与实际参数

主调方法提供的参数是实际参数

被调方法接收数据的参数是形式参数

主调方法的实参传递给被调方法的形参。按照个数,顺序依次赋值

(5)方法参数引用类型和基本数据类型的区别

传递基本类型参数时:

当方法调用时,若传递基本类型的值,那么在被调方法内部修改了形参的值,则在主调方法中的实参不受影响。

传递引用类型参数时:

当方法调用时,若传递引用值(内存地址),那么在被调方法内部修改了形参指向内存空间的值,那么主调方法中的实参指向空间的值也被修改了。

【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容