您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第5章:面向对象基础】_构造方法与匿名对象
发布时间:2020-11-25 15:33:24编辑:雪饮阅读()
构造方法
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();
}
}
构造方法重载
如果显式声明了一个有参构造方法,此时再去调用无参构造方法(即默认实例化方式)就会报错,因为显式声明构造方法,则原本的构造方法就会被替换成现在的有参构造方法,如果想要两个构造都支持则构造方法也是可以支持方法重载的。
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();
}
}
匿名对象
没有栈内存引用的对象叫做匿名对象
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();
}
}
关键字词:面向对象,构造方法,匿名对象