【构造函数】解析构造函数的作用
百度一下:构造函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
那么,为什么要在创建对象时初始化对象呢?又是如何实现的呢?接下来我将用小baby的例子说明:
实例化一个小baby!
黑户型:我们先定义好一个类,需要时再给它赋值;(小孩出生后再起名字)
class Baby{int id; //身份证String name; //名字public void cry(){System.out.println(name+"哭的鼻涕都流出来啦!!!");}}class Demo6
{public static void main(String[] args) { //创建一个baby对象Baby b = new Baby(); //婴儿诞生//赋予属性值b.id=1;b.name="石头";b.cry();}
}
白户型:婴儿出生时就有名字;
那么,这样产生的结果是:
诞生的两个孩子,都叫石头。。。双胞胎也不能叫一个名字啊!
...
于是,构造函数出现了
因为构造函数在每次实例化时会自动被调用,实例化几次会被调用几次。如果我们将每次变化的对象的属性值传入到构造函数中或许就可以了,试试代码。
代码实现:
class Baby
{int id; //身份证String name; //名字//构造与类名Baby相同的Baby方法函数
public Baby(int i,String n)
{id=i;name=n;System.out.println();
}public void cry()
{System.out.println(name+"哭的鼻涕都流出来了。。。。。");}
}class Demo6
{public static void main(String[] args) { //创建一个baby对象Baby b1 =new Baby(1,"石头"); //石头诞生System.out.println("编号:"+b1.id+"姓名:"+b1.name); b1.cry();Baby b2 =new Baby(2,"小石头"); //小石头诞生System.out.println("编号:"+b2.id+"姓名:"+b2.name); b2.cry();}
}
效果图:诞生了两个小baby,小baby出生时就有了自己的名字,名字也不一样!
以上是我对构造函数初始化对应的对象的理解,希望能对大家带来帮助!
创建对象时,jvm就会调用到对应的构造方法,构造方法到底从何而来呢?请参见下一篇构造函数系列博客~
【构造函数】解析构造函数的作用相关推荐
- php class 构造_PHP 类与构造函数解析
----类的创建---- php使用关键字class创建一个类,并且使用一对大括号 如: class name{ public $n=""; private $u="&q ...
- 构造函数的特点和作用
构造函数的作用 构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建 对象时, 对象会自动调用它的构造函数.一般来说, 构造函数有以下三个方面 的作用: ■ 给创建的对象建立一个标识 ...
- java biginteger 构造函数_BigInteger构造函数解析
1.BigInteger(byte[] val) 这个构造函数用于转换一个字节数组包含BigInteger的二进制补码,以二进制表示成一个BigInteger. (用字节数组中值的ASCII码构造Bi ...
- python请简述构造函数和析构函数的作用_python构造函数和析构函数
一.构造函数 1.定义 构造函数__ init __称为class的构造函数与构造方法,一般作为实例化设置初始值而存在的.即一般是为了初始化对象时将必须要用到的属性.方法做一些定义,而存在. 2.作用 ...
- android arrayadapter 构造函数,Android无法解析构造函数ArrayAdapter
我知道这个问题之前已经被多次询问过,但没有一个解决方案适用于我.这是我的代码:Android无法解析构造函数ArrayAdapter public class reminderDAO extends ...
- 【C++构造函数后面的冒号作用】
C++构造函数后面的冒号作用 功能 1.对基类进行初始化 2.对类成员进行初始化 3.对类中const变量进行初始化 功能 1.对基类进行初始化 多重继承中,对多个基类进行初始化 冒号后面有多个参数, ...
- 无法解析构造函数‘Employee(int,java.lang.String,java.lang.String,int,com.kuang.pojo.Department)‘
前言:在写这篇博客的时候,本来博客名字打算叫:"在给Java伪造数据库里面的伪数据的相关字段插入数据时,插入失败,是什么原因导致的?",后来思前想后,还是决定直接拷贝使用编译器上面 ...
- python中的构造函数和构造函数和析构函数的作用
构造函数和构造函数和析构函数都属于python中的特殊方法 其中的"__del__"就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调 ...
- js 中的构造函数,构造函数作用,构造函数和普通函数的区别
函数的定义方式: 1.声明式函数定义: function 函数名 (){}:这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在 ...
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | BaseDexClassLoader 构造函数 | DexPathList 构造函数及后续调用 )
文章目录 一.BaseDexClassLoader 构造函数 二.DexPathList 构造函数 三.DexPathList.makeInMemoryDexElements 函数 一.BaseDex ...
最新文章
- php编程题试题和答案,比较基础的php面试题及答案-编程题部分
- codeforces 667B B. Coat of Anticubism(水题)
- 广告点击率预测 [离线部分]
- AI Boot Camp 分享之 ML.NET 机器学习指南
- android 视频美颜,Android短视频中如何实现720P磨皮美颜录制?
- 信息学奥赛一本通(1258:【例9.2】数字金字塔)
- JDK时区与电脑系统时区不一致,导致时间new date不对
- suse11 mysql 5.7_SUSE Linux系统中单实例二进制方式安装MySQL 5.7.22
- Note for Multi Agent Teamwork—A Survey
- 推荐几本励志及修心方面的书籍
- C++学习笔记——C++中四个点代表什么意思?
- 【GLPNet2021】GLOBAL-LOCAL PROPAGATION NETWORK FOR RGB-D SEMANTIC SEGMENTATION
- FPGA时钟倍频,分频
- dat2img格式转换-ROM定制开发教程
- bootstrap table获取表格数据方式
- iPad /iPhone无法开机、白苹果怎么办?教你快速解决iPad /iPhone开不了机的难题
- Centos7加入AD域并通过域账号登录
- 曼谷梦幻世界主题公园有什么好玩的
- JavaScript名字的由来
- 壳网七彩视界开源对接易支付原生播放器可投屏可选集
热门文章
- 新制作了一个网站专门下载魔兽地图
- springboot 业务消息总线及延时消息回调
- 单片机实验汇编---A/D转换实验
- 文件描述符与文件句柄
- Springboot 整合 shiro
- vue之tab栏切换
- 2020前端WebAPP实战之:探花交友
- 千元内有什么TWS耳机推荐的?千元内最好的TWS耳机排行榜
- 魔兽世界8.0哪个服务器稳定,魔兽世界8.0:四大良心更新,只为了召回流失的玩家...
- 价格逗号怎么打_菜鸡中的菜鸡想三个月过雅思6.5(或者6)该怎么准备?