zoukankan      html  css  js  c++  java
  • JavaSE基础之构造器(构造方法)和一般方法

    一.概念: 

    1.构造方法

     语法格式:

           修饰符 类名(参数类型 参数1,参数类型 参数2,...){.....}

      用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义。若未指定一个类的构造方法,则系统默认为该类创建一个无参的构造方法.

    2.一般方法

    语法格式:     

             修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2,...){  方法体; }

          是用于对当前对象数据进行算法计算,实现业务功能。方法是对象的功能,对象的动作,对象的行为。总之是动词!方法名没有规定,建议首单词为小写动词,其他单词首字母大写。必须定义返回值(无返回值,声明返回参数为void)!可有无参数方法。方法调用只有两种方式:①对象引用调用②类名调用(即静态类时)。

    二.构造方法与一般方法的区别

    1)构造器的名称必须与类名同名,包括大小写。

    2)构造器没有返回值,但也不能写void,也不能写return。

    3)构造器的参数:一般是初始化对象的前提条件。

    4)用new调用!且对象一建立,构造器就运行且仅运行一次。一般方法可被调用多次。

    5)类一定有构造器!这是真的,不需要质疑!

    6)如果类没有声明(定义)任何的构造器,Java编译器会自动插入默认构造器!

    7)默认构造是无参数,方法体是空的构造器,且默认构造器的访问权限随着所属类的访问权限变化而变化。如,若类被public修饰,则默认构造器也带public修饰符。

    8)默认构造器是看不到的,一旦自己写上构造器则默认构造器就没有了,自己写的叫自定义构造器,即便自己写的是空参数的构造器,也是自定义构造器,而不是默认构造器。

    9)如果类声明了构造器,Java编译器将不再提供默认构造器。若没手动写出无参构造器,但却调用了无参构造器,将会报错!

    10)构造器是可以重载的,重载的目的是为了使用方便,重载规则与方法重载规则相同。

    11)构造器是不能继承的!虽说是叫构造方法,但实际上它不是常说的一般方法。

    12)子类继承父类,那么子类型构造器默认调用父类型的无参数构造器。

    13)子类构造器一定要调用父类构造器,如果父类没有无参数构造器,则必须使用super(有参数的),来调用父类有参的构造器。 那么,为什么子类一定要访问父类的构造器?

    因为父类中的数据子类可以直接获取。所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的,所以子类在对象初始化时,要先访问一下父类中的构造器。

    总之,子类中至少会有一个构造器会访问父类中的构造器,且子类中每一个构造函数内的第一行都有一句隐式super()。

           14) 构造方法不能由编程人员调用,而要系统调用。

           构造方法作用:

                 1.为了初始化成员属性,而不是初始化对象,初始化对象是通过new关键字实现的

                 2.通过new调用构造方法初始化对象,编译时根据参数签名来检查构造函数,称为静态联编和编译多态
                   (参数签名:参数的类型,参数个数和参数顺序)

                 3.创建子类对象会调用父类构造方法但不会创建父类对象,只是调用父类构造方法初始化父类成员属性;

    15)构造方法与一般方法在运行上的不同:
    构造方法:
          构造方法在创建的时候就给对象初始化; 一个对象建立构造方法只能运行一次;
    一般方法:
           一般方法是对象调用才执行,给对象添加对象具备的功能; 一般方法可以被对象多次调用;
     有时一个类中可能存在多个构造函数,每个构造函数的参数类型都不同
     多个构造函数可看做方法的重载
     根据参数类型匹配相应的构造函数

  • 相关阅读:
    仅Firefox中链接A无法实现模拟点击以触发其默认行为
    读jQuery之十二(删除事件核心方法)
    读jQuery之十(事件模块概述)
    读jQuery之十五
    事件模块的演变(9)
    Chrome(12)中使用getComputedStyle获取透明度(opacity)返回字符串不同于其它浏览器
    各浏览器对click方法的支持差异
    IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug
    Node.js: Python not found exception due to nodesass and nodegyp
    高等数学 工专 柳重堪
  • 原文地址:https://www.cnblogs.com/luke-liuqi/p/9308935.html
Copyright © 2011-2022 走看看