Java学习之对面对对象的一点认知
第一次写博客啊,哈哈, 记录是一个好东西,交流跟是个好东西. -----鲁迅没说过
-
概念
-
任何对象都有自己的特征与行为
- 特征:称为属性,一般为名称,代表对象有什么
- 行为:称之为方法,一般为动词,代表对象能做什么
-
-
类(对象的模板)
Java类中默认隐藏有一个无参数的构造方法,如果自己写了其它的构造方法,这个默认的也就不存在了
类只能被public ,abstract,final给修饰-
类的声明
-
[修饰符]class<类名>[extends 父类名][implemets接口列表]{}
修饰符:可选,用于指定类的访问权限,可选值为public, abstract,final
类名:必选,所有单词首字母大写且合法
extends 父类名:可选
implements 接口列表:可选
-
-
类体
- 全局变量(成员变量)-------属性
- 成员方法-------方法
-
全局变量与局部变量
-
全局变量
作用于整个类中
系统会默认初始化赋值
int 0 double 0.0 boolean false 引用类型 null声明全局变量:
[修饰符][static][final]<变量类型><变量名>;
[修饰符]:可选,public,protected,private
static:可选
final:可选,即为常量
变量类型:必选
变量名;必选-
实例变量
-
静态变量
用关键字static修饰的,也称为类变量
-
-
局部变量
作用于一个方法体中
必须先赋值才能使用声明局部变量:
fianl(可选)<变量类型><变量名>;
-
-
类的UML图
第一层:类名
第二层:属性 如name:Stirng
第三层:方法 如run():void -
构造方法
名字与类名完全相同
没有返回值(不存在void)
如:public Apple(){}-
定义:实例化对象时候,默认会调用的方法且只会在类的实例化中被调用
-
(重点):this()与super()的使用(即在构造方法中调用另一个构造方法)
构造方法调用有: (不允许存在递归结构)
super() 或 super(实参)
this() 或 this(实参)- 在某个构造方法体中:
构造函数调用必须是构造函数中的第一个语句
this和super的构造方法调用不能同时存在且只能存在一个.
构造方法中第一行默认有个隐藏的super()方法,如果你写了一个显性的,默认的就没用了
- 构造函数调用只能发生在构造函数中,且只能发生在第一行
- 在某个构造方法体中:
-
-
-
对象(类的实例化)
-
实例化对象的过程
-
Apple app=new Apple();
1–对象的声明
Apple app;声明对象app的类型
2–实例化对象
new 在堆中开辟空间
Apple() :类的构造方法
-
-
(重点)对象创建的内存分析
- 1.堆中开辟空间
- 2.对成员变量赋予初始值
- 3.调用构造方法
- 4.将地址复制给变量
-
this关键字
类是模板,可服务于此类的所有对象;this是类中的默认引用,代表当前实例;当类服务于某个对象时,this则指向这个对象
- this.name;代表当前类的对象对其属性name的调用
-
对象的销毁(了解即可)
Java提供的垃圾回收机制可以自动判断对象是否还在使用,并能够自动销毁不再使用的对象,收回对象所占用的资源.Java提供了一个名为finalize()的方法,用于在对象被垃圾回收机制销毁之前执行一些资源回收工作,由垃圾回收系统调用.但是垃圾回收系统的运行是不可预测的.finalize()方法没有任何参数和返回值,每个类有且只有一个finalize()方法.
-
XMind: ZEN - Trial Version