java this构造函数_Java学习笔记之构造函数&this

class Person { private String name; private int age; //定义一个Person类的构造函数 Person()  //构造函数, 而且是空参数的, 构造函数的名和类名相同 { System.out.println("person run"); } public void speak() { System.out.println(name+":"+age); } } class ConsDemo { public static void main(String[] args) { Person p = new Person(); } } /* 构造函数: 构建创造对象时调用的函数. 作用: 可以给对象进行初始化 创建对象都必须要通过构造函数初始化 一个类中如果没有定义过构造函数, 那么该类中会有一个默认的空参数构造函数. 如果在类中定义了指定的构造函数,那么类中默认构造函数就没有了. 构造函数可以直接调用一般函数, 但是一般函数不能直接调用构造函数, 如果想调用, 就要new一下 */ /*******************************************************************************/ class Person { private String name; private int age; Person(String name) { this.name = name;  //当局部变量和成员变量重名时, 成员变量要加上this. } public void speak() { System.out.println(name); } } class Demo { Person p = new Person("哈哈"); p.speak(); //哈哈 } /* 当成员变量和局部变量重名时,可以用关键字this来区分. this: 代表对象. 代表哪个对象呢? 当前对象         this就是所在函数所属对象的引用.         简单说: 哪个对象调用了this所在的函数, this就代表哪个对象. */ /*************************************************************************/ //this的第二个用法.  //构造函数中调用构造函数 //注意: 只能定义在构造函数的第一行, 因为初始化动作要先执行. class Person {     private String name;     private int age;     Person(String name)     {         this.name = name;     }     Person(String name,int age)     {         this(name); //调用上面那个构造函数,给name赋值         this.age = age;     }     public void speak()     {         System.out.println(name+":"+age);     } } class ThisDemo {     public static void main(String[] args)     {         Person p = new Person("旺财",30);         p.speak();         Person p1 = new Person("小强");         p1.speak();     } } /***************************************************************************/ //this关键字的应用 class Person {     private String name;     private int age;     Person(String name)     {         this.name = name;     }     Person(String name,int age)     {         this(name); //调用上面那个构造函数,给name赋值         this.age = age;     }     public void speak()     {         System.out.println(name+":"+age);     }     //判断是否是同龄人     public boolean compare(Person p)     {         /*         if(this.age==p.age)             return true;         else             return false;         */         return this.age==p.age;     } } class ThisDemo {     public static void main(String[] args)     {         Person p1 = new Person("aa",30);         Person p2 = new Person("zz",12);         p1.compare(p2);     } }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值