面向对象(三)

1.final关键字

特点:

  • 修饰的类无法被继承
  • 修饰的方法无法被重写
  • 修饰的局部变量,一旦赋值,不可更改
  • 修饰的的成员变量,必须要初始化赋值
  • pubic static final double PI=3.14
    //常量赋值方法
    
    final Customer a=new Customer("zhangsan");
    
    a=new Customer("lisi");//(error)

总结:

    final修饰基本数据类型的时候,值不可改变,修饰引用的数据类型,指向地址是不可以改变的,但是对象里面的值是可变化的 


2.抽象类(abstract)

  • 抽象类无法被实例化,无法创建抽象类的对象,虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的(多态的一种)
  • 抽象类中的子类可以是抽象类,如果不是抽象类的话,必须对抽象类中的所有方法进行重写一定要
  • 抽象类中不一定要有抽象方法,但抽象方法一定在抽象类中
  • 抽象类和抽象方法不能被final修饰
  • 抽象方法不需要加大括号,只要声明

3.接口(interface)

  • 接口中只能出现常量和抽象方法
  • 没有构造方法,无法创建接口的对象
  • 接口与接口之间支持多继承,即一个接口可以有多个父接口
  • 一个类可以实现多接口,即一个类可以拥有多个父接口
  • 一个类如果实现了接口,那么这个类需要重写接口中的所有抽象方法(建议),如果不重写则这个类需要声明为抽象类(不建议)
  • interface A extends B,C{}
    
    class D implents A{}

总结:

  • 接口的作用(建议使用接口,少用抽象类),因为一个类可以实现多个接口,但只能实现一个父类
  • 降低了代码之间的耦合度,提高了代码的可插拔性
  • 可以使项目分层,都面向接口开发,提高代码开发效率

4.API

Object类里面的toString()方法就是用来重写的,如果打印的是引用数据类型,默认调用toString()方法

equal:比较两个对象是否相同,不仅是值,有时还有指向地址

finalize:垃圾回收器


5.package

命名规范:package+com.公司域名.项目名.模块名

import导入包,通常建议用什么类,就导入什么类,如果导入所有类,浪费地址空间

java.lang下的类不需要用import进行导入

posted @ 2019-03-28 09:14  一起学编程  阅读(76)  评论(0)    收藏  举报