面向对象 构造代码块 静态代码块

来源:互联网 发布:中国人歧视中国人知乎 编辑:程序博客网 时间:2024/05/21 14:06

面向对象:三个特性:封装,继承,多态

具体对象就是对应java在堆内存挂中new建立实体

 

匿名对象使用方式一:当对对象的方法只调用一次是,就可以对匿名对象来完成,这样写比较简化

如果对一个对象进行成员调用,必须给这个对象起个名字。

匿名对象使用方式二:可以对匿名对象最为实际参数进行传递

对象一建立就会调用与值对应的构造函数

构造函数的作用:可以用于对象进行初始化

构造函数的小细节:当一个类中没有定义构造函数式,那么系统会默认给该类加入一个空参数的构造函数

当在类中自定义了构造函数后,默认的构造函数就没有了


构造代码块。

作用:给对象进行初始化,。

对象一建立就运行,而且优先于构造函数执行

和构造函数的区别:

构造代码块就是给所有对象进行统一初始化


Static

优先于对象的存在,

随着类的加载

被所有对象所共享

可以被类名直接调用

 

类中的方法不再堆里,而在另一块内存中:(方法区,也叫数据区,也叫共享区),静态成员变量也在这一块中优先于对象存在

 

静态方法只能访问静态成员和方法,thissuper都是对象所以也不调用

非静态方法能访问静态成员和方法

 

主函数mainString[]args)也是能往里面传递参数的,

把构造函数私有化,防止被建造对象,(当都是静态方法的时候)

能隐藏的就隐藏。

 

Static {};优先于main方法,优先级同时高于构造方法随着类的加载而执行这个代码块

 

只有用到类中的东西才能加载对应的类

 

{

}

Person p=new Person(“zhengsna”,20);

因为new用到了Person.class所以会先找到Person.class文件并加载到内存中

2执行该类中的static代码块

3在对内存中开辟空间,分配内存地址

4在堆内存中建立对象的特有属性,并进行默认初始化。

5对属性进行显示初始化

6对对象进行构造代码块初始化

7对对象中的构造方法进行初始化

8将内存中的地址赋值给p变量




0 0
原创粉丝点击