1.包
1.定义:包用来管理源代码文件,会进行遍历
2.作用:1)用于分类管理源代码文件,不同包中可以存储同名的类
2)在编译的时候 可以确定具体包中的类 防止重名的类的冲突
3.说明:1)由公司域名组成 com.offcn.test01
2)包全都是小写 中间以.来连接
3)包的声明: package+包名
4.导包:使用不同包下的类时 就需要导包
如Scanner 需要导入Import java.util.Scanner
使用同一个包下的类 不需要导包
如Java.lang包下的资源都不需要导包(String Math)
语法:import+完整的包名
不导包使用其他包下的类 或类名冲突时 需要使用完整的包名+类名才能使用类
如:java.util.Scanner input = new java.util.Scanner(System.in);
2.访问修饰符
1.定义:用来限制可供访问的作用域
2.作用:可以修饰 类 变量 方法 构造方法 常量等
3.说明:
public | protected | default(空) | private | |
同一类中 | √ | √ | √ | √ |
同一包中(子类与无关类) | √ | √ | √ | |
不同包的子类 | √ | √ | ||
不同包的无关类 | √ |
4.说明:一般情况下 需要对外提供访问使用public 不需要对外提供访问使用private
3.多态
1.定义:一个事物或者是一个对象具有多种形态 Java面向对象的三大特征之一
2.条件:必须存在继承或者是接口
3.说明: 父类的类名 对象名 = new 子类的类名();
4.访问成员变量:编译看父类 运行看父类,即必须是父类存在的变量 运行的结果也是父类的变量值。
5.访问成员方法:编译看父类 运行看子类,和重写的规则类似。
6.向上转型:小的数据类型提升为大的数据类型
父类的类名 对象名 = new 子类的类名();
不能调用子类的独有方法。
7.向下转型:强制类型转换
子类的类名 对象名 =(子类的类名) 父类对象名;
不能转换为其他子类
如:父类的类名 对象名1 = new 子类1的类名();
子类2的类名 对象名2 =(子类2的类名) 对象名1;
这是不允许的比如猫和狗都是宠物类 用宠物类去定义一个狗对象 不能再还原成猫类。
8.Instanceof 判断是否可以还原成功
父类对象名 instanceof 子类的类名 ==> 返回值是boolean
9.作用:代码的扩展性强,可以实例化不同的子类对象。