04:面向对象——构造函数

面向对象思想
一个类中,只含有属性和方法;
1:一种思考方式
2:复杂问题简单化,从执行者变成指挥者
3:封装
4:找对象,建立对象,使用对象,维护对象的关系
5:类与对象的关系
现实生活中的对象:张三,李四
想要描述:提取对象公共性内容,对具体的抽象
描述时:寻找现实中对象的共性
6:类就是:对现实生活中实物的描述
对象 :就是这类实物的 实实在在的个体
7:堆栈
栈存储基本变量,数组名,类名
堆中存储new出来的空间,比如对数组空间的分配,对类空间的分配

 面向对象的三个特征:封装     继承     多态
 开发过程中,实际上就是找对 对象的使用,没有对象,就创建一个对象。
 找对象,建立对象,使用对象,维护对象的关系;

局部变量与成员变量
作用范围:
成员变量作用于整个类中。
局部变量作用于整个函数中,或者语句中。
在内存中位置:
成员变量存储在堆内存中,因为对象存在,成员变量才会存在;
局部变量存储在栈内存中!!!(这里有疑问,基本数据类型不是存放在栈内存中吗?)
成员变量都有默认初始值;局部变量无,不初始化,无法参加运算;

匿名对象
匿名对象是对象的简写格式
对于匿名对象,对匿名对象的属性进行修改无意义
使用方法:
1:当对 对象的方法只调用一次时,可以用匿名对象完成,这样比较简单
2:可以将匿名对象作为实际参数进行传递
对象的初始化过程:
new对象的过程中,1 先加载*.class文件(把数据从硬盘中加载到内存中)
2: 静态成员,静态代码块,静态方法
静态成员 默认初始化,显示初始化,静态代码块初始化
静态代码块被执行(随着类的加载执行一次)
3:在堆为new的对象开辟空间(属性有了)
4:属性默认初始化,显示初始化,紧接着构造代码块初始化,构造函数初始化;
5:
person p=new person(“zhangsan”,20)
1:因为new用到了person.class,所以会先找到person.class文件并加载到内存中
2:执行该类的static代码块,如果有的话,给person.class类进行初始化
3:在堆内存中开辟空间,分配内存地址
4:在堆内存中建立对象的属性,默认初始化
5:对属性进行显示初始化
6:对对象进行构造代码块初始化
7:对对象进行对应的构造函数初始化
8:将内存地址付给堆栈内中的变量

对象调用成员过程:成员只有被调用才会被使用(方法要有人使用);

你可能感兴趣的:(java)