java之方法

我们在做手工时,会将很多"控件"组合起来。程序也是由控件组合而成的,程序控件的最小单位是方法

方法的创建...方法的声明

方法的使用...方法的调用

方法的声明

​
package hello01;
import java.util.Scanner;
public class day01 {
    static int max(int a,int b,int c) {
        int max=a;
        if(b>max) max=b;
        if(c>max) max=c;
        return max;
    }
    public static void main(String[] args) {
       Scanner stdIn=new Scanner(System.in);
       int [] height=new int[3];
       int [] weight=new int[3];
       int [] age=new int[3];
       for(int i=0;i<3;i++) {
           System.out.println("[" + (i + 1) + "]");
           System.out.println("身高:"); height[i] = stdIn.nextInt();
           System.out.println("体重:"); weight[i]=stdIn.nextInt();
           System.out.println("年龄:");  age[i]=stdIn.nextInt();
       }
        int maxHeight=max(height[0],height[1],height[2]);
       int maxWeight=max(weight[0],weight[1],weight[2]);
       int maxAge=max(age[0],age[1],age[2]);
        System.out.println("身高的最大值为"+maxHeight+".");
        System.out.println("体重的最大值为"+maxWeight+".");
        System.out.println("年龄的最大值为"+maxAge+".");
    }
}

​

 方法头

这部分描述了方法这个程序控件的名称和规格。

返回类型

指的是自我调控的控件,即返回值(方法中返回的数值)的类型。

方法名

指的是方法的名称。方法就是通过该名称由其他控件进行调用。

形参列表

方法中将用于接收“辅助指示”的变量即形参,放在小括号中进行声明。像本方法中这样接收多个形参时要使用逗号隔开。

方法体

方法体就是程序块(即用大括号括起来的0条以上的语句的集合)。

方法max的主体中声明了max变量。原则上,像这样只在方法中使用的变量可以在该方法中声明使用。另外,方法体中可以声明和方法名同名的变量。这是因为方法和变量的类别不同,不会发生名称冲突

由于方法max已经存在 a,b,c变量(形参),因此不可以在方法体中创建相同名称的变量。

方法的调用

方法的调用是通过在方法名的后面加上小括号来执行。

当调用方法时,程序流程会跳转到该方法中

在调用方法中,形参变量在创建的同时会初始化为实参的值。

方法接收的形参使用传递的实参值进行初始化

当形参初始化结束后,方法体开始执行。

return语句

方法调用表达式的值为该方法的返回值

方法max将最大值返回给调用方

return max; //像这样的语句称为return语句

例题

编写一个方法,计算并返回1到n的所有整数和。

package hello01;
import java.util.Scanner;
class day01 {
    static int sumUp(int n) {
        int i,k=0;
        for (i = 1; i <=n; i++) {
            k += i;
        }
        return k;
    }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int n= input.nextInt();
        sumUp(n);
        System.out.println(sumUp(n));//调用方法  方法名+形参
    }
}

void方法

package hello01;
import java.util.Scanner;
class day01 {
       static void putStars(int n) {
           while (n-->0)
               System.out.print('*');
       }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("显示直角在左下方的三角形。");
        System.out.print("层数: ");
        int n=input.nextInt();
        for(int i=1;i<=n;i++)
        {
            putStars(i);
            System.out.println();
        }
    }
}

方法putStars会连续显示n个'*'。该方法只用于显示,没有返回值。这种方法的返回类型要声明为void。 注意:不会返回值的方法的返回类型要声明为void

由于void方法不会返回值,因此return语句也不是必需的。如果在方法的中途要强制将程序流程返回到调用方,可以执行没有返回值的return语句。

return;//返回调用方,但不返回任何值

编写一个显示您好方法

package hello01;
import java.util.Scanner;
class day01 {
       static void hello(String n) {
           System.out.println(n);
       }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String n=input.nextLine();
        hello(n);
    }
}

其他方法的调用

例如  显示长方形和正方形

package hello01;
import java.util.Scanner;
class day01 {
    //连续显示n个字符c
     static void putChars(char c,int n) {  
         while (n-->0)
             System.out.print(c);
     }
     //通过排列字符'+'来显示边长为n的正方形
     static void putSquare(int n) {
         for(int i=1;i<=n;i++) { //执行n次下述处理
             putChars('+',n); //显示n个字符'+'
             System.out.println();//换行
         }
     }
     //通过排列字符'*'来显示宽为h长为w的长方形
     static void putRectangle(int h,int w) {
         for(int i=1;i<=h;i++) { //执行h次下述处理
             putChars('*',w);//显示w个字符'*'
             System.out.println(); //换行
         }
     }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("显示正方形。");
        System.out.print("边长"); int n=input.nextInt();
        putSquare(n);
        System.out.println("显示长方形");
        System.out.print("宽:"); int h= input.nextByte();
        System.out.print("长:"); int w= input.nextByte();
        putRectangle(h,w);
     }
}

方法是程序的一个控件。在创建控件时,如果有其他方便的控件,我们也可以大量地使用

不接收参数的方法

不接收形参的方法在声明时小括号()中是空的。

例如   编写一个三位数相加的程序,由于不接受错误的数值,因此最终一定要回答正确。

package hello01;
import java.util.Random;
import java.util.Scanner;
class day01 {
     static Scanner input=new Scanner(System.in);
     static boolean confirmRetry() {
         int cont;
         do {
             System.out.print("再来一次?<Yes...1/No...0>:");
             cont= input.nextInt();
         } while(cont !=0&&cont !=1);
         return cont==1;
     }
    public static void main(String[] args) {
        Random rand=new Random();
        System.out.println("心算能力训练!!");
        do {
            int x= rand.nextInt(900)+100;
            int y= rand.nextInt(900)+100;
            int z= rand.nextInt(900)+100;
            while (true) {
                System.out.print(x+"+"+y+"+"+z+"=");
                int k= input.nextInt();
                if(k==x+y+z)
                    break;
                System.out.println("回答错误!!");
            }
        } while(confirmRetry());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Victor故里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值