开发工具与关键技术:Eclipse、java
作者:奈何丶一梦
撰写时间:2020年10月18日
36.抽象类和接口的区别
成员区别:
- 抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法
- 接口:常量;抽象方法
关系区别:
- 类与类:继承,单继承
- 类与接口:实现,可以单实现,也可以多实现
- 接口与接口:继承、单继承、多继承
设计理念区别:
- 抽象类:对类抽象,包括属性、行为
- 接口:对行为抽象,主要是行为
37.内部类
概述:就是在一个类中定义一个类。例如:在一个类A中的内部定义一个类B,类B就称为内部类
格式:
public class 类名{
修饰符 class 类名{
}
}
例如:
public class Outer{
public class Inner{
}
}
内部类访问特点:
- 内部类可以直接访问外部类成员,包括私有
- 外部类要访问内部类的成员,必须创建对象
按照内部类在类中定义的位置不同,可以分为如下两种形式:
- 在类的成员位置:成员内部类
- 在类的局部位置:局部内部类
1.成员内部类
创建对象格式:外部类名.内部类名 对象名=外部类对象.内部类对象;
例如:Outer.Inner oi=new Outer().new Inner();
2.局部内部类
局部内部类是在方法中定义的类,所以外界无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类的成员。也可以访问方法内的局部变量。
3.匿名内部类
前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。
格式:
new 类名或者接口名(){
重写方法;
}
例如:
new Inter(){
public void show(){
}
}
本质:是一个继承了该类或者实现了该接口的子类匿名对象。
38.Math
概述:Math包含执行基本数字运算的方法,不能被实例化,直接通过类名访问。
常用方法:
方法名 | 说明 |
---|---|
public static int abs(int a) | 返回参数的绝对值 |
public static double ceil(double a) | 返回大有或等于参数的最小double值,等于一个整数 |
public static double floor(double a) | 返回小于或等于参数的最大double值,等于一个整数 |
public static int round(float a) | 按照四舍五入返回最接近参数的int |
public static int max(int a,int b) | 返回两个值中较大值 |
public static int min(int a,int b) | 返回两个值中较小值 |
public static double pow(double a,double b) | 返回a的b次幂的值 |
public static double random() | 返回值为double的正值,[0.0,1.0) |
39.System
概述:包含有几个有用的类字段和方法,它不能被实例化,直接通过类名访问。
方法名 | 说明 |
---|---|
public static void exit(int status) | 终止当前运行的Java虚拟机,非零表示异常终止 |
public static long currentTimeMillis() | 返回当前时间(以毫秒为单位) |
40.Object
概述:Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或间接的继承自该类。
构造方法:public Object()
常用方法:
方法名 | 说明 |
---|---|
public String toString() | 返回对象的字符串表示形式,建议所有子类重写该方法,自动生成 |
public boolean equals(Object obj) | 比较对象是否相等,默认是比较地址,重写可以比较内容,自动生成 |