---------------------- android培训、java培训、期待与您交流! ---------------------
JavaSE_07 笔记
Java语言基础之 构造函数 this tatic 静态代码块
1、private:私有,是一个权限修饰符。
仅用于修饰成员变量和成员函数,且私有的内容只在本类中有效,提高对数据访问的安全性。
但是要注意私有仅是封装的一种体现形式而已。
2、面向对象之构造函数:作用就是给对象进行初始化用的。
要求同类名;不要返回值类型;没有具体的返回值;至于参数可以是空也可以非空。
作用是:可以对对象进行初始化。
3、一般函数和构造函数的区别:
①构造函数在对象创建时就会调用与之对应的构造函数,对对象进行初始化。
一般函数在对象创建后,需要函数功能时才调用。
②构造函数对象创建后只调用一次,而一般函数可以调用多次。
4、构造函数内存使用解析
首先mian函数进入栈内存;在new Person()后进入堆内存;堆内存成员变量默认初始化;然后构造函数进入栈内存;再将栈内存中的数据赋值到堆内存的成员变量中去;最后将堆内存中对象的地址赋给栈内存的类类型变量。
5、面向对象之this:this就是所在函数所属对象的引用。
①this可以在构造函数中调用其它构造函数。但是需要定义在第一行。
事例: Person(String name,int age) { this(name); this.age=age; }
本质:栈内存中构造函数中的this,代表就是堆内存对象的地址比如ox0045。
②其实任何成员要被调用就需要对象,就是用this表示。
6、面向对象之static关键字:可被对象共享的数据。
特点:
①被所有对象所共享:所有成员共享是static,而对象中存储的是特有数据。
②随着类加载而加载:因为共享,且可被类名访问。
③优先于对象存在:static成员随着类的加载而加载。
④可直接被类名调用:static成员多了一种调用方式。
7、成员变量和静态变量区别?
①两个变量的生命周期不同
成员变量生命周期短,随着对象的加载而加载,随着对象的回收而释放;
静态变量生命周期长,随着类的加载而加载,随着类的消失而消失,而类是随着虚拟机而消失。
②调用方式不同。
③数据存储位置不同。
成员变量存储在堆内存的对象中。
静态变量存储在方法区(静态区中),所以也叫对象的共享数据。
8、静态代码块:没有名字,特别之处在于它随着类的加载而执行,且只执行一次。
作用:用于给类进行初始化,而非对象初始化。
static
{ }
9、构造代码块和构造函数
①构造代码块是给所有对象进行初始化,具有通用性;
②构造函数是给对应的对象进行针对性的初始化 。
10、静态代码块;构造代码块;局部代码块;执行顺序?
静态代码块先执行;若有对象构造代码块执行;最后局部代码块执行;
2012/9/03 By Mary_k