Day06:抽象类、接口和内部类(上)
JVAV中的常量
什么是常量?
常量就是不会变化的数值
为什么需要常量?
方便使用(调用)不会变化的数值
特性
不能修改
所有对象共享
常量一定是成员
定义
public static final 类型 常量名=数值;
public static final double PI=3.1415926;
常量使用类名调用,不能被修改
命名规范
所有字母都大写
多个单词用_分隔
赋值
声明的同时赋值
语法也允许在静态块中赋值
如果常量在声明的同时赋值
代码中调用这个常量的位置
编译时会替换这个常量的值
无需加载这个类,从而提高运行效率
抽象类
什么是抽象类?
不存在对象的类型就是抽象类
特征
抽象不能被实例化
抽象类中能编写抽象方法
抽象类中的抽象方法不限
编写抽象类
使用abstract(抽象)修饰类即可
抽象方法
什么是抽象方法?
不能编写具体实现的方法
特征
抽象方法不能写方法体
抽象方法必须在子类中被重写,除非子类也是抽象类
抽象方法必须在抽象类中
定义
在方法的返回值类型前,编写abstract
编写后这个方法的参数列表后只能跟“;”
好处
抽象类不能被实例化
只能作为父类,提供一个数据结构,减化编程
子类中必须重写父类的抽象方法,约束了子类的型为,更加自然的使用向上造型和方法重写
final关键字和abstract关键子字矛盾不能同时修饰一个类或方法
内部类
什么是内部类?
一个类的内部定义的另一个类我们将外部的类称为outer,将内部的类称为inner。
种类
在java中有很多不同形式的内部类主要
成员内部类和匿名内部类
成员匿名类
什么是匿名内部类?
在类中的成员位置声明(定义)的类结构。
特性
内部类可以访问外部类的私有成员;
当内部类和外部类有同名成员时内部可以使用
外部类名.this.成员
访问;
通常情况下内部类只会在外部类中使用,实例化内部类对象可以访问内部的私有成员;
如果非要在其他类中实例化内部类对象的话;
Outer.Inner inn=new Outer().new Inner();
匿名内部类
什么是匿名内部类?
在方法中通过一个类或实现一个接口类创建的没有名称的内部类。
特性
可以使用外部类的私有成员;
内部类和外部类的成员同名时,使用
外部类名.this.成员
来指定外部类的成员;
匿名内部类创建的对象,相当于这个类的子类对象在方法中使用;
如果这个类的对象只在某一个方法中使用一次的话,可以使用匿名内部类;
匿名内部类可以使用其所在方法的局部变量,但是要将其视为被final修饰的JDK1.6之前,
匿名内部类中使用的方法中的局部变量必须使用final修饰
计时器
什么是计时器?
定期或周期性的调用一个方法的特殊类
实现
每隔2秒输出
public static void main(String[] args) {
System.out.println("start");
Timer ti=new Timer();//实例化Timer对象(java.util)
TimerTask task=new TimerTask() {
int i=1;
@Override
public void run() {
//重写run方法
System.out.println("我是猪");//输出语句
i++;//每输出一次语句加1
if(i==5){//输出5次
cancel();//到达取消操作
}
}
};
//单位毫秒
ti.schedule(task,2000,2000);//在方法中使用Timer对象调用schedule方法
//定义间隔时间
}
Day06:抽象类、接口和内部类(上)的更多相关文章
- Java抽象类接口、内部类题库
一. 选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是( C ).(选择一项) public class Person { public String nam ...
- Unit05 - 抽象类、接口和内部类(上)
Unit05 - 抽象类.接口和内部类(上) 1.static final常量: 1)必须声明同时初始化 2)通过类名来访问,不能被改变 3)建议:常量名所有字母都大写(多个单词间用_) 4) ...
- Unit06 - 抽象类、接口和内部类(下) 、 面向对象汇总
Unit06 - 抽象类.接口和内部类(下) . 面向对象汇总 1.多态: 1)意义: 1.1)同一类型的引用指向不同的对象时,有不同的实现 行为的多态:cut().run(). ...
- Java程序设计8——抽象类、接口与内部类
1 抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类并不需要实现,因为它只需要当做一个模板,而具体的实现,可以由 ...
- Java核心技术卷一基础知识-第6章-接口与内部类-读书笔记
第6章 接口与内部类 本章内容: * 接口 * 对象克隆 * 接口与回调 * 内部类 * 代理 接口技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现(implement)一 ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- 13. 抽象类 & 接口
一.抽象类 // 抽象类Shape public abstract class Shape { // 1. 成员变量 private String color; // 2. 初始化块 { System ...
- Java 接口和内部类
接口的方法默认死public,接口的属性默认为public static final. 为什么要接口,而不是使用抽象类.一个对象只能继承一个类,却可以实现多个接口. clone: Object的浅拷贝 ...
- [core java学习笔记][第六章接口与内部类]
接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...
随机推荐
- HDU4456-Crowd (坐标旋转处理+hash处理+二维树状数组)
题意: 给出一个矩阵,初始每个位置上的值都为0,然后有两种操作 一种是更改某个位置上的值 另一种是求某个位置附近曼哈顿距离不大于K的所有位置的值的总和 技巧: 坐标旋转,使得操作之后菱形变成方方正正的 ...
- VCL界面开发必备装备!DevExpress VCL v19.1.5你值得拥有
DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...
- orm查询优化 MTV和MVC模型 字段的chioces参数 Ajax
目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_re ...
- react浏览器回退按钮的时候传递参数
本来是有这个需求的,但是后来发现回退不也是到某个页面吗?接下来就使用了redux,真香啊,不管用户怎么操作,你到这个界面都给他一个值就完事了,没有就不给他这个值. 哈哈哈,公司框架使用umi.上代码 ...
- 第二篇【Zabbix客户端的完整布署】
关于Zabbix服务端布署请查看 1.上传zabbix安装包(源码包默认(Server和Agent是一起的)) [root@sms-v2 ~]# ll /root/ -rw-r--r-- root r ...
- 18.configparser模块
# 创建配置文件 import configparser config = configparser.ConfigParser() # 相当于config = {} 空字典 config[" ...
- QTCreator:QSS语法高亮(QSS Syntax highlight)
由于QSS几乎等同CSS[1]语法,所以我们设置有 QT 语法高亮: Qtcreator QSS syntax highlight setting: Qt Creator QSS 语法交互设置:QTC ...
- cordova打包遇到Connection timedout:
在cordova项目打包时,有时候处在公司内网环境,导致有些文件无法下载报下面的错误: A problem occurred configuring root project 'android'. & ...
- 最小生成树问题:kruskal算法
struct edge(int u,v,cost;};bool comp(const edge& e1,const edge& e2){ return e1.cost<e2 ...
- 【杂题】[AGC034F] RNG and XOR【集合幂级数】【FWT】【DP】
Description 你有一个随机数生成器,它会以一定的概率生成[0,2^N-1]中的数,每一个数的概率是由序列A给定的,Pi=Ai/sum(Ai) 现在有一个初始为0的数X,每一轮随机生成一个数v ...