最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java构造方法和方法重载代码解析
时间:2022-06-29 01:57:15 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Java构造方法和方法重载代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
类的结构包括 :
1. 成员变量
2. 成员方法
3. 构造方法
4. 代码块
5. 内部类
第一 构造方法的作用
主要有以下三方面的作用:
(1)在构造方法中为创建的对象初始化赋值
(2)在创建一个对象的时候,至少需要调用一个构造方法
(3)每一个类都有构造方法
一个例子加深对以上三条的理解
public class Car{ String name; String color; float price; }
上一篇文章已经讲解过 name , color , price 三个都是类的成员变量,我们再创建一个类TextCar用来测试. 举个例子,现在先记住:
Car bm = new Car();
这句代码中Car()就是构造方法.所以也说明了(2)在创建一个对象的时候,至少需要调用一个构造方法.
public class TextCar{ public static void main(String [] args){ Car bm = new Car(); //给Car类创建(new)了一个对象 System.out.println(bm.name); } }
在main方法中未对name赋值,但运行结果如下:
不难发现,程序可以正常run并且name的值为null . 其实构造方法为成员变量赋了初值,即(1)的为创建的对象初始化赋值.构造方法赋初值如 : int类型 初值:0 , double类型 初值:0.0 ,String类型 初值 null 等等(常用的了解一下).
在public class Car{ } 这个类中看到的只有成员变量,没有成员方法,更没有看到构造方法. 其实,是因为我们没有显示的写书构造方法,类里面有一个隐式的默认的构造方法:
public class Car{ String name; String color; float price; public Car(){ //默认的构造方法,也可以显示的写出来 this.name = null; this.color = null; this.price = 0.0; } }
public Car(){ }有这样一个隐式的无参的构造方法,只不过在上面的代码中,我们显示的写出来了,这也解释了 (3)每一个类都有构造方法.
到这里构造方法的知识点就梳理完了,欢迎大家评论区补充~
第二 构造方法的特点
构造方法的特点如下:
(1)名称和类名相同(这一点需要牢记)
(2)没有返回值
(3)不需要用void来修饰
public class Car{ //里面有一个默认的无参构造方法Car(){ } }
Car类里面的默认无参构造方法的名称也叫Car().
我们也可以定义有参的构造方法,如果定义一个有参的构造方法会把默认的构造方法覆盖掉.例如:
public class Car{ String name; String color; float price; public Car(String name,String color,float price){ this.name = name; this.color = color; this.price = price; } }
此时默认的无参构造方法被覆盖掉.
如果刚开始接触java,对 this. 不理解,看一下这一段的简单解释:this表示的是对应的对象,一定可以在main方法中找到对应的对象如上一段的代码,一定可以找到这样的对象 : Car bm = new Car("宝马","黑色",5000000);(参量只要类型确定,想写什么读者随意),this就指的是这个对象, this . 后面的name表示的是Car类的成员变量name , 等号右边的name表示该构造方法的参数name.其余变量同理.最后,如果你觉得不好理解,可以把参数换个名字,如a,左边的this . 就可以去掉.但this的使用一定要会.
来一个完整的简单的代码,读者自己敲一下,然后给自己讲一下,就完全理解啦~
public class Car{ String name; String color; float price; public Car(String name,String color,float price){ this.name = name; this.color = color; this.price = price; } public run(){ //成员方法 System.out.println("汽车行驶"); } } public class TextCar{ public static void main(String [] args){ Car bm = new Car("宝马","红色",500000); //给Car类创建(new)了一个对象 System.out.println(bm.name+" "+bm.color+" "+500000); bm.run(); } }
方法重载
1.重载有什么特点
(1)在一个类中有多个方法名称相同的现象
(2)构造方法和成员方法都可以重载
(3)通过参数的个数,类型,类型的顺序进行区分是否为同一方法
方法重载涉及到一个覆盖的问题,如果重新定义传参的构造方法,需要把默认的无参构造方法显示的写出来,因为默认的已经被重载的覆盖掉,调用Car()时会报错!例如:
public Car(String name,String color,float price){ this.name = name; this.color = color; this.price = price; public Car(String name,String color,float price){ this.name = name; this.color = color; this.price = price; } public run(String name,String color){ //成员方法 System.out.println(this.color+this.name+"汽车行驶"); } public run(String color,String name){ System.out.println(this.color+this.name+"汽车行驶"); } public int run(String name){ System.out.println(this.name+"汽车行驶"); return 0; } } public class TextCar{ public static void main(String [] args){ Car dz = new Car();//创建了一个对象 System.out.println(dz.name); Car bm = new Car("宝马","红色",500000); //创建了一个对象 System.out.println(bm.name+" "+bm.color+" "+500000); bm.run("红色","宝马"); bm.run("宝马"); } }
因为Car()这个无参构造方法已经被有参的Car(String name,String color,float price)覆盖,new Car()时找不到无参构造方法.需要我们显示得把Car()定义出来才可以.
方法的重载,在Car类中有Car同名的构造方法,run()同名的构造方法,在类中使用重名的方法就是方法的重载,如果两个方法的名字和参数类型,数量,顺序都相同是不可以的,同名的方法需要考方法的参数类型,数量和顺序区分开来
相关文章
- 《原神》5.2卡池抽取建议 11-14
- 《原神》5.2版本新怪物介绍 11-14
- 《原神》希诺宁增伤触发方法 11-14
- 《原神》循音觅奇活动入口 11-14
- 《原神》循音觅奇兑换码获取方法 11-14
- 《原神》花羽会活动飞行技巧介绍 11-14