第六课:构造方法、匿名对象 M

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】

  

原文地址:https://www.cnblogs.com/chuanstone/p/2310285.html