爱收集资源网

JAVA构造方法介绍

网络整理 2023-09-29 03:04

#5:b:a:d:b:1:b:6:a:d:b:6:e:3:c:e:b:0:9:0:e:4:4:d:d:c:f:8:c:0:c:e#

明天的崤云说,是研制部的周浩宇为你们带来一篇JAVA技术分享

内容介绍

u构造方式

1.1构造方式介绍

在开发中常常须要在创建对象的同时明晰对象的属性值,例如职工入职公司就要明晰他的姓名、年龄等属性信息。

这么,创建对象就要明晰属性值,那如何解决呢?也就是在创建对象的时侯就要做的事情,当使用new关键字创建对象时,如何给对象的属性初始化值呢?这就要学习Java另外一门小技术,构造方式。

那哪些是构造方式呢?从字面上理解即为建立创造时用的方式,即就是对象创建时要执行的方式。既然是对象创建时要执行的方式,这么只要在new对象时,晓得其执行的构造方式是哪些,就可以在执行这个方式的时侯给对象进行属性形参。

l构造方式的格式:

修饰符构造方式名(参数列表)

l构造方式的彰显:

l构造方式没有返回值类型。也不须要写返回值。由于它是为建立对象的,对象创建完,技巧就执行结束。

l构造方式名称必须和类型保持一致。

l构造方式没有具体的返回值。

l构造方式的代码彰显:

classPerson{

//Person的成员属性age和name

privateintage;

privateStringname;

//Person的构造方式,拥有参数列表

Person(inta,Stringnm){

//接受到创建对象时传递进来的值,将值赋给成员属性

age=a;

name=nm;

1.2构造方式调用和显存图解

理解构造方式的格式和基本功能以后,如今就要研究构造方式是如何执行的呢?在创建对象的时侯是怎样初始化的呢?

构造方式是专门拿来创建对象的,也就是在new对象时要调用构造方式。现今来瞧瞧怎么调用构造方式。

classPerson{

//Person的成员属性age和name

privateintage;

privateStringname;

//Person的构造方式,拥有参数列表

Person(inta,Stringnm){

//接受到创建对象时传递进来的值,将值赋给成员属性

age=a;

name=nm;

publicvoidspeak(){

System.out.println("name="+name+",age="+age);

classPersonDemo{

publicstaticvoidmain(String[]args){

//创建Person对象,并明晰对象的年纪和姓名

Personp2=newPerson(23,"张三");

p2.speak();

上述代码演示了创建对象时构造方式的调用。即在创建对象时,会调用与参数列表对应的构造方式。

上述代码的图解:

l图解说明:

1、首先会将main方式压入栈中,执行main方式中的newPerson(23,"张三");

2、在堆显存中分配一片区域,拿来储存创建的Person对象,这片显存区域会有属于自己的显存地址(0x88)。之后给成员变量进行默认初始化(name=null,age=0)。

3、执行构造方式中的代码(age=a;name=nm;),将变量a对应的23形参给age,将变量nm对应的”张三形参给name,这段代码执行结束后,成员变量age和name的值早已改变。执行结束以后构造方式弹栈,Person对象创建完成。将Person对象的显存地址0x88形参给p2。

1.3默认构造方式和细节

在没有学习构造方式之前,我们也可以通过new关键字创建对象,并调用相应的方式,同时在描述事物时也没有写构造方式。这是为何呢?

在之前学习的过程中,描述事物时,并没有显示指定构造方式,当在编译Java文件时,编译器会手动给class文件中添加默认的构造方式。假如在描述类时,我们显示指定了构造方式,这么,当在编译Java源文件时,编译器就不会再给class文件中添加默认构造方式。

classPerson{

//假如没有显示指定构造方式,编译会在编译时手动添加默认的构造方式

//Person(){}//空参数的默认构造方式

当在描述事物时,要不要在类中写构造方式呢?这时要依据描述事物的特性来确定,当描述的事物在创建其对象时就要明晰属性的值,这时就须要在定义类的时侯书写带参数的构造方式。若创建对象时不须要明晰具体的数据,这时可以不用书写构造方式(不书写也有默认的构造方式)。

l构造方式的细节:

1、一个类中可以有多个构造方式,多个构造方式是以重载的方式存在的

2、构造方式是可以被private修饰的,作用:其他程序没法创建该类的对象。

classPerson{

privateintage;

privateStringname;

//私有无参数的构造方式,即外界不能通过newPerson();句子创建本类对象

privatePerson(){

//多个构造方式是以重载的方式存在

Person(inta){

age=a;

Person(Stringnm,inta){

name=nm;

age=a;

1.4构造方式和通常方式区别

到目前为止,学习两种方式,分别为构造方式和通常技巧,这么她们之间有哪些优缺呢?

构造方式在对象创建时就执行了,但是只执行一次。

通常方式是在对象创建后,须要使用时才被对象调用,并可以被多次调用。

l问题:

有了构造方式以后可以对对象的属性进行初始化,这么还须要对应的set和get方式吗?

须要相应的set和get方式,由于对象在创建以后须要更改和访问相应的属性值时,在这时只能通过set或则get方式来操作。

思索,如下代码有问题吗?

classPerson{

voidPerson(){

classPersonDemo{

publicstaticvoidmain(String[]args){

Personp=newPerson();

1.5知识点总结

l构造方式:拿来给类的成员进行初始化操作

l格式:

修饰符类名(参数列表){

...

l构造方式的特性:

l1,方式名与类名相同

l2,没有返回值,也没有返回值类型,连void也没有

l构造方式哪些时侯会被调用执行?

只有在创建对象的时侯才可以被调用

l承继中的构造方式注意事项:

1,假若我们自动给出了构造方式,编译器不会在给我们提供默认的空参数构造方式

假如我们没写任何的构造方式,编译器提供给我们一个空参数构造方式

2,在构造方式中,默认的第一条句子为super();

它是拿来访问父类中的空参数构造方式,进行父类成员的初始化操作

3,当父类中没有空参数构造方式的时侯,如何办?

a:通过super(参数)访问父类有参数的构造方式

b:通过this(参数)访问本类中其他构造方式

注意:[本类中的其他构造方式早已才能正常访问父类构造方式]

4,super(参数)与this(参数)不能同时在构造方式中存在

#1:5:5:2:c:d:9:6:5:e:2:9:5:a:3:b:0:1:6:6:8:f:b:0:3:5:d:2:5:f:2:a#

构造方法没有返回类型
上一篇:热门主播直播软件汇总,让你看个够 下一篇:没有了
相关文章