通过this()调用有参构造方法

使用原因:在通过无参构造方法实例化对象时,如果有属性可以设置默认值,可通过在无参构造方法中使用this()调用有参构造方法。

this()需要写在无参构造方法的第一行!

例子:在没有给出小猫的名字和爪子个数是;默认名字是小喵,爪子个数4个。

public class Cat {
    String name;
    int paw;

public Cat(String name,int paw){

   this.name = name;
        this.paw = paw;
    }
    
    public Cat() {
        this("小喵",4);
    }
    
    public static void main(String[] args) {
        Cat cat = new Cat();               
        System.out.println(cat.name+cat.paw);
    }

原文地址:https://www.cnblogs.com/YeHuan/p/10579841.html

时间: 2024-10-24 12:04:17

通过this()调用有参构造方法的相关文章

父类不含无参构造方法子类构造方法必须显式调用

一直不知道怎么取这个标题... 前两天发现我父类中定义了一个带参构造方法,然后子类继承后构造方法必须先调用父类方法带参构造方法,方法调用为super(参数,...). 然后我就上网查,可能关键字没搞对..哈哈...一直没明白,后来发现,如果父类含有不带参构造方法,那么子类就不需要上述操作. 那么为什么呢? 先说下类实例化的过程,也就是new一个对象的时候 首先默认运行的是类中无参的构造方法(这个可能在实例化过程java会为每一个类自动创建的),这是java默认首先运行的: 当然如果你重写无参的了

Apache Commons Digester 二(规则模块绑定-RulesModule、异步解析-asyncParse、xml变量Substitutor、带参构造方法)

前言 上一篇对Digester做了基本介绍,也已经了解了Digester的基本使用方法,接下来将继续学习其相关特性,本篇主要涉及以下几个内容: 规则模块绑定,通过定义一个RulesModule接口实现类来完成规则的预先绑定,运行时重复使用 异步解析xml 解析xml中的变量,如${sys.user} 使用带参数的构造方法创建对象,参数来自xml节点数据 规则模块预先绑定 - RulesModule接口 在此之前,我们使用Digester的基本流程都是每次在程序运行时绑定规则,然后解析: 事实上,

记[email protected]和@Builder一起用无法添加无参构造方法的坑

转自:https://blog.csdn.net/w605283073/article/details/89221853 今天和小伙伴讨论一个mybatis-plus的一个诡异问题,最后定位到原因竟然是[email protected]和@Builder一起用无法添加无参构造方法引起的,非常隐蔽. 很多框架都是同反射等调用无参数构造方法来创建实例的,需要注意. 单独使用@Data注解,会生成无参数构造方法. // IntelliJ API Decompiler stub source gener

JAVA Socket无参构造方法的使用

1.Socket类的构造方法很多,只有无参构造方法不会尝试建立连接,其他构造方法,都会尝试建立连接的,如果建立连接失败,将会抛出异常.如果想为Socket设定连接超时时间,此时就需要使用无参构造方法,使用方法如下: 大家可能有些奇怪,设置的超时时间明明是1ms,为什么花了2ms后建立连接成功,而不是报超时异常.看看代码中的注释,就明白了,那个超时时间是三次握手时间.除此之外的时间都不算在内的.如果关闭服务端,再次运行改程序,则会报错:Exception in thread "main"

子类继承和调用父类的构造方法 (转)

子类继承和调用父类的构造方法1.如果子类没有定义构造方法,则调用父类的无参数的构造方法,.2.如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法.3.如果子类调用父类带参数的构造方法,可以通过super(参数)调用所需要的父类的构造方法,切该语句做为子类构造方法中的第一条语句.4.如果某个构造方法调用类中的其他的构造方法,则可以用this(参数),切该语句放在构造方法的第一条.说白了:原则就是,先调用父亲的.(没有就默认调

JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /*默认的:子类中所有的构造方法默认都会访问父类中无参构造方法*/ //父类 class Father { //无参构造函数 public Father() { System.out.println("父类无参构造函数"); } //有参构造函数 public Father(int num) { S

Android(java)学习笔记107:通过反射获得带参构造方法并且使用

1 package cn.itcast_02; 2 3 import java.lang.reflect.Constructor; 4 5 /* 6 * 需求:通过反射去获取该构造方法并使用: 7 * public Person(String name, int age, String address) 8 * 9 * Person p = new Person("林青霞",27,"北京"); 10 * System.out.println(p); 11 */ 12

Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入库,需要带main()主函数: 情况2:向程序传参数,并且程序没有使用第三方jar包 这种情形下打包和情况1是一样的 情况3:程序使用了第三方jar包 这种情况下的打包要复杂一些,需要把第三方jar包一起导出,可以使用eclipse的插件fat jar,很简便,但是fat jar只支持eclipse

子类继承和调用父类的构造方法

1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法,. 2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法. 3. 如果子类调用父类带参数的构造方法,可以通过super(参数)调用所需要的父类的构造方法,切该语句做为子类构造方法中的第一条语句. 4. 如果某个构造方法调用类中的其他的构造方法,则可以用this(参数),切该语句放在构造方法的第一条. 说白了:原则就是,先调用父亲的.(没有就默认调,有了就按有