构造方法可以有返回值吗_【第5章:面向对象基础】_构造方法与匿名对象

 构造方法

new一个实例时候后面一个空的括号调用就是构造方法调用,系统会有默认的构造方法(无参),所以则可以显式声明一个有参的构造方法。构造方法的方法名和类名相同且没有返回值,则无需声明返回值类型。

class Person{

       private String name;

       private int age;

       public Person(String n,int a){

              this.setName(n);

              this.setAge(a);

       }

       public void setName(String n){

              name=n;

       }

       public void setAge(int a){

              age=a;

       }

       public void tell(){

              System.out.println("姓名:"+this.name+",年龄:"+age);

       }

}

public class Hello{

   public static void main(String args[]){

              Person per1 = null;

              per1 = new Person("kasumi",18);

              per1.tell();

   }

}

7e72184a15f6e42474ef89cc491bffbd.png

构造方法重载

如果显式声明了一个有参构造方法,此时再去调用无参构造方法(即默认实例化方式)就会报错,因为显式声明构造方法,则原本的构造方法就会被替换成现在的有参构造方法,如果想要两个构造都支持则构造方法也是可以支持方法重载的。

class Person{

       private String name;

       private int age;

       public Person(){

              System.out.println("默认无参构造方法被调用");

       }

       public Person(String n,int a){

              this.setName(n);

              this.setAge(a);

       }

       public void setName(String n){

              name=n;

       }

       public void setAge(int a){

              age=a;

       }

       public void tell(){

              System.out.println("姓名:"+this.name+",年龄:"+age);

       }

}

public class Hello{

   public static void main(String args[]){

              Person per1 = null;

              per1 = new Person("kasumi",18);

              per1.tell();

              Person per2=new Person();

              per2.tell();

   }

}

fbf32a544abab3691e608a6ee43c1bce.png

匿名对象

没有栈内存引用的对象叫做匿名对象

class Person{

       private String name;

       private int age;

       public Person(String n,int a){

              this.setName(n);

              this.setAge(a);

       }

       public void setName(String n){

              name=n;

       }

       public void setAge(int a){

              age=a;

       }

       public void tell(){

              System.out.println("姓名:"+this.name+",年龄:"+age);

       }

}

public class Hello{

   public static void main(String args[]){

              new Person("kasumi",18).tell();

   }

}

a5d693d34a316b705f15d3aeab2bdd50.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值