构造方法和方法重载

方法的重载:

1.       方法重载的目的:为了让方法名相同而形参不同的构造方法同时存在,必须用到“方法重载”。

2.       方法重载的判断条件:参数个数不同或参数类型不同。返回值不是判断条件。

构造方法:

1.       方法名称与类名相同。

2.       无返回值,不用void修饰。

重载与重写的区别:

 

重载方法

重写方法

参数列表

必须修改

一定不能改

返回类型

可以任意修改

对于基本数据类型必须相同,对于对象引用类型必须能够兼容。

访问限制

可以修改

一定不能做更严格的限制,但可以降低访问限制

调用

参数类型决定选择哪个重载版本

对象类型决定调用什么样的方法。

本质区别:重载不是面向对象的,只是高级语言为了使用方便而提供的特性,而重写是完全属于面向对象的。

实例分析:

//方法的重载:参数类型,个数不同.返回值不能作为判断条件

public class Test1{

       public static void main(String args[])

       {

              Test 1 a =new Test1();

              a.kk();

              a.kk(5);

       }

       void kk()

       {

              System.out.println("void kk1");

       }

       void kk(int i)

       {

              System.out.println("void kk2");

       }

       int kk(int x,double y)

       {

              System.out.println("void kk3");

              return 5;

       }

       int kk(int x,int y)

       {

              System.out.println("void kk4");

              return 3;

       }

       int kk(double x,int y)

       {

              System.out.println("void kk5");

              return 3;

       }

//构造方法的使用,构造器,一旦自己写了构造器,系统就不再用默认构造器。

public class Test1{

       int sage;

       String sname;

       int sclass;

       public Test1()//创建对象时调用,不准写返回值类型(void 也不行),名称必须跟类名相同

       {

              System.out.println("Test1");

       }

       public Test1(int sage)

       {

              this.sage=sage;//this代表类中的全局变量sage

              System.out.println("name:"+sname+" class:"+sclass+" sage:"+sage);

       }

       public Test1(int sage,String sname)

       {

              this(sage);//this 代表上一个单参数构造器

              this.sname=sname;

              System.out.println("name:"+sname+" class:"+sclass+" sage:"+sage);

       }

       public Test1(String sname,int sage,int sclass)

       {

              this(sage,sname);//this代表上一个双参数的构造器

              this.sclass=sclass;

              System.out.println("name:"+sname+" class:"+sclass+" sage:"+sage);

             

       }

       public static void main(String args[])

       {

       //     Test1 st=new Test1();

       //     Test1 st2=new Test1();

       //     new Test1(22);

              Test1 st3=new Test1(20);

              Test1 st4=new Test1(22,"yangzhanghui");

              Test1 st5=new Test1("Yangzhanghui",22,1);

       }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值