zoukankan      html  css  js  c++  java
  • 4.JAVA基础复习——JAVA中的构造函数与this关键字

    构造函数:构建创造对象时调用的函数
    特点:
      1.函数名与类名相同。
      2.不用定义返回值类型。
      3.没有具体的返回值。

    public class Demo {
        private int age;
        private String name;    
        //省略get、set方法
        public Demo(){//无惨构造不写时系统将默认添加一个无惨构造
        }
    }

    作用:
      给对象初始化,创建对象时会先调用构造方法对对象进行初始化。
    注意:
      1.默认构造函数的特点。不写构造函数时系统会自动给加一个默认的构造函数,如果自己 定义了一个构造函数,系统不会再给添加一个默认的构造函数。
      2.多个构造函数是以重载的形式存在的。
      3.创建对象都必须要通过构造函数初始化。

     1 public class Demo {
     2     private int age;
     3     private String name;    
     4     //省略get、set方法
     5     public Demo(){//无参构造不写时系统将默认添加一个无惨构造
     6     }
     7     public Demo(int age) {//有参构造多个构造函数以重载的形式存在
     8         this.age = age;
     9     }
    10     public Demo(String name){
    11         this.name = name;
    12     }
    13     public Demo(String name,int age){
    14         this(age);
    15         this.name=name;
    16     }
    17     
    18     public static void main(String[] args) {
    19         Demo d = new Demo(10);//创建对象时会先去找与之参数对应的构造函数进行初始化
    20     }

    一般函数和构造函数的区别:
      构造函数:
        对象创建时,就会调用与之对应的构造函数,对对象进行初始化。
        对象创建时,会调用且只调用一次
      一般函数:
        对象创建后,需要函数功能是才调用。
        对象创建后,可以调用多次。
    什么时候定义构造函数:
      在描述事物时,该事物一存在就具备一些内容,这些内容都定义在构造函数中。

    this关键字:
    作用:
      1.当成员变量和局部变量重名时,可以用this关键字来区分

    1 public class Demo {
    2     private int age;//成员变量
    3     private String name;    
    4     public Demo(int age) {//参数为局部变量
    5         this.age = age;//this.age表示当前对象的age用来跟局部变量age区分
    6     }
    7 }

      2.当构造函数需要调用已有的构造函数时可以有this关键字,需要注意的是需要将调用的 构造函数放在第一行。

     1 public class Demo {
     2     private int age;
     3     private String name;    
     4     public Demo(int age) {
     5         this.age = age;
     6     }
     7     public Demo(String name,int age){
     8         this(age);//调用已有的构造函数,注意调用的构造函数要放在第一行
     9         this.name=name;
    10     }
    11 }    

    this:
      代表当前对象。
      是所在函数所属对象的引用。
      简单来说:哪个对象调用了this所在的函数,this就代表哪个对象。

  • 相关阅读:
    L1-046. 整除光棍
    L2-014. 列车调度
    L2-009. 抢红包
    L2-005. 集合相似度
    L2-021. 点赞狂魔
    L1-033. 出生年
    设计模式之生成器模式
    设计模式之抽象工厂模式
    设计模式之工厂方法模式
    设计模式之简单工厂模式
  • 原文地址:https://www.cnblogs.com/hcl22/p/6368704.html
Copyright © 2011-2022 走看看