黑马程序员_JavaSE基础07 之 构造函数 this tatic 静态代码块

时间:2023-02-11 17:14:34
 
----------------------      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