什么叫构造方法?_构造方法和普通方法之间的区别

什么叫构造方法?_构造方法和普通方法之间的区别构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

定义:在Java中,任何 变量在被使用前都必须先设置初值.Java提供了为类的 成员变量赋初值的专门方法。

特殊性:构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:

1.构造方法作用:(1).构造出来一个类的实例 (2).对构造出来个一个类的实例(对象)初始化。

2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。

4.类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。

5.不能被static、final、synchronized、abstract和native修饰。

6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。

7.构造方法分为两种:无参构造方法 有参构造方法

构造方法可以被重载。没有参数的构造方法称为 默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。

8.构造代码块:   (1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行   (2)构造代码块和构造函数的区别:   构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化

9.子类继承父类中,   ***子类的实例化过程   ***构造方法不能被子类继承   ***子类创建对象时,会先去创建父类的对象。   默认是去调用父类的无参构造方法。   ***子类构造方法中,第一行默认是super()   ***为什么子类中第一行会默认有super()   因为他继承父类的成员使用,使用前这些成员必须初始化,   而他们是父类的成员,所以,必须通过父类进行初始化。   所以,会先创建一个父类的对象。   **当父类没有无参构造方法时

必须使用this或者super调用其他的构造方法。

10.自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。如果写了一个有参的构造方法,就一定要写无参构造方法。   如果想使用无参的构造方法,就必须手动给出无参构造方法。   建议:一般情况下,我们自定义的类都要手动给出无参构造方法。

具体使用:分别计算长、宽为20、10和6、3的两个长方形的面积。

class RectConstructor{

double length;

double width;

double area(){

return length*width;

}

RectConstructor(double width,double length){//带参数的构造方法

this.length=length;

this.width=width;

}

}

public class RectDemo{

public static void main(String args[]) {

RectConstructor rect1=new RectConstructor(10,20);

RectConstructor rect2=new RectConstructor(3,6);

double ar;

ar=rect1.area();

System.out.println("第一个长方形的面积是"+ar);

ar=rect2.area();

System.out.println("第二个长方形的面积是"+ar);

}

}

控制台输出结果为:

第一个长方形的面积是200

第二个长方形的面积是18

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167646.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]

    2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]这里写目录标题对MVVM的理解?Vue数据双向绑定原理Vue的响应式原理vue中组件的data为什么是一个函数vue中created与mounted区别Vue中computed与method的区别Vue中watch用法详解Vue中常用的一些指令说说vue的生命周期对MVVM的理解?MVVM由Model、View、ViewModel三部分构成,Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,它负责将数据模型转化成UI展现出来;ViewMode

    2022年5月31日
    110
  • IDEA2021.3.3永久激活码教程-2299年Windows版持续更新

    [SoftName]激活码最新破解教程,Mac版激活至2299年,[SoftName]激活码2021.3.3

    2022年4月11日
    12.1K
  • 了解DeepFakes背后的技术

    了解DeepFakes背后的技术1.神经网络和自动编码器简介神经网络概论在计算机科学中,人工神经网络由成千上万个以特定方式连接的节点组成。节点通常分层排列;它们的连接方式决定了网络的类型,最终决定了网络在另一网络上执行特定计算任务的能力。传统的神经网络可能看起来像这样:输入层中的每个节点(或人工神经元)都包含一个数值,该数值对我们要馈送到网络的输入进行编码。如果我们要预测明天的天气,则输入节点可能包含以范围内的数字编码的压力,温度,湿度和风速\left[-1,+1\right]。这些值被广播到下一层。有趣的是,每个边缘

    2022年5月25日
    43
  • Html 表格

    Html 表格

    2022年1月2日
    39
  • RewriteCond 详解

    RewriteCond 详解RewriteCond重写规则执行条件语法:RewriteCondTestStringCondPattern生效域:serverconfig,virtualhost,directory,.htaccess特别的上面的TestString,可提供反向引用.引用模式为:%N其中N为(0<=N<=9),引用当前若干Rew…

    2022年6月14日
    30
  • Python脚本到Windows可执行程序——Cxfreeze的安装与使用

    Python脚本到Windows可执行程序——Cxfreeze的安装与使用Python脚本到Windows可执行程序——Cxfreeze的安装与使用下载安装打包程序通过命令行简单使用使用setup.py详细配置Python脚本到Windows可执行程序——Cxfreeze的安装与使用写好的Python程序,分发到Windows用户的时候,如果再在每一台电脑上配置执行Python程序的解释器和相应的依赖库,就会比较繁琐。所以可以将Python程序打包程可执行的.exe文件。可以用的库有:cx_freeze,py2exe,P.

    2022年10月20日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号