ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaSE-方法Method-011

2022-04-10 15:33:08  阅读:183  来源: 互联网

标签:构造方法 int System 011 year Date println javaSE Method


一、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
 

 

 

标签:构造方法,int,System,011,year,Date,println,javaSE,Method
来源: https://www.cnblogs.com/lwt280887072/p/16126044.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有