java学习(8)
来源:互联网 发布:dg加密软件 编辑:程序博客网 时间:2024/06/03 18:50
不好意思再说自己是自学java了,因为最近突然开了一门java课,接下来这个系列就不写小的细节,光写我觉得不熟悉的地方了。
接口
可以用instanceof来判断对象是否实现了相应的接口比如
res = a instanceof B
和类的区别:
尽管每个类只能够拥有一个超类,但却可以实现多个接口。这就为定义类的行为提供了极大的灵活性。
作用:主要用来描述类具有什么功能,而并不给出每个功能的具体实现。
一个类可以实现(implement)一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。
定义:在java中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
例子:
Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列前提:
对象所属的类必须实现了Comparable接口
public interface Comparable
{
int cimpareTo(Object other);
}
任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个整型数值。
接口中的所有方法自动的属于public
如果希望通过Arrays类的sort方法对Employee对象数组进行排序,Employee类就必须实现Comparable接口
(1)将类声明为实现给定的接口
(2)对接口中的所有方法进行定义
class Employee implements Comparable
Employee类需要提供自己的compareTo方法(假设是以薪水作为评判标准)
public int compareTo(Object otherObject)
{
Employee other = (Employee)otherObject;
return Double.compare(salary,other.salary);
}
需要谨记的是,如果要实现sort,一定要实现Comparable接口
对于自定义类的clone,如果说他不能够使用默认的clone方法,那么我们就应该
(1)实现Cloneable接口
(2)使用public访问修饰符重新定义clone方法
clone方法其实是从Object继承来的,接口在这里起到的只是标记的作用
接口与回调
回调:指出某个特定事件发生时应该采取的动作。
java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告。
内部类:
使用内部类的原因:
(1)内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。
(2)内部类可以对同一个包中的其他类隐藏起来
(3)当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷
对于(1)
内部类既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域。
为了能够运行这个程序,内部类的对象总有一个隐式引用,它指向了创建它的外部类对象。
只有内部类可以是私有类,这样就只有他的外部类能够构造他的对象。而常规类只可以具有包可见性,或公有可见性。
内部类的特殊语法规则:
OuterClass.this
局部内部类
局部类不能用public或private访问说明符进行声明,它的作用域被限定在声明这个局部类的块中。
其他类也不能够访问他,除了他定义的方法以外,没有任何方法知道TimePrinter类的存在。
局部类的优点:
他们不仅能够访问包含他们的外部类,还可以访问局部变量(不过这些局部变量必须被声明为final)
- Java学习笔记8
- java学习(8)
- Java学习记录8
- java学习笔记8
- Java学习笔记8
- Java学习-8天
- JAVA学习随笔8
- JAVA学习总结8
- JAVA学习数据库8
- java学习(8)
- java学习(8)
- Java学习---8
- Java学习8:继承
- Java学习笔记(8)
- java学习8---Java 图形界面编程
- Effective Java 学习笔记(8)
- Effective Java 学习笔记(8)
- java nio的学习-8
- 实现一个自己的网络浏览器
- 逻辑运算
- bzoj 2721: [Violet 5]樱花 线性筛
- 【Hibernate】---- 锁
- 数组实现大数四则运算
- java学习(8)
- 《利用Python进行数据分析》第二章pivot_table报错问题
- flume高并发优化——(13)扩展三级文件配置&利用Headers扩展属性
- XML注释与取消注释快捷键
- RelativeLayout相对布局和ImagView、RadioGroup
- 定时脚本
- 个人总结
- Java Happen-Before规则
- c!#!获!得!磁!盘!属!性