1、接口
概念:当抽象类中的方法都是抽象方法时,建议将该类转换为接口
jdk1.8之前接口的方法都是抽象方法,变量都是常量,1.8及之后接口可以定义默认方法
关键词:interface/implements
存在的意义:主要是用于定义规范/规则
接口的特点:耦合性低、规范化等等,接口与接口之间可以多继承,类与接口之间可以多实现
例如:电脑上的USB接口,即插即拔式,扩展性强,有规则要求
接口的命名规则:建议首字母以I开头
1、接口是完全抽象的
2、接口中怎么定义 语法是什么? [修饰符列表] interface 接口名{}
3、接口支持多继承
4、接口中只有常量+抽象方法
5、接口中的所有元素都是public 修饰的
6、接口中抽象方法的 public abstract 可以省略
7、接口中的方法都是抽象方法,所以接口中的方法不能有方法体
8、接口中的常量的public static final 可以省略
public interface Ianimal{
public static final String name = "动物"; //public static final可以省略,方法的public abstract也可以省略
public abstract void eat();
public abstract void sleep();
}
class Dog implements Ianimal{
@Override
public void eat() {
}
@Override
public void sleep() {
}
}
2、Math对象
数学函数类,类是最终类不能被继承,其中的方法都是静态方法,类名直接调用即可
-
ceil() 求大于或等于给定值的最小整数 向上取
-
floor() 求小于或等于给定值的最大整数 向下取
-
random() 生成一个0~1之间的小数
System.out.println("随机数:"+Math.random()); System.out.println("1~10:"+Math.random()*10+1); System.out.println("1~10:"+Math.ceil(Math.random()*10)); System.out.println("0~9:"+Math.floor(Math.random()*10));
3、Object
该类为所有类的超类,默认是省略的
Object中都有哪些方法:
hashCode() 通常用于表示某个对象的地址
equals() 判断对象是否相同
==比较基本数据类型时比较的是数值,如果是比较引用数据类型,那么比较的是地址
toString() 将类的信息以字符串的形式表示出来
通常开发者会输入对象,为了能够更加快速清晰的知道该对象中的属性的值分别都是什么,此时就会重写该类的toString 方法
直白点说:toString方法是系统提供的一种输出格式
User user = new User("张三",4555555,"555555555555444444441111");
System.out.println(user); //默认自动调用toString方法
public String toString() { //重写toString方法
return "User [name=" + name + ", idCard=" + idCard + ", phone=" + phone + ", age=" + age + "]";
}