zoukankan      html  css  js  c++  java
  • JAVA构造函数简析

    构造函数是java新建对象的一种手段

    构造函数可以重载

    如果一个类中有多个域,那么就可能需要多个构造函数。这时候,使用重载就可以了

    构造函数中this和super的使用

    this:(1)this用于本类的构造方法中,首先可以表示调用方法的对象.此时一般是为了去除歧义,也就是构造方法的参数和类中的域名字一致。这个时候就会采取就近原则

    ,因此。就必须使用this来显示的指定。

    例如: class People{

      int age;

      String name;

      People(){};

      People(int age, String name){

        this.age = age;

        this.name = name

    }

    }

        (2)当一个类中有太多的构造方法时,为了复用代码,可以在一个构造方法中可以使用this()来表示调用该类的其他构造方法。

    例如:

    class People{
    String name;
    String address;
    int age;

    public People() {
    }

    People(String name){
    this.name = name;
    }
    People(String name, String address){
    this.name = name;
    this.address = address;
    }

    People(String name, String address, int age){
    this.name = name;
    this.address = address;
    this.age = age;
    }

    就可以改写成

    class People{
    String name;
    String address;
    int age;

    public People() {
    }

    People(String name){
    this(name , null, 0);
    }
    People(String name, String address){
    this(name, address, 0);
    }

    People(String name, String address, int age){
    this.name = name;
    this.address = address;
    this.age = age;
    }

    Super在构造方法的使用:子类在构建对象的时候,要先进行父类的创建。此时,如果父类有默认无参的构造方法,那么子类构造方法中可以不显示的调用super(),如果父类中没有默认无参的构造方法,那么子类的构造方法中就必须显示的调用父类的有参构造方法。而且必须放在子类构造方法的最前面

    例如:class People{

      int age;

      People(int age){

        this.age = age;

      }

    }

    class Student extends People{

       Student(int age){

        super(age);

        this.age = age  

    }

    }

    public class Test{

      public static void main(String a;rgs[]){

        Student s = new Student();

    }

    }

  • 相关阅读:
    可以使用多少列创建索引?
    如何显示前 50 行?
    简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响-从读写两方面?
    实践中如何优化 MySQL ?
    列的字符串类型可以是什么?
    MySQL 里记录货币用什么字段类型好 ?
    什么是通用 SQL 函数?
    对于关系型数据库而言,索引是相当重要的概念?
    为表中得字段选择合适得数据类型?
    SQL 注入漏洞产生的原因?如何防止?
  • 原文地址:https://www.cnblogs.com/exceptionblog/p/7852057.html
Copyright © 2011-2022 走看看