java构造方法都有哪些_什么java 构造方法

展开全部

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

构造方法可以用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值