小白入门Java方法笔记;Java方法详解;Java方法重载;

一,方法定义:

            方法(method)就是一段用来完成特定功能的代码片段,类似于其它语言的函数(function)。
方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象即是Java中,整个程序的基本单位是类,方法是从属于类和对象的。 

为什么使用方法:

                          重复代码不想写多变,增加重用性,减少冗余性。 

 二,使用方法步骤:

a:定义方法:

                                                                         注:在类里  其它方法外面定义方法。 

                                   [权限修饰符] [方法修饰符]  [返回值类型]  方法名([参数列表]){ 

                                                                           方法体//一段功能代码的组合

                                                                             [return  返回值 ;]

                                                                            }

             权限修饰符:

                                       public 公有的       protected    受保护的   

                                       Default  默认的    private  私有的

             方法修饰符:

                                       6种 static  静态的(static用不用都占空间,需要一直存在的数据使用它,用static修饰,在运行main方法第一行代码时就已运行了static方法)  final  最终的     abstract抽象的  synchronized 同步的  native本地的

              返回值类型:

                                   有返回值:所有变量类型都可以为返回值类型                                                                                   无返回值:只有构造方法无返回值                                                                                                     返回值类型为空: void  需求是只需要执行方法内语句,而不用方法内语句结过与外界交互。

              方法名:

                                    第一个单词小写,其余首字母大写

               参数列表:

                                      方法中可变,不可控的数据 功能代码中不确定的因素以参数传入。 传入的为形参。//形参:在方法声明时用于接收外界传入的数据。

                方法体  :

                                     一段功能代码的组合

               [return]  : 

                              有返回值:return + 返回值类型的表达式                                                                                            无返回值:不写return·                                                                                                                        返回值类型为空: 不写return  

 b:调用方法:

                              对象名.方法名(实参列表)                            //    实参:调用方法时实际传给方法的数据。不用写数据类型。     形参写数据类型

以万年历为例使用方法例子:

                public static void main(String[] args) {
        System.out.println("请输入年份");
        Scanner input= new Scanner(System.in);
        int year=input.nextInt();
        System.out.println("请输入月份");
        int month=input.nextInt();
        int monthSum=0;
        for (int i =1;i<month;i++){
//            if (i==1||i==3||i==5||i==7||i==8||i==10||i==12){
//                monthSum+=31;
//            }else if (i==4||i==6||i==9||i==11){
//                monthSum+=30;
//            }else {
//
//                monthSum=getPingRun(year)?29:28;
//
//            }
            monthSum+=getDaysByMonth(i,year);//调用getDaysByMonth方法
        }
        int yearSum=0;
        for (int i =1900;i<year;i++){

//            if ((year%4==0&&year%100!=0)||year%400==0){
//                yearSum+=366;
//            }else {
//                yearSum+=365;
//            }
            yearSum+=getPingRun(i)?366:365;//调用getPingRun方法
        }
//        int days=0;
//        if (month==1||month==3||month==5||month==7||month==8||month==10||month==12){
//            days+=31;
//        }else if (month==4||month==6||month==9||month==11){
//            days+=30;
//        }else {
            if ((year%4==0&&year%100!=0)||year%400==0){
                days+=29;
            }else {
                days+=28;
            }
//            days+=getPingRun(year)?29:28;
//        }
        int days=getDaysByMonth(month,year);//调用getDaysByMonth方法
        System.out.println(year+"年"+month+"月"+"有"+days+"天");
        int week=(yearSum+monthSum+1)%7;
        if(week==0){
            week=7;
        }
        System.out.println("一\t二\t三\t四\t五\t六\t日");
        for (int i =1;i<=week-1;i++){
            System.out.print("\t");
        }
        for (int i =1;i<=days;i++){
            System.out.print(i+"\t");
            if((yearSum+monthSum+i)%7==0){
                System.out.println();
            }
        }

    }
/**
* 定义一个方法,判断平润年:
*/
  public static  boolean getPingRun(int year){
      boolean boo=false;
      if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
          boo=true;
      } else {
        boo=false;
      }
      return boo;

  }
    /**
    * 该方法用来获得输入月份的天数
    */
  public static  int getDaysByMonth(int month,int year){
      int days=0;
      if (month==1||month==3||month==5||month==7||month==8||month==10||month==12){
          days=31;
      }else if (month==4||month==6||month==9||month==11){
          days=30;
      }else {
        days= getPingRun(year) ? 29 : 28;
      }
      return days;
  }

三,方法重载:

 1.方法重载细节:

               定义:

                         Java程序中,同一个类下,方法名相同,参数列表不同(参数类型,位置(形参顺序),个数不同都为不同),与返回值和修饰符无关的两个或多个方法称为方法间的互为重载。注意本质:重载的方法,实际是完全不同的方法,只是名称相同而已!

               注:

                    1.重载只能发生在同一类下                                                                                                                2.重载与否看形参状态,与返回值和修饰符无关                                                                                3.只有大于2个方法才叫重载。 

              重载好处:  

                       1.相同功能方法数据类型不同时,不需要其多个方法名,                                                                 2.在调用时不用根据数据类型手动选择不同方法名。

2方法重载例子:

 public static  void login(int number){
        if(number==666){
            System.out.println("666登陆成功");
        }   else {
            System.out.println("666登陆失败");

        }

    }
    public  static  void login(double dou){
        if(dou==23.57){
            System.out.println("23.57登陆成功");
        }   else {
            System.out.println("23.57登陆失败");
        }
    }
    public static  void  login(String  name){
        //if(name=="张三")
        if (name.equals("张三")){
            System.out.println("张三登陆成功");
        }else{
            System.out.println("张三登陆失败");
        }
    }

            That is   all  for   today !   Thanks!                 

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值