-
package:
- 打包:包名必须是小写字母,而类名的第一个字母一般为大写,这样在引用时,可以明显的分辨出包名和类名。
- 包的作用:类在哪个包底下,可以更好的组织类,包与文件夹类似,文件夹可以将不同的文件放在同一个文件夹中,而包也可以将不同的类文件放在同一包中。减少类名的冲突问题,这也与文件夹类似,同一文件夹中的文件不能重名,不同文件中的 文件可以重名,同一包中的类名不能重复,不同包中的类名可以重复,对包中的类起了一定的保护作用。
- 包的使用:使用 package 关键字指明类所在的包, package 语句必须在文件的最前面。
-
import:
-
导入:使用了包机制后,如果在一个类中使用了其他包中的类,需要使用 import 来引入。
-
import导入一个具体的类,不能导入一个具体的包。
例如:import java.util.Arrays; 这个就是导入一个具体的类,但是import java.util;就会报错。
import java.util.*;这里的*是通配符,导入这个包底下所有的类。
问题:util底下有很多的类,难道是一下子全部导入了吗?不是的,java处理的时候,需要谁,才会把谁导入进去。C语言里通过include关键字,导入之后,就是把这个头文件里的内容全部拿过来了。
**import static java.lang.System:**思考:这里的System是文件夹吗,不是,是类,import static 的作用就是直接调用该类中的静态方法,在调用System中的方法时,可以省略类名,直接用方法去点。但是不经常去用,可读性较差。
-
- 封装:对不必要公开的数据成员和方法,使用private关键字进行修饰
- 继承:对共性的抽取,使用extends关键字进行处理,意义:对代码进行重复使用
- java当中是单继承,不能同时继承两个类以上的类,包括两个。
- 子类构造的同时,要先帮助父类进行构造。super:[不能出现在静态方法中],父类对象的引用 super();//调用父类的构造方法,可以调用父类的方法和属性。
- 如果一个类不想被继承,我们可以设置final修饰,final int a=10;//常量,不可以被修改 ,final class A 代表整个类,不可以被继承
-
多态:一种事物多种形态,也就是所谓的向上转型。
普通类:
动态绑定:
- 父类引用,引用子类的对象
- 通过这个父类引用调用父类和子类同名的覆盖方法。
重写:
- 方法名要相同
- 参数列表相同(个数+类型)
- 返回值相同
- 父子类的情况下
重写时要注意:
- 方法不可以是static
- 子类的访问修饰限定,要大于等于父类的访问修饰限定
- private方法,不能够被重写
- 被final修饰的方法,不能被重写
对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。编译和运行:
编译的时候,不能够确定此时调用谁的方法,运行的时候,才知道调用哪个方法,运行时绑定。
抽象类:
- 包含抽象方法的类
- 抽象方法:没有具体实现
- 不能够被实例化
- 只能被继承
- 可以有成员和方法
- 一个类继承了抽象类,则需要重写这个抽象类的所有抽象方法
- 抽象类B继承另外一个抽象类A,可以不实现它的抽象方法
- 同7,如果普通类继承了B,则需要重写他俩所有的抽象方法
- 抽象类不能被final修饰
接口
- interface修饰
- 接口中的普通方法,不能有具体的实现
- 可以有static方法
- 抽象方法,默认时public abstract
- 接口不能被实例化
- 类通过implements实现
- 接口中的成员变量,默认是Public static final修饰
- 当一个类实现一个接口,重写这个方法,方法前面必须要加上public
- 一个类可以通过extends继承一个抽象类或者普通类,但是只能继承一个类。同时,也可以通过implements实现多个接口,用逗号隔开
- 接口和接口之间通过extends *** 作他们的关系,此为拓展。
如果自定义的数据类型,进行大小比较,一定要实现可以比较的接口,Comparable这个接口侵入性强,一般推荐使用比较器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)