• 第六课:构造方法、匿名对象 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】

      

  • 相关阅读:
    LeetCode:1_Two_Sum | 两个元素相加等于目标元素 | Medium
    算法导论第十章 栈队列和链表
    算法导论2-9章补充几道题
    算法导论第九章中位数和顺序统计量(选择问题)
    算法导论第八章线性时间排序
    算法导论第七章快速排序
    算法导论第六章优先队列(二)
    算法导论第六章堆排序(一)
    mysql中查看视图的元数据?
    mysql中,什么是视图,视图的作用是什么?
  • 原文地址:https://www.cnblogs.com/chuanstone/p/2310285.html
Copyright © 2020-2023  润新知