⏹内部类:定义在一个类内部的类,就称为内部类
◆内部类分为3种
✧成员内部类:相当于成员变量
✧局部内部类:定义在方法内部的,相当于局部变量(极少用到,了解即可)
✧匿名内部类:(常用)
◆使用要点:
✧内部类的构造方法不可以在其他类里直接调用!
✧内部类如果有静态成员变量,那么内部类也必须是静态的!
✧非静态内部类Car.Engine en = new Car().new Engine();
或者可以这样写:
Car c = new Car();
Car.Engine en = c.new Engine();
或者可以这样写:
Car c = new Car();
Car.Engine en = c.new Engine();
✧静态内部类 Car.Engine en = new Car.Engine();
✧外部类在使用内部类的时候,可以直接实例化 Engine en = new Engine();
⏹抽象类: 使用abstract关键字修饰的类,称之为抽象类
◆使用要点:
✧有抽象方法的类只能定义成抽象类(要使用abstract修饰)
✧存储过程 字符串转数组抽象类不能实例化,不能生成对象
✧可以定义构造方法但不可以调用
✧抽象类只能被继承
✧继承抽象类的子类必须实现抽象类的抽象方法
◆抽象类的意义:
✧使一个类更加具有模板意义,强制规定了子类的行为
✧把设计工作和具体的代码实现工作做了分离
⏹接口: 类的模板,用来做设计或规范,比抽象类更抽象
◆飞机、篮球、子弹、石头,这些事物之间有什么共同点?是否能用继承体现他们的关系?
⏹这些事物之间没有特别明显的共同属性,也很难抽象出父类(很难归纳为一个类别),但是它们都具有一些相同的行为能力:那就是飞行
◆因此这里我们不再使用抽象类,而使用接口来体现它们的关系,抽象出它们的共同行为
⏹接口的特点:
◆接口中的方法全部都是抽象的,不能有方法实现代码!
✧接口中的方法,默认可以省略public 和 abstract关键字,系统会自动加上
◆对于实现了接口的类,必须实现接口中的所有抽象方法。
◆接口中的属性,全部都是静态常量。
✧默认可以省略final关键字,系统会自动加上
◆接口是可以多继承的!比如接口A可以同时继承接口B和接口C
⏹常用类:
◆基本数据类型的包装类
◆byte Byte、boolean Boolean、char Character、
short Short、int Integer、long Long、
short Short、int Integer、long Long、
float Float、double Double
⏹String类和StringBuffer类
◆掌握String类和StringBuffer的区别
◆StringBuffer是带缓冲的可变长度字符串,如果一个字符串在内存中频繁的被修改,为了能够提高性能,这时我们就会考虑使用StringBuffer来存储字符串内容。
◆StringBuffer类同时也给我们提供了很多实用处理字符串的方法
◆Math类
◆System类
字段摘要 | |
static PrintStream | err “标准”错误输出流。 |
static InputStream | in “标准”输入流。 |
static PrintStream | out “标准”输出流。 |
方法摘要 | |
static long | currentTimeMillis() 返回以毫秒为单位的当前时间。 |
static void | exit(int status) 终止当前正在运行的 Java 虚拟机。 |
static void | gc() 运行垃圾回收器。 |
static String | getenv(String name) 获取指定的环境变量值。 |
static int | identityHashCode(Object x) 返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。 |
static long | nanoTime() 返回最准确的可用系统计时器的当前值,以毫微秒为单位。 |
⏹集合类: 一组数据的集合,类似于数组,功能比数组强大
◆集合的特点
✧集合的长度是可变的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论