zoukankan      html  css  js  c++  java
  • 第六课:构造方法、匿名对象 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】

      

  • 相关阅读:
    oracle语法
    cin.clear()、cin.sync()
    Intellij Idea Spring Boot 热部署
    navicat_premium_x64最新版安装说明
    激活navicat premium12
    时间戳Unix和时间之间的转换
    排序算法-- 大总结
    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    final
    static
  • 原文地址:https://www.cnblogs.com/chuanstone/p/2310285.html
Copyright © 2011-2022 走看看