引用:
u
内存单元有两个属性:值和地址
u
Point p1 = newPoint();
uPoint p2 = newPoint();
u
首先实例化对象(
new Point
),然后定义一个引用
p1
指向这个实例。
P1 = p2;
并不是将实例
p2
赋值给实例
p1
,而是改变了引用的关系,此时
p1
、
p2
地址相同都指向了
p2
的这个实例。
关键字:
u
①
final
u
Final
修饰的方法不能被重写
u
Final
修饰的属性不能被修改
(
也就是常量
)
u
Final
修饰的类不能被继承
u
②Static
静态:静态代码块是在加载类的时候自动被执行,早于构造函数,静态的方法,面向的是整个类,不是某个对象,所以没有
this,
并且只能使用类名来调用,不能使用实例化实例化来调用。
u
③
This
关键字
u
this
关键字是什么意思?
u
有时一个方法需要引用调用它的对象。为此,
java
定义了
this
这个关键字。简单地说,
u
This
是在对象内部指代自身的引用。可以直接引用对象,可以解决实例变量和局部变量之间发生的任何同名的冲突。
抽象类:
u
什么是抽象类:提取事物的本质、共性的属性的方法,忽略某些不必要的细节和个性的差异。
u
为什么需要抽象类?
u
在现实生活中,有些类我们明明知道是有某些方法的,但是具体这些方法是怎么去做的好像又说不清楚,比如:手机、电报、固定电话等都是通讯通讯工具,而通讯工具就应该具有向外发送消息的方法,但是却无法说明具体怎么发,而手机、电报等我们又可以说清楚它们是怎么发送消息的。
u
u
u
抽象类的作用:对后代进行规则,即它的后代必须去实现父类的抽象方法。
u
由于抽象类中包含有未实现的方法,所以抽象类是无法去实例化对象。
u
u
抽象方法:只有声明,没有实现。
Abstract
修饰抽象方法
u
一个类中只要有一个抽象方法那就可以说这个类是抽象类,抽象类中也可以有非抽象方法。
u
接口里面的方法都是抽象方法,所以在接口里面声明方法时,就不需要用
abstract
修饰
u
接口的定义关键字是
interface
,抽象类是
class
,抽象类是用来继承
(extends)
的,接口是用来实现
(implements)
的。
u
为什么需要接口:
u
在
java
中,因为不可以去多继承,所以,只能通过单继承和多实现去解决这个问题。
u
为什么不能多继承?
u
若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。
接口:
u
接口里面的方法都是抽象方法,所以在接口里面声明方法时,就不需要用
abstract
修饰
u
接口的定义关键字是
interface
,抽象类是
class
,抽象类是用来继承
(extends)
的,接口是用来实现
(implements)
的。
u
为什么需要接口:
u
在
java
中,因为不可以去多继承,所以,只能通过单继承和多实现去解决这个问题。
u
为什么不能多继承?
u
若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。
u
为什么可以多实现?
u
通过实现接口拓展了类的功能,若实现的多个接口中有重复的方法也没关系。
构造函数:
u
构造函数是在对象实例化时自动被系统调用,该函数名必须是独一无二的,是将类名作为函数名,我们还可以定义不同的有参参数列表来表示不同的构造函数。。
u无参构造函数不需要程序员去定义返回值,他是系统自动决定的,void也不行。
匿名内部类:
u
为什么要使用匿名内部类?
u
①
定义接口
u
②
定义一个类去实现接口
u
③
定义
Square
这个类的一个对象
,
并且去使用它。
u
①
定义接口
u
②
定义匿名内部类,并实现接口(实际上就是将上一句情形
2.3
和并了)
u
匿名内部类的好处?
u
简化了流程,节省了内存。但是也使得使用者理解就更难了,代码的层次不是太清晰。