包 #
包的作用: #
- 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
通俗来说:区分不同功能的类。 物理上 java的包就是目录。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
java/util 目录用/分隔目录, 包用. java.util
常用包名: #
包名 | 解释 |
---|---|
java.lang | 默认包,String,System, 包装类型等等。不需要import |
java.applet | 内嵌浏览器中的技术。flash—>H5+CSS3 |
java.awt | GUI技术。 GUI(可视化用户界面) |
javax.swing | awt的扩展。GUI技术 |
java.beans | javabean相关工具类。 javabean::一种类属性私有化,getter/setter访问。数据模型 |
java.io | 输入输出流inputstream/outputstream : 阻塞 io流 |
java.math | 算数工具类 0.1 + 0.2 != 0.3 BigDecimal |
java.net | 网络包 |
java.nio | new inputstream/outputstream。 : 非阻塞IO流 |
包名 | 解释 | |
---|---|---|
java.rmi | remote method interface:远程方法调用。微服务的基础 | |
java.security | java的安全框架: 字节检查,安全级别,加密算法。。。。 | |
java.sql | 数据库操作JDBC | |
java.text | 文本操作工具 :: $999,999,111.21 日期, 字符句柄, | |
java.time | 本地化日期工具 jdk8 | |
java.util | 工具类,集合,日期类。。。 |
接口interface #
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
- 接口中的方法都是 抽象方法。强制默认public abstract
- 接口中的全局变量都是常量, 强制默认public static final
- 类实现接口,要实现(覆盖)所有抽象方法。implements
- 接口不能实例化,可以多态类型
- 单继承类型多实现接口
部分关键字 #
import关键字: #
用到不同包的类需要import关键字。(※同包和java.lang包不需要import)
import java.io.*; // 开发不让用;
权限访问修饰符 #
private:只能自己访问。
default: 默认的 package级别的。 什么都不写
protected: 保护的, 给子类继承用的。 继承可跨包
public: 公共的共有的。
修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
---|---|---|---|---|---|
public | Y | Y | Y | Y | Y |
protected | Y | Y | Y | Y/N | N |
default | Y | Y | Y | N | N |
private | Y | N | N | N | N |
最终的final #
final修饰变量,变成常量。
final修饰类。 不可被继承。
final修饰方法。 不可被覆盖。
static:静态的 #
静态不能调用非静态。
静态属性类,用类名.XX
调用. 非静态属于对象用 对象.XX
调用
静态代码块只调用一次。
抽象类 abstract #
- 没有方法体的方法叫抽象方法。用abstract修饰
- 含有抽象方法的类叫抽象类。 用abstract修饰
- 子类继承抽象类,必须覆盖所有抽象方法。
- 抽象类不能实例化。但是可以作为多态的类型。
- 抽象类中可以有非抽象方法,也可以没有抽象方法。
意义:强制子类覆盖