问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么java 构造方法

发布网友 发布时间:2022-05-13 00:30

我来回答

1个回答

热心网友 时间:2023-11-02 22:52

首先说明下什么是方法,方法就是为某种目的而做的一些事情,对于编程语言来说,就是为了达到某种目的而执行的一系列代码。而构造方法的目的就是通过执行一系列代码来产生一个类的实例对象。你可以把构造方法看作一个返回值为类对象的方法,因为它返回的一定是类对象,所以也就不用像普通方法那样去特别说明返回值的类型。


构造方法可以用private,default(就是什么也不写),protected,public修饰,但是不能用static和final修饰,同时构造方法可以有参数也可以没有参数,

如上面所说构造方法一定返回的是类对象,所以构造方法内部不可以返回任何对象

即不可以写return obj;

但是你可以写return;这么写说明方法执行完了

且方法名前面不能写返回类型。


构造方法在执行的时候会由jvm去执行分配内等操作,具体的就需要你去查看jvm规范了,


但是你可以先看下下面的例子了解下构造方法在java语言层面的执行过程,

构造函数执行时会默认首先执行父类的无参构造方法,当然你也可以显示的调用父类的无参构造方法super(),但是无论你调用父类的有参或无参构造方法都必须在子类构造方法的第一行中调用,这个是规定,下面的例子中为了方便观察,在子类中调用的是父类的有参构造方法。


父类,子类静态初始化块,初始化块,构造器执行顺序:

父类静态初始化块

子类静态初始化块

父类初始化块

父类构造器

子类初始化块

子类构造器

public class Father {
protected String name = "father";
{
System.out.println("Father Block");
}
public Father(int i) {
this.name = "realFather";
System.out.println("Father Constructor");
}
{
System.out.println("Father Block");
}
public static void main(String[] args) {
Father f = new Father(1);
}
static {
System.out.println("Father static Block");
}
}
public class Son extends Father {
String name = "son";
public Son() {
super(1);
System.out.println("Son Consrtructor");
System.out.println("name:"+name);
name="two son";
System.out.println("Son Constructor change name:"+name);
}
public static void main(String[] args) {
Son s = new Son();
}
{
System.out.println("Son Block");
System.out.println("Original name:"+name);
name="a son";
System.out.println("Son Block change name:"+name);
}
static {
System.out.println("Son  static Block");
}
}

子类主方法执行结果为:

Father static Block

Son  static Block

Father Block

Father Block

Father Constructor

Son Block

Original name:son

Son Block change name:a son

Son Consrtructor

name:a son

Son Constructor change name:two son

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么药止痒效果好 慕容三藏履历 职业cf电脑配置cf电脑配置要求是什么 玩3a电脑配置要求想玩3a大作需要什么配置 台式电脑哪些可以畅享3a大作想玩3a大作需要什么配置 七彩虹i7-10700台式机 性能强劲 高效静音 小黄鱼游戏台式电脑主机(i7-10700F、16GB、512GB、RTX3070)-适用... 工伤保险记什么科目 在4×4的正方形格纸中,有一个以格点为顶点的△ABC,请你找到点C,使三角... 在4×4方格中, 要求C点在格点上,且以AB为边的△ABC为直角三角形,标出所... 牡丹江历史上出现的英雄 如何消除视频画面下方的字幕? 梦幻西游游戏画面下方看不见怎么回事 李范五的人物简介 监控画面下方的A和E代表啥? 有时画面下方压不住,上重下轻的时候,用山石、栏杆做前景,色调深使画面压住阵脚,达到稳定、均衡的作用 监控画面下面有动态指示绿条,怎么取消? 电视机画面下方有几个字页面访问失跌怎样删掉 两手机号同时打一个手机号会显示正在通话中吗 联通手机号码可以多方通话吗, 所有手机打同一手机号都是提示正在通话中,哪位大神告诉我怎么破解? 一个手机号可以被两个不同国家的人同时使用吗 不同手机号打同一个电话都是您好,您拨打的电话正在通话中,不同时间段,这是怎么回事?_百度问一问 请问怎么能接受对方的手机号码同时通话 所有的手机打同一个手机号都是提示正在通话中是怎么回事? 同时两个手机号出现在通话记录 一个手机号能有两张卡吗?能不能同时通话? 蜡烛是主要由什么组成的 蜡烛燃烧产生的气体的成分是什么? 自己diy电脑 怎么装系统win10 电脑屏幕太小,单机游戏部分画面隐藏在屏幕下方,怎么才能显示出来? 在PS中如何做画面下方这种渐变效果 Java中什么是方法?方法的结构是怎样的?设计方法应考虑哪些因素?_百度... kmplayer播放大的视频文件时画面下方出现模糊的情况,该怎么解决? 游戏画面下方显示不完整,求解决办法 哈尔滨的李范五花园坐哪趟车下车李范五花那站叫啥名? JAVA语言由函数构成的吗? 从道外太古十四到李范五花园怎么走 为什么有线电视电视画面下方的信息栏目没显示?节目正常可以看。 宁安的地方名人 哈尔滨市李范五转盘道往黄河路上桥口 压实线了 罚款扣分吗? 这幅属于国画吗?画面下方的蓝色怎么调配的? 《网》 在画面下方写明创作思路(150字左右) 例如画面灵感来源、内容与主题的联系、图案风格等。 东北民主联军的军区设置 笔记本电脑开机后一直停在进入系统的画面,画面下方有一个小圈再转 大庆的由来 孙西林是怎么死的的? 网页后的“htm” 什么意思 描写手脚冰凉的好句子 什么样的婚姻必须放弃