关键词总结:
- 对象【属性->变量、行为->方法】->类
- 成员变量、局部变量、静态变量、静态常量
- 主方法、成员方法、构造方法、静态方法、抽象方法
- 一般类、抽象类、接口、内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- 关系:类的封装、类的继承、方法重写、方法重载、接口的多重继承、创建对象
- 访问控制:访问控制符、类包、和final关键字
- 关键字:this、static、class、extends、abstract、interface、implements、final、super、public、private、protected、default
深入理解以上名词的含义、并且会用java语言进行表达和展示
一般类、抽象类、接口、内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
比较项 | 抽象类 | 接口 |
---|---|---|
方法 | 可以有非抽象方法 | 所有方法都是抽象方法 |
属性 | 属性中可以有非静态常量 | 所有属性都是静态常量 |
构造方法 | 有构造方法 | 没有构造方法 |
继承 | 一个类只能继承一个父类 | 一个类可以同时实现多个接口 |
被继承 | 一个类只能继承一个父类 | 一个接口可以同时继承多个接口 |
抽象类与抽象方法,关键字:abstract
- 在抽象类中,可以包含抽象方法,也可以不包含抽象方法,但是包含了抽象方法的类必须被定义为抽象类;此时的抽象方法没有具体实现,既没有大括号
- 抽象类不能创建抽象类对象,不能实例化;
- 抽象类被继承后,子类需要实现其中所有的抽象方法,包括父抽象类中的和子抽象类中的;
- 如果遇到抽象类继承抽象类,则子抽象类中可以不用实现父类中所有的抽象方法
接口与多重继承:关键字:interface、implements
解决第3点中出现的问题,当子类不想实现所有的抽象方法时
- 方法:接口中的方法只有定义而没有被实现,也就是说接口中的方法都是抽象的,当子类实现接口时,必须实现接口中的所有方法
- 变量:在接口中定义的任何变量都是static 和 final的,因此,在接口中定义变量时,必须进行初始化,而且,实现接口的子类不能对接口中的变量重新赋值
- 类不允许多重继承,使用接口就可以:class 类名 implements 接口1,接口2,…
- 一个类实现一个接口使用关键字implements,接口继承接口时,使用关键字extends
主方法、成员方法、构造方法、静态方法、抽象方法
- 主方法是类的入口点,提供对程序流向的控制,编译器通过主方法来执行程序;
- 类中的成员方法需要实例化才能调用,即使用前要用操作符new调用构造方法来创建对象,因此创建对象的同时,将自动调用构造方法中的代码;
- 构造方法不能定义为抽象方法,抽象方法在抽象类中没有具体实现,静态方法无需实例化就可以调用
访问控制:访问控制符、类包、和final关键字
- 声明类时,如果不使用public修饰符设置类的权限,则这个类默认为default(缺省)修饰。
- Java中类的完整名称是包类与类名的组合
- 同一个包中类相互访问时,可以不指定包名
- 实际开发中,应该为所有类设置包名,packge 包名1.包名2,是文件中的第一行非注释代码,当使用时,包名会成为类名的一部分
- java中命名规则是全部使用小写字母
- 使用包中的类,用import指定,.*表示导入包中全部的类
- final class 类名{},不能被继承,没有子类,例如String类,System类
- final方法不能被重写,final变量为常量,也可以修饰对象引用,数组,不可以被改变
- 使一个常量真正做到不可更改,可以将常量声明为static final,定义全局变量,通常使用pubilc static final
其他:声明、定义、创建这些词儿的理解
声明是向编译器介绍名字–标识符,定义是说:“在这里建立变量”或“在这里建立函数”,它为名字分配存储空间。声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,声明不会分配存储空间,只有定义时才会分配存储空间。