Java零基础入门——方法

本文介绍了Java编程中的方法概念,包括返回值、参数、调用等关键要素,并展示了凯撒日期计算的完整案例。此外,详细阐述了方法的重载特性,强调方法名相同但形参列表不同的原则。通过输入、判断、计算等多个方法实现凯撒日期的处理,演示了方法在实际编程中的应用。
摘要由CSDN通过智能技术生成

方法的概念

一个独立的、能够完成特定功能的“代码块”

名词解析

  1. 返回值:完成某项特定功能,能够向调用处反馈的结果
  2. 方法名:方法的名称。类似变量名
  3. 形参:在方法定义时小括号里面的内容,带有数据类型(形参时局部变量)
  4. 实参:在方法调用时小括号里面的内容,不带数据类型
  5. 返回:通过return关键字,将制定的数据返回给调用处,方法一旦return,则不再执行后面的语句
  6. 修饰符:public/private/protected/default/static/abstract/final
  7. 调用:使用方法-格式:方法名(实参)
  8. 传参:使用方法时,用实参为形参赋值

使用时的注意事项

  1. 方法定义时,方法体内返回的返回值类型必须和定义时相同
  2. 方法可以嵌套调用,但是不可以嵌套定义
  3. 定义方法时如果返回值为void,则方法体内仍然可以使用return关键字,但是return后面不能跟随任何数据
  4. 方法的重载,不可以出现完全相同的冲突(不能变成重写)

案例

凯撒日期

public static void main(String[] args) {
    //凯撒日期---方法版本
    //        int[] date = input();//input方法直接存储了年月日

    System.out.println(sumOfDate(input()));
}

/*****
 * 用于输入日期
 * @return:输入的年月日,用数组形式返回[0]year [1]month [2]day
 */
public static int[] input(){
    int[] date = new int[3];
    Scanner sc = new Scanner(System.in);
    System.out.print("请输入年份");
    date[0] = sc.nextInt();
    System.out.print("请输入月份");
    date[1] = sc.nextInt();
    System.out.print("请输入日期");
    date[2] = sc.nextInt();

    return date;
}

/*****
 * 判断一个年份是平年还是闰年
 * @param year:将要被判断的年份
 * @return:true--闰年   false--平年
 * EMail:ice_wan@msn.cn
 */
public static boolean judgeYear(int year){
    return  year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}

/***
 * 计算指定的年份中指定的月份共有多少天
 * @param year:年份
 * @param month:月份
 * @return : 计算结果,即天数
 */
public static int dayOfMonth(int year, int month){
    switch(month){
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            return 31;
        case 4: case 6: case 9: case 11:
            return 30;
        case 2:
            int t = judgeYear(year) ? 1 : 0;
            return 28 + t;
        default:
            System.out.println("ERROR");
            return -1;
    }
}

/****
 * 判断用户输入的日期是否正确
 * @param year:年份
 * @param month:月份
 * @param day:日期
 * @return:true---正确    false---错误
 */
public static boolean judgeInput(int year, int month, int day){
    return !(year < 0 || month > 12 || month < 1 || day < 1 || day > dayOfMonth(year, month));
}

/*****
 * 计算凯撒日期天数综合
 * @param year:年份
 * @param month:月份
 * @param day:日期
 * @return:计算结果,即凯撒日期
 * EMail:ice_wan@msn.cn
 */
public static int sumOfDate(int[] date){
    if(!judgeInput(date[0], date[1], date[2])){
        System.out.println("输入的日期有误!~");
        return -1;
    }
    int sum = 0;
    for (int i = date[1] - 1; i > 0; i--){
        sum += dayOfMonth(date[0], i);
    }
    sum += date[2];
    return sum;
}

方法的重载

方法重载的特点

  1. 方法名相同
  2. 形参列表不同(数量不同、类型不同、顺序不同)
public static void fun(int a, int b){}
public static void fun(float a, int b){}
public static void fun(int a, float b){}
public static void fun(){}
public static void fun(int a, int b, String str){}
public static void fun(float a, double b){}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值