第六课:构造方法、匿名对象
1、构造方法
在每个类中都存在一个构造方法,构造方法的主要目的是为类中的属性初始化的。
观察对象的实例化操作:
Person per = new Person();
实际上此“()”就表示调用的是一个方法,那么这个方法实际上就是构造方法。
构造方法定义时的要求:
构造方法的名称必须与类名称一致
构造方法定义时没有返回值类型的声明
不能在构造方法中使用return返回一个内容,但是可以能够通过return返回到方法调用处
class Person{ private String name ; private int age ; public Person(){} //无参的什么都不做的构造方法 public Person(String n){ //有参构造方法(构造方法重载) this.setName(n); } public Person(String n, int a){ this.setName(n); this.setAge(a); } public void tell(){ System.out.println("姓名:" + this.getName() +",年龄:" + this.getAge()) ; } public void setName(String n){ name = n ; } public void setAge(int a){ if(a>=0&&a<100){ age = a ; } } public String getName(){ return name ; } public int getAge(){ return age ; } } public class SimpleDemo{ public static void main(String args[]){ Person per = new Person("张三", 30) ; //为类中的属性初始化 per.tell() ; } }
如果在一个类中没有明确的声明一个构造方法的话,则会自动生成一个无参的什么都不做的构造方法。
注意:
构造方法一定是在使用关键字new的时候才进行调用,而且一个类中允许至少存在一个构造方法。
构造方法本身是可以进行重载操作的,重载的原则与普通方法一致。
如果一个类中已经明确声明了一个构造方法,则不会再重新生成无参的什么都不做的构造方法。
2、匿名对象
只使用一次的对象,成为匿名对象。
class Person{ private String name ; private int age ; public Person(){} //无参的什么都不做的构造方法 public Person(String n){ //有参构造方法(构造方法重载) this.setName(n); } public Person(String n, int a){ this.setName(n); this.setAge(a); } public void tell(){ System.out.println("姓名:" + this.getName() +",年龄:" + this.getAge()) ; } public void setName(String n){ name = n ; } public void setAge(int a){ if(a>=0&&a<100){ age = a ; } } public String getName(){ return name ; } public int getAge(){ return age ; } } public class SimpleDemo{ public static void main(String args[]){ new Person("张三", 30).tell() ; //匿名对象 } }
匿名对象没有被其他对象所引用,使用一次之后就成为垃圾,不再被使用。
【2012-01-02】