面向对象

三大特征:继承、封装、多态

     隐藏和覆盖:是指在子类对从父类继承的属性变量及方法,可以重新的定义

    隐藏:指父类的静态方法与子类的静态方法一样的时候,通过子类对象调用该静态方法,则父类的静态方法背影藏不会执行。

    覆盖(重写):子类重新定义父类的方法,方法名,参数必须一样(“运行期”绑定,看对象的类型来调用方法)

    重载:在同一个类中,相同的方法名,不同的参数。“编译期(没对象)”绑定,看参数/引用的类型来绑定方法

内部类(有四种:成员内部类,):public class A{
        class B{}    
      } 内部类可以用protect private,可以很好的隐藏。内部类可以访问外部类所有成员,反之则需要建立内部类对象
      成员内部类:成员内部类访问外部的成员反法和属性,要使用“外部类名.this.方法名/属性”
       创建内部类的实例用“外部类名.内部类名 实例名=外部类实例名.new 内部构造方法(参数)”
       内部类不能使用static方法只可以使用static的静态常量。
  静态内部类:与外部类同级,不能访问外部类的非静态成员。
  匿名内部类:没有名称的内部类。必须继承一个类或者实现一个接口,如果是继承抽象类则匿名内部类必须实现其父类的全部抽象方法。
  局部内部类:类在方法中。接口:是一种数据类型,由interface定义,方法抽象,数据为常量,访问权限默认public

枚举类型
变量修饰符:public:(公开,任何类 ) private:(本类)   默认:(本类、同包 ) protected:(本类、派生、同包)

     final:(修饰变量不可变 修饰类不可以被继承 修饰方法不可以本重写)     static final :(修饰的变量叫常量。编译器在编译时将常量替换为具体值,效率高。)      变量:     

变量:

 局部变量:只能在指定的方法里访问。

    成员:
      实例变量;属于对象
      静态变量(类变量):static修饰,属于类,方法区,只有一份 ,常通过类名.变量 进行访问。

内存:

   堆:new 对象(实例变量)  

   栈:局部变量(方法参数)

   方法区:class字节码文件(方法,static变量)

成员方法可以访问类中所有成员。

构造器不能被继承,因此不能重写,但是可以被重载

行顺序:父类静态代码代码块>子类静态代码块>父类非静态代码块>父类构造>子类非>子类构造>

posted @ 2018-07-18 14:28  The-ice  阅读(110)  评论(0)    收藏  举报