javaSE-方法Method-011

2022/4/10 17:13:03

本文主要是介绍javaSE-方法Method-011,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、java方法概述:

  • 方法是一段普通的代码片段,并且这段代码可以完成某个特定的功能,而且可以被重复的调用/使用;
  • java中的方法又叫做method,只要是可以独立出来的功能,我们都可以定义为单独的一个方法来完成,如果以后需要使用此功能时直接调用这个方法就行了;
  • 不要把所有的代码都扔到main方法当中,这样会导致程序的“复用性”很差;

二、构造方法constructor:

  • 表达式:public 构造方法名 (形式参数列表) {  }
  • 调用构造方法:使用new运算符来调用构造方法。语法格式:new 构造方法名(实际参数列表);
  • 【构造方法/ 构造器】 1、“ 方法名”  与 “  类名”  完全一致(包含大小写 )2、没有任何返回类型  3、没有void(写上void就是普通方法,不是构造方法);
  • 缺省构造器:当一个类没有提供任何构造方法,系统会默认提供一个无参数构造方法,当显示定义构造方法后,系统则不再提供无参数构造方法,
  • 建议手动的将无参数构造方法写上,因为不写无参数构造方法,这个默认的构造方法很有可能就不存在,无参数构造方法使用的频率较高;

三、方法重载overload:

  • 方法重载定义以下条件需要同时满足:
  • 条件1:在同一个类当中;
  • 条件2:构造方法名相同
  • 条件3:参数列表不同:参数的个数不同算不同;参数的类型不同算不同;参数的顺序不同算不同
  • 方法重载:在同一个类中, 允许存在一个以上的同名方法, 只要它们的参数个数或者参数类型不同即可。
  • 方法重载特点:与返回值类型无关, 只看方法名和参数列表在调用时, 虚拟机通过参数列表的不同来区分同名方法
  • 构造方法是支持重载的;在一个类中构造方法可以有多个;并且所有的构造方法名字都是一样的
/**
*构造方法是支持重载机制的,具体调用哪个构造方法,那要看调用的时候传递的实际参数列表符合哪个构造方法了。
*构造方法虽然在返回值类型方面不写任何类型,但它执行结束之后实际上会返回该对象在堆内存当中的内存地址,
*这个时候可以定义变量接收对象的内存地址,这个变量就是“引用”;
*/

public class Date {
    int year; //年
    int month; //月
    int day; //日
    //构造方法(无参数构造方法)
    public Date(){
        System.out.println("Date类无参数构造方法执行");
    }
    //构造方法(有参数构造方法)
    public Date(int year1){
        System.out.println("带有参数year的构造方法");
    }
    //构造方法(有参数构造方法)
    public Date(int year1 , int month1){
        System.out.println("带有参数year,month的构造方法");
    }
    //构造方法(有参数构造方法)
    public Date(int year1 , int month1 , int day1){
        System.out.println("带有参数year,month,day的构造方法");
    }
}

public class DateTest {
    public static void main(String[] args) {
        System.out.println("main begin");
        Date time1 = new Date();
        System.out.println(time1);
        Date time2 = new Date(2008);
        System.out.println(time2);
        Date time3 = new Date(2008 , 8);
        System.out.println(time3);
        Date time4 = new Date(2008 , 8 , 8);
        System.out.println(time4);
        System.out.println("main over");
    }
}
//输出结果:
 main begin
 Date类无参数构造方法执行
 Date@234hd0ar
 带有参数year的构造方法
 Date@15df0hob
 带有参数year,month的构造方法
 Date@35hdbbg
 带有参数year,month,day的构造方法
 Date@6h0fs1ds
 main over

tiame1 就是:引用;

 

//我们需要在构造方法中手动的给属性赋值,这本来就是构造方法的主要的职责,要不然重载多次构造方法就没有意义了
public class Date {
    int year; //year属性
    int month; //month 属性
    int day; //day 属性
    public Date(){
    }
    public Date(int year1){
        year = year1; //year、year1 都是局部变量和上面的year属性变量没有关系 ,遵循就近原则
    }
    public Date(int year1 , int month1){
        year = year1;
        month = month1;
    }
    public Date(int year1 , int month1 , int day1){
        year = year1;
        month = month1;
        day = day1;
    }
}

public class DateTest {
    public static void main(String[] args) {
        System.out.println("main begin");
        Date time1 = new Date();
        System.out.println(time1.year + "年" + time1.month + "月" + time1.day + "日");
        Date time2 = new Date(2008);
        System.out.println(time2.year + "年" + time2.month + "月" + time2.day + "日");
        Date time3 = new Date(2008 , 8);
        System.out.println(time3.year + "年" + time3.month + "月" + time3.day + "日");
        Date time4 = new Date(2008 , 8 , 8);
        System.out.println(time4.year + "年" + time4.month + "月" + time4.day + "日");
        System.out.println("main over");
    }
}

//输出结果:
  //   main begin
  //   0年0月0日
  //   2008年0月0日
  //   2008年8月0日
  //   2008年8月8日
  //   main over
 

 

 



这篇关于javaSE-方法Method-011的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程