java 构造器的作用_Java构造器的实质作用

Java构造器的实质作用

构造器的本质作用就是为对象初始化,即为实例变量初始化,赋初值; 而不是创建对象,创建对象时通过new关键字来完成的,当使用new 关键字时就会为该对象在堆内存中开辟一块内存,只等构造器来初始化这块内存,为实例变量赋初始值。在未赋初始值之前是默认值。看代码中的构造器和编译后构造器是不一样的,编译后的构造器包含了更多的内容。

非静态代码块一般是初始化实例变量的。编译后,非静态代码块中的代码会提取到构造器中,初始化实例变量的代码也提取到构造器中,他们在构造器中的排列顺序和他们在源码中的顺序一致,并且在构造器中原有代码的前面。

构造器负责初始化实例变量。

示例代码:

package com.usoft7;

/**

* Created with IntelliJ IDEA.

* User: ASUS

* Date: 14-3-29

* Time: 上午1:35

* To change this template use File | Settings | File Templates.

*/

class User {

public String name;

{

System.out.println("非静态代码块---1");

}

public int age;

User() {

System.out.println("User 无参构造");

}

User(String name, int age) {

this.name = name;

System.out.println("name赋值完成");

this.age = age;

System.out.println("age赋值完成");

System.out.println("初始化完成----");

}

{

System.out.println("非静态代码块---2");

}

String getName() {

return name;

}

void setName(String name) {

this.name = name;

}

int getAge() {

return age;

}

void setAge(int age) {

this.age = age;

}

}

class Person {

public User u = new User();

public User user = new User("helo", 12);

public String school;

Person() {

}

User getUser() {

return user;

}

void setUser(User user) {

this.user = user;

}

String getSchool() {

return school;

}

void setSchool(String school) {

this.school = school;

}

}

package com.usoft7;

public class Test {

public static void main(String[] args) {

Person p = new Person();

System.out.println("========" + p.u.getAge());

System.out.println("========" + p.u.getName());

System.out.println("-------------------------");

System.out.println("========" + p.user.getAge());

System.out.println("========" + p.user.getName());

}

}

打印结果,

非静态代码块---1

非静态代码块---2

User 无参构造

非静态代码块---1

非静态代码块---2

name赋值完成

age赋值完成

初始化完成----

========0

========null

-------------------------

========12

========helo

附:javac命令使用utf-8编码

E:\test-java\hh>javac -encoding utf-8 Test.java

总结:通过此实例可以很好的了解构造器的作用,静态块和非静态块。

理解实例变量的初始化(先分配内存再赋值)

====================END====================

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值