1.package import
java引入包机制 包信息存在于java代码第一行 在类的上面
包的定义规范 公司域名倒着写+模块名字 com.nuc.maneger
作用:
(1)方便管理众多资源
(2)引入多重命名空间
(3)同包不需要导包
import 导包:
(1)指明要使用的资源所在的位置
java.util.Scanner scan = new java.util.Scanner(System.in);//局部导入
import java.util.Scanner //位置class上 package下 类中使用
import java.util.* //模糊导入 不会影响运行效率 影响编译效率
import static java.lang.Math.min ; //静态导入 专门导入静态资源
import static java.lang.Math.*;
2.属性的私有化
提高安全:private 只能在本类中使用在其他类中无法使用
私有属性需要配合提供一对公共的访问方式
设置器:setter
访问器:getter
封装:隐藏内部实现细节,并且提供一对公共的访问方式。
私有是封装,但封装不是私有 类 方法 属性私有化 都是类的体现
3.继承
实体类|字类:根据一系列对象抽取共性所定义的实体类
父类:子类的共性
继承:
目地:提高代码的复用性 把不同类相同的概念提取出来建立一个父类
作用:子类一旦继承 父类,有权使用父类的成员(除private),可以在子类中定义 子类独有的内容
定义:子类 extends 父类
子类|派生类
父类|基类|超类
特点:单继承 修饰符只能使用public | default
对于类修饰符只能使用public 和default修饰
private:封装没有意思 只能自己使用
protectd:队友顶级包对于自己的子类和同级包是可见的跟public 和default一样
对于内部类:则四种修饰符都可以使用
开闭原则--》 面向对象的设计原则之一:对修改关闭 对扩展开放
4.访问权限修饰符
特点:成员修饰符 只能修饰成员(方法或者属性)不能修饰局部(不能在外部访问 也就不需要权限修饰符了)
修饰类:只用用public default使用
private 本类:
friendly|default|缺省 同包类:
protected 不同包子类:
public 所有:
protected 对于不同包下的子类 需要通过继承关系使用被父类修饰的成员。否则只有当前包可以。
对于不同的包想要访问protected属性 需要通过继承关系子类访问
5.super
supper与this之前的区别:
this指代当前new的对象,本类构造器的首行调用本类的其他构造器
区分局部与成员同名问题 就近原则 通过this.调用成员
super指代父类对象。子类构造器的首行,通过super(参数)调用父类指代的构造器
如果没显示通过super(参数),默认调用父类的空构造
区分子父类同名成员的问题
如果不存在同名问题 我们可以省略super.调用父类成员
如果子父类同名成员问题 同名局部问题 就近原则 局部>子类 成员 >父类成员
在子父类继承关系下:创建对象的时候,其实会先父类后子类。父类会在子类的内存空间
不能在构造器的首行同时使用this和super关键字
this与super都不能使用在静态方法中
6.重写
(方法的特性)重载与重写的区别:重载的实现条件
1.一个类的多个方法
2.方法名相同
3.参数列表不同|方法签名不同
重写的实现条件:
1.两个类
2.继承|实现
3.方法签名(方法名+参数列表)完全相同
当子类从父类继承的功能不满意时,在子类中继承重写
不能重写的方法:
1.被private修饰的方法 子类不能使用 能被继承无权使用
2.final修饰的方法
3.static修饰的方法 能继承不能被重写 如果子类方法出现与父类静态方法重名是这个方法必须要被static修饰。 对于父类和子类共同拥有的一样的静态方法 实际上来说是子类对于父类的静态方法隐藏起,static是支持类似的重写,但不能达到多态的目地,因为支持重写他的返回值什么的都是跟原先相同。
7.final 最终的
被final修饰的常量为变量 变量名全大写
被fianl修饰的方法不能被重写
被fianl修饰的类不能被继承 --》太监类
Javabean定义规范:一系列实体类的统称 分析特性设计的类
定义规范:1.类是公共的,2.至少提供一个空构造 3.属性私有化 4.提供一对公共的访问方式。
工具类,测试类不是javabean