关闭

JAVA学习笔记之构造函数和初始化块

标签: 构造函数和初始化块内存分配java实例对象
242人阅读 评论(0) 收藏 举报
分类:

构造函数的功能:用来初始化对象的成员变量的方法。 一般初始化的都是实例变量。很少情况下给静态变量初始化

构造函数是不写返回值的。

创建对象是调用构造函数将对象的成员变量给初始化啦。

定义构造函数的要义

  1. 构造函数名要与类名相同。

  2. 构造函数没有返回值,所谓的没有返回值就是不写返回值。

  3. 构造函数一般用public修饰,不能用static修饰。

构造函数其实是有返回值的:他的返回值返回值就是刚刚被初始化的当前对象的引用。


默认的构造函数

默认构造函数也叫无参构造函数,或者缺省的构造函数,就是程序员不主动构造构造函数,编译器就会自动提供一个无参的构造函数。

如果程序员在类中已经有一个构造函数,如果程序员不提供一个无参的构造函数,那么编译器是不会提供一个无参的默认构造函数。

This访问属性的时候, 如果方法中定义的实例变量和局部变量相同,这时候会把同名的实例变量隐藏起来,如果想要访问这个与局部变量相同的实例变量就是用this.属性名。

This表示正在调用的该方法的对象。

This访问构造函数提示系统使用已有的两个参数的构造函数来初始化成员变量,放在第一行。如果类中没有两个参数的构造函数,否则 // this(sno,age)

This是可以访问静态变量属性的。 即可以访问private static int age; this.age = 10;

Class{

1.成员变量

2.成员方法

3.构造函数

}

对于初始化块:在多个构造函数里,有相同的语句时,就可以吧相同的代码写到初始化代码块里

普通初始化代码块优先于构造函数执行。每当构造一个对象调用构造函数时,就会先于构造函数执行一遍初始化代码块。

作用:也是用来初始化对象的成员的(主要是实例变量)。

初始化块和构造函数的区别: ?

给类的成员变量初始化的几种方法:

在声明时初始化: private int age = 10;

使用构造函数: 在构造函数中初始化

在初始化代码块中初始化

使用get()和set()取得和赋值成员变量。 这不能叫初始化,只能叫赋值!

使用new创建对象的步骤以及内存分配图:

1.给对象的实例变量分配空间,静态变量不会给其分配空间,并默认初始化。基本数据类型默认为0或者0.0,引用数据类型默认为null;

2.成员变量声���时初始化,初始化块中又进行初始化 (按照由上到下的顺序执行(写代码的顺序));

3.最后是使用构造函数初始化。


以下是我自己将对象初始化内存分配的图析:

http://p1.pstatp.com/large/ca300053cced577377f



          有什么问题可以给我留言。

          我的微博http://weibo.com/laokuzai  安卓派,关注android最新资讯

          微信:zhuj8989,加微信畅聊android技术



1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3721次
    • 积分:152
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类