1,怎样构造函数?
- 无返回值的类型
- 函数名必须与类名相同
- 举例:
calss A{ A(){System.out.println(“我是无参的构造函数”);}}
- 如果不写,编译器自动定义为无参的构造函数。里面什么都没有。(但是如果用户自定义了构造函数,不管是否有参数,编译器都不会再为你自定义)
2.函数的重载
- 名字相同,参数不同
- 举例:(构造函数的重载)
Person(){ System.out.println("无参的构造函数"); } Person(String name,int age){ this.name = name; this.age = age; System.out.println("俩个参数的构造函数"); }
3。this的使用1(在变量中使用)
package durong.test;public class Person { String name; void talk(){ System.out.println("无参数只有一个name->"+name); } void talk(String name){ System.out.println("有重复参数用this->"+this.name);//这里的name代表对象的name } void talk1(String name){ System.out.println("有重复参数不用this->"+name);//没有this,这里的name代表参数 }}
package durong.test;public class testThis { public static void main(String[] args) { // TODO Auto-generated method stub Person p = new Person();
p.name = "durong";
p.talk();
p.talk("duirong");//输出durong p.talk1("duirong");//输出这里的参数duirong }}
4.this的使用2 (在构造函数中)
package durong.test;public class testThis { public static void main(String[] args) { // TODO Auto-generated method stub Person p = new Person("durong",23,"Yanan"); System.out.println(p.name+p.address+p.age ); }}
package durong.test;public class Person { String name; int age; String address; Person(){ System.out.println("无参的构造函数"); } Person(String name,int age){ this();//这里的this()表示重载第一个无参构造函数 this.name = name; this.age = age; System.out.println("俩个参数的构造函数"); } Person(String name,int age,String address){ this(name,age);//这里this(name,age)表示重载第二个构造函数 this.address = address; System.out.println("三个参数的构造函数"); }}