Java方法
在Java中所有的功能使用方法来定义
方法:
定义某种功能的代码段
方法的作用:
简化代码的编写
提高代码的复用性
定义:
修饰符 返回值类型|void 方法名(参数列表){
实现功能的代码段;
[return 返回值;]
}
修复符:public static 访问权限修饰符
返回值类型|void:
这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值,如果是就定义成有返回值类型的方法,如果不是就定义成没有返回值类型的方法
void:没有返回值类型的方法
返回值类型:有返回值类型的方法
返回的值的数据类型
返回值类型可以为任意类型(基本数据类型|引用数据类型)
方法名:标识符 方法的调用的根据方法名进行调用
遵循标识符的规则或者规范
(参数列表):可以有参数,可以没有参数,可以存在多个参数
方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上
参数:数据类型 参数名,数据类型 参数名…
方法的参数—>相当于局部(当前方法内部)变量的声明,什么时候赋值,在调用方法的时候,方法的参数才有值
{} :实现工具具体的语句体代码段
return :
1.提前结束方法(相当于循环中的break;)
2.在有返回值类型的方法中,必须存在,return返回值,带出一个返回值
注意:如果是有返回值类型的方法,方法体中必须配合return关键字一起使用,作用是带出返回值
定义方法的分析步骤:
1.方法的实现需求
2.方法的名字
3.返回值|void:这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值
4.参数:方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上
方法调用:执行方法中的代码
方法名(实参)
有返回值类型的方法:
1.输出调用 System.out.println(方法名(实参)); --1)执行方法中的所有代码 2)打印方法的返回值
2.赋值调用 数据类型 变量名 = 方法名(实参); --1)执行方法中的所有代码 2)返回值赋值给一个变量
参数:
形式参数:形参
定义方法时候()中的参数
实际参数 :实参
调用方法时候()中的参数
要求一一对应:个数、类型、顺序
注意:方法的形参相当于局部变量的声明,局部:当前方法
方法的形参没有默认,形参的值由实参决定
return :
1.提前结束方法
2.带出返回值,返回给方法的调用处
注意:在有返回值类型的方法中必须存在return关键,并且必须带出返回值
没有返回值类型的方法可以存在return,不被不过带出返回值,只能结束方法
练习题目:
1.一小和尚挑水,要把水缸装满,而且每次只能挑5升水,水缸能容纳80升水。问:小和尚要挑几次才能把水缸挑满?
2.键盘输入一个年份,判断是平年还是闰年(闰年:能被4整除但不能被100整除或者能被400整除)
3.输入年月日,判断这一天是该年的第几天,距离该年结束还有多少天
import java.util.Scanner;
public class work326 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
// 挑水
int a1 = scanner.nextInt();
int b1 = scanner.nextInt();
int c1 = tiaoWi(a1, b1);
System.out.println("小和尚要挑" + c1 + "次才能把水缸挑满");
// 判断是平年还是闰年
int year = scanner.nextInt();
yearMethod(year);
// 第几天
int year2 = scanner.nextInt();
int M = scanner.nextInt();
int day = scanner.nextInt();
getDay(year2, M, day);
}
/*
* 挑水方法
*/
public static int tiaoWi(int a, int b) {
int c;
if (b % a == 0) {
c = b / a;
} else {
c = b / a + 1;
}
return c;
}
/*
* 判断是平年还是闰年方法
*/
public static boolean yearMethod(int year) {
boolean flag = false;
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
flag = true;
System.out.println(year + "是润年");
} else {
System.out.println(year + "是平年");
}
} else {
flag = true;
System.out.println(year + "是润年");
}
} else {
System.out.println(year + "是平年");
}
return flag;
}
/*
* 第几天
*/
public static void getDay(int year2, int M, int day) {
int sumDay1 = day;
int ld;
//调用判断是否为闰年的方法块
boolean flag1 = yearMethod(year2);
if (M >= 2 && M <= 12) {
// 判断这一年是闰年还是平年
if (flag1) {
for (int i = 1; i < M; i++) {
if (i==1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10) {
sumDay1 = sumDay1 + 31;
}else{
sumDay1 = sumDay1 + 30;
}
//System.out.println(sumDay1);
}
}
} else if(M>=13 || day>=31 || year2>=2021){
System.out.println("输入的月份有误");
}
if (flag1) {
ld = 366-sumDay1;
}else {
ld = 365-sumDay1;
}
System.out.println("这一天是"+year2+"年的第"+sumDay1+"天");
System.out.println("距离"+year2+"结束还有"+ld+"天");
}
}