Java_1_06

本文介绍了Java中方法的基本概念,包括方法的格式、调用、形式参数与实际参数,以及方法的重载。强调了方法在提升代码复用性和维护性上的作用。通过实例展示了如何实现判断两个数相等、求最大值、最小值以及计算几何形状周长和面积的方法。同时,提出了一个完整的班级成绩管理系统的需求分析,涵盖了数组操作、计算不及格人数和平均分等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法

方法是具有特定功能的一段独立的小程序(代码块)
方法能提高代码的 复用性、维护性

格式

修饰符 返回值类型 name(datatype 形参1,datatype 形参2){
	执行语句;
	return 返回值;
}

两个明确:

  • 明确 参数列表
  • 明确 返回值类型

注意事项:

  • 方法间是平级关系,不能互相嵌套
  • 方法的返回值类型一定要和返回值匹配
  • 方法的返回值类型为 void 时,代表无返回值;**return;**即可,也可以直接省略
  • ** return **关键字作用
    • 返回某个数据
    • 作为方法结束的标记

调用

  • 单独调用
  • 输出调用
    • 返回值类型为 void 时,无法使用
  • 赋值调用
    • 返回值类型为 void 时,无法使用

形式参数和实际参数

  • 形式参数
    • 定义 方法时,括号里面的参数
  • 实际参数
    • 调用 方法时,有时需要传递参数,传递的参数

重载

在同一个类中,出现两个方法的名字相同参数列表不同 的,这就叫做方法的重载

参数列表的顺序、数量、类型均可造成方法的重载

练习

分析以下需求,并用代码实现(每个小需求都需要封装成方法)
1.判断两个数据是否相等(整数和小数)
2.获取两个数中较大的值(整数和小数)
3.获取两个数中较小的值(整数和小数)
4.否能用一个方法实现3和4的两个功能

import java.util.Scanner;

public class method02 {
	public static void main(String[] args) {
		Scanner sc1 = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int a =sc1.nextInt();
		Scanner sc2 = new Scanner(System.in);
		System.out.println("请输入一个小数:");
		double b = sc2.nextDouble();
		System.out.println("数值较大的是:" + bigger(a,b));
	}
	
	public static boolean isEqual(int a,double b) {
		boolean tag = false;
		if(a == b) {
			tag = true;
		}
		return tag;
	}
	
	public static String bigger(int a,double b) {
		String str = "";
		if(a >= b) {
			str = str.valueOf(a);
		}else {
			str = str.valueOf(b);
		}
		return str;
	}
	
	public static String[] compare(int a,double b) {
		String[] str = new String[2];
		if(a >= b) {
			str[0] = Integer.toString(a);
			str[1] = Double.toString(b);
		}else {
			str[1] = Integer.toString(a);
			str[0] = Double.toString(b);
		}
		return str;
	}	
	
	public static String[] compare(int a,double b) {//通过返回一个数组实现返回两个数的功能
		String[] str = new String[2];
		if(a >= b) {
			str[0] = Integer.toString(a);
			str[1] = Double.toString(b);
		}else {
			str[1] = Integer.toString(a);
			str[0] = Double.toString(b);
		}
		return str;
	}	
}

分析以下需求,并用代码实现
1.键盘录入长方形的长和宽
定义方法计算该长方形的周长,并在main方法中打印周长
2.键盘录入长方形的长和宽
定义方法计算该长方形的面积,并在main方法中打印面积
3.键盘录入圆的半径
定义方法计算该圆的周长,并在main方法中打印周长
4.键盘录入圆的半径
定义方法计算该圆的面积,并在main方法中打印面积

import java.util.Scanner;

public class method03 {
	public static void main(String[] args) {		
		double cirR = cirRectangle();
		System.out.println("长方形的周长为:"+cirR);
		double areaR =areaRectangle();
		System.out.println("长方形的面积为:"+areaR);
		double cirC =cirCircle();
		System.out.println("圆的周长为:"+cirC);
		double areaC =areaCircle();
		System.out.println("圆的面积为:"+areaC);
	}
	
	public static double cirRectangle() {
		Scanner sc1 = new Scanner(System.in);
		System.out.println("请输入长方形的长度:");
		double a =sc1.nextDouble();
		Scanner sc2 = new Scanner(System.in);
		System.out.println("请输入长方形的宽度:");
		double b = sc2.nextDouble();
		double cir = 0.0;
		cir = a*2 + b*2;
		return cir;
	}
	
	public static double areaRectangle() {
		Scanner sc1 = new Scanner(System.in);
		System.out.println("请输入长方形的长度:");
		double a =sc1.nextDouble();
		Scanner sc2 = new Scanner(System.in);
		System.out.println("请输入长方形的宽度:");
		double b = sc2.nextDouble();
		double area = 0.0;
		area = a*b;
		return area;
	}
	
	public static double cirCircle() {
		double cir = 0.0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入圆的半径:");
		double r =sc.nextDouble();
		
		cir = 2*r*Math.PI;// π 在Java里用 Math.PI 表示
		return cir;
	}
	
	public static double areaCircle() {
		double area = 0.0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入圆的半径:");
		double r =sc.nextDouble();

		area = r*r*Math.PI;
		return area;
	}
}

分析以下需求,并用代码实现
1.键盘录入班级人数
2.根据录入的班级人数创建数组
3.通过键盘录入将班级每个人的分数录入到数组容器中
4.要求:
(1)打印该班级的不及格人数
(2)打印该班级的平均分
(3)演示格式如下:
请输入班级人数:
键盘录入:100
请输入第一个学员分数
键盘录入:20
请输入第二个学员的分数
键盘录入:98
控制台输出:
不及格人数:19
班级平均分:87

import java.util.Scanner;

public class method04 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入班级人数:");
		int num = sc.nextInt();
		int[] group = new int[num];
		System.out.println("现在开始进行成绩录入!");
		scoreIn(num,group);
		System.out.println("不及格人数:" + notPass(group));
		System.out.println("班级平均分:" + average(group));
	}
	
	public static void scoreIn(int num,int[] group) {
		Scanner sc = new Scanner(System.in);
		for(int i = 0;i < num;i++ ) {
			int j = 0;
			System.out.println("请输入第" + (i + 1) +"个学员的分数");
			j = sc.nextInt();
			group[i] = j;
		}	
	}
	
	public static int notPass(int[] group) {
		int num = 0;
		for(int i = 0;i < group.length;i++) {
			if(group[i] < 60) {
				num++;
			}
		}
		return num;
	} 
	
	public static int average(int[] group) {
		int sum = 0,ave = 0;
		for(int i = 0;i < group.length;i++) {
			sum += group[i];
		}
		ave = sum / group.length;
		return ave;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值