第六课:构造方法、匿名对象
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】
浙公网安备 33010602011771号