Java经常使用的包java
java的核心类都放在java包以及其子包下,Java扩展的许多类都放在javax包以及其子包下。这些实用类也就是API(应用程序接口),oracle公司按这些类的功能分别放在不一样的包下。经常使用包有下面这些。sql
java.lang:这个包下包含Java语言的核心类,如String、Math、System和Thread类等,使用这个包无需使用import导入,系统会自动导入这个包下的全部类。
java.util:包含Java的大量工具类/接口和集合框架类/接口,例如Arrays和List、Set等。
java.net:包含一些Java网络编程相关的类/接口。
java.text:包含一些Java格式化相关的类。
java.io:包含一些Java输入/输出编程相关的类/接口。
java.sql:包含Java进行JDBC数据库编程的相关类/接口。
java.awt:包含抽象窗口工具集的相关类/接口,用于构建图形用户界面GUI程序。
java.swing:包含Swing图形用户界面编程的相关类/接口,可用于构建平台无关的GUI程序。数据库
类的继承编程
继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Java的继承具备『单继承』的特色,『一个子类只能有一个直接父类』。网络
修饰符 class SubClass extends SuperClass{}oracle
『若是一个Java类在定义时没有显式指定这个类的直接父类,则默认的父类是java.lang.Object类,因此java.lang.Object是全部类的父类』框架
this(ele1,...)能够实如今构造器中调用另外一个构造器,必须做为构造器执行的第一条语句。工具
方法重载、方法重写/覆盖this
方法重写规则:“两同两小一大”:spa
方法名相同、形参列表相同;
子类方法返回值类型应比父类方法返回值类型更小或者相等,子类方法声明抛出的异常类型比父类方法声明抛出的异常类型更小或者相同;
子类方法的访问权限应比父类方法的访问权限更大或相同;
要么都是类方法,要么都是实例方法;
子类方法中能够经过super或者父类类名调用,访问父类中被覆盖的方法;父类方法具备private访问权限的,对子类是隐藏的,所以子类中没法发访问该方法,没法重写。
『任何Java对象,最早执行的老是java.lang.Object类的构造器』
『多态』因为编译时类型与运行时类型不一致
引用变量的强制转换
引用类型的强制转换只能在具备继承关系的两个类型之间进行,若是两个没有任何继承关系的类型,则没法进行类型转换,不然编译就会出现错误;
试图把一个父类的是类转换成子类类型,则这个对象必须其实是子类实力才行(即编译时类型是父类类型,而运行时类型是子类类型),不然将在运行时引起ClassCastException异常。
instanceof运算符
运算符的前一个操做数一般是一个引用类型变量,后一个操做数一般是一个类、接口:判断前面的对象是不是后面类、子类、实现类的实力,若是是返回true,不然返回false。前面操做数的编译时类型要么与后面类型相同,要么有父子继承关系,不然会引发编译错误。
类的访问控制