Java进阶-day2

抽象类

抽象类也是一种引用数据类型。
抽象类无法实例化对象。
抽象类是类和类之间的共同特征。
抽象类和抽象类还会有共同特征,还可以进一步抽象。
修饰符列表 abstract class 类名{}
子类继承抽象类,子类可以实例化对象。
抽象类就是为了继承,所以不能出现final。
抽象类有构造方法,是供子类使用的。
抽象方法是没有实现的方法,没有方法体的方法:
public abstract void dosome();
一个非抽象的类继承一个抽象类,必须将抽象类中的抽象方法给“实现”了,也就是方法覆盖,并且将abstract去掉,加上方法体。
多态的运用。

接口

接口也是一种引用数据类型。
修饰符列表 interface 接口名{}
它是一个特殊的类,生成后也是.class字节码文件。
接口和接口可以继承,而且接口支持多继承:extends A,B,C…
接口中只包含:常量和抽象方法。
在接口中抽象方法public abstract可以省略掉。所有的都是公开的。
在接口中常量public static final可以省略掉。
可以访问接口常量:接口名.常量。
类和类之间是继承,类和接口之间是实现,类和类之间用extends,类和接口之间用implements
当一个非抽象类实现接口,必须将接口中的所有抽象方法实现(覆盖)
一个类可以实现多个接口,类似于多继承
接口和接口之间没有继承也可以强制类型转换:K K=(K)m;但是运行有问题,会出现classcastexception,还是用instanceof。
class Cat extends Animals implements Flyable{}
接口的作用类似于多态的作用。

凡是is a 的都可以设置为继承Cat is a Animal。是has a 的设置为属性,Customer has a menu。是Like a的设置为实现,Cooker like a menu。

接口就是将调用者和实现者连接到一起。

所有的项目都是一个模块一个模块通过接口来连接到一起

Scanner

java.util.Scanner a=new java.util.Scanner(System.in);
String str=s.next();
这是因为自己写的类和sun公司写的Scanner类不在同一个包下,所以Scanner类的类名要加上包名。也可以以后用import把Scanner的包加进来,以后就不用写他的包名了。
但是java.lang包下的类不需要导用。

Object

任何一个类都默认继承Object类。

Object中的toString()方法

这个方法的作用是将一个Java对象转换成字符串表示形式。
建议所有的子类都去重写这个方法。不然会输出一个@+十六进制。
输出引用的话,会自动调用这个toString()方法。
String类已经重写了toString方法,可以直接输出字符串。

Object中的equal()方法

在以后编程的过程中,一定要通过equals方法来判断两个对象是否相等。
因为两个引用数据类型保存的是对象的内存地址,而不是这个对象中具体的值,判断两个变量数据用“==”,判断对象就是equals方法。
equals方法默认的比较方法是用 “= =”来判断是否相等,所以要在子类方法中去重写这个方法来比较两个对象是否相等。
调用 boolean b=t1.eequals(t2);
重写方法要注意,equals中的形参是Object obj,不能改变,所以要进行向下
转型,Mytime t=(Mytime)obj;
String类以及重写equals方法了,所以可以直接用equals方法来判断来个字符串是否相等。
String s1=“abc”;也可以写成:
String s2=new String(“abc”); s1.equals(s2);

Object中的finalize()方法

这个方法是protected修饰的。
这个方法不需要程序员手动调用,JVM在垃圾回收器来调用。
这个是sun公司给程序员的一个时机,在垃圾销毁时想执行一段代码的话,这段代码要写在finalize()方法中去。
和静态代码块很相似。
不需要我们来调用,只需要我们重写就可以了。

Object中的hashCode()方法

实际上就是一个Java对象的内存地址,经过哈希算法,得出一个值。

内部类

就是一个类的内部又定义了一个类。
有static修饰是静态内部类。
没有static修饰的是实例内部类。
出现在方法体内是局部内部类。(方法结束后这个内部类就没了)。
匿名内部类,直接new接口,直接实现,不需要设置类的名字。
IDEA中纠正错误的快捷键:alt+回车

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力打破规则的小雄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值