This:每个对象中保存自身内存地址的一个引用变量

This就表示当前对象

在成员方法中或构造方法中区分同名的成员变量和局部变量

用在构造方法中,重载调用当前类中其他构造方法,必须写在构造方法第一行 this(。。);

Return this返回当前对象的内存地址,可以链式调用

This不能出现在静态方法中

Static 在类体中 使用staic 修饰的变量 是静态变量

用static修饰的方法是静态方法

还可以用static定义静态语句块

静态语句块  static{   } 等同于静态方法,静态语句块自动执行,程序加载阶段执行完成,并且只执行一次,执行时机在main之前,适合做一些初始化操作

访问一个类的静态属性的时候类加载

实例语句块:等同于成员方法,没有static修饰的语句块就是成员语句块

            创建对象之后,立刻执行,每创建一个对象就执行一次,并且在构造方法之前

封装:把所有组成部分组合到一起,还可以通过权限控制修饰符将数据隐藏起来

Package :包机制 主要解决了命名冲突问题,在类名前加命名空间

                 完整的类名是带有包名的 包名。类名才是这个类的名字

                Package语句,必须出现在Java源文件的第一行

                Package语句是规定能够编译之后的class文件保存的位置,和源文件无关

                命名规则  一般采用公司域名倒叙

Import语句:用于把当前类中的其他类载入,必须出现在class语句之上package语句之下

           Java.lang.*;*表示导入util下的所有类

           java.lang.*:该包下的所有类均为系统核心类  使用时不须导入

权限控制:private 私有 只能在同类中用

          Default 不写权限控制符 默认为default 同包中使用

          Protected 受保护的继承权限 要么同包中使用 要么有继承关系

继承:在已有的类中派生出新的类,新的类能吸收已有类的属性和行为;

      Java中只支持单继承,不支持多继承,并且继承可以传递

      一个类只能继承一个父类,一个类可以被很多子类继承;

      优点是代码复用,提高效率,如果父类满足不了子类需求的话,还可以进行覆写,可以使用多态;

      如果一个类没有显示继承一个类,那么该类默认继承Object;java.lang.Object是Java中提供的根类,所有类都会直接或间接继承根类;

     语法:class 类名 extends 父类名{类体};

Super 代表了父类的特征;

      用在成员方法和构造方法中,区分父子类重名的方法和变量;

      用在子类构造方法中,没有显示出super(),也没有显示出this(),则默认有一个super()调用父类无参构造,并且super()必须出现在子类构造中的方法第一行,所以this()和super()不能同时出现;

区分父子类同名的属性:

覆写/重写:(Override):写一个和父类一样的方法,但功能不一样;

          方法名.返回值.参数列表.必须和类名一致

       控制权限不能比原方法低

       不能比原方法拥有更宽泛的异常

       只有成员方法可以覆写

@Override:源码注解,加上可以降低错误率,在编译为class文件后会被丢掉;