首页 > 代码库 > 黑马程序员——Java基础篇之对象归要

黑马程序员——Java基础篇之对象归要

1、static关键字

  1.1、static可以修饰成员变量,成员方法,还有类(其中这里的类是内部类)

  1.2、static修饰的部分会随着类的加载而加载:

    加载过程:当JVM执行static修饰的代码时,会在内存的共享区给static部分开辟一个空间,供该类持有,static部分不是某个对象的部分,而是该类共有的,所以当一个函数会被多个对象调用时,最好定义成static,这样比较节省空间。

  1.3、静态方法只能访问静态成员

    原因:如果静态方法中调用了非静态的变量,那么由于静态方法是随着类的加载而加载,在执行到非静态变量时,此时JVM找不到该变量,所以静态方法只能访问静态成员

  静态方法一般都是用匿名对象来调用,这样可以节省空间,因为在JVM执行运行代码时就不会在栈中开辟一个空间来实例化对象了

2、访问修饰符

  2.1、访问修饰符有private、default、protected、public,其中访问权限以此增加

    修饰符           类内部           同一个包        子类       任何地方

    private    YES      NO    NO    NO

    default    YES      YES    NO    NO

    protected    YES      YES   YES    NO

    public      YES      YES   YES    YES

3、继承

  3.1、特点:

    (1)提高了代码的复用性。

      (2)让类与类之间产生关系,有了这个继承关系才有了多态的特性

    (3)Java中只支持单继承,接口支持多继承

  3.2、继承是通过extends关键字来实现,并且继承支持多层继承,例如:

    class Grandfather{

      ...
    }

    class Father extends Grandfather{
      ...
    }

    class Son extends Father{
      ...
    }

  3.3、继承只支持单继承,不支持多继承,不然的话,比如run方法,继承了多个,不知道到底调用哪一个

  3.4、方法的覆盖

    具有继承关系的父、子类不存在变量之间的覆盖,只有方法的覆盖也就是:

    class Father{

      public void show(){

      System.out.println("father");

      }

    }

    class Son extends Father{

      public void show(){

        System.out.println("son");

      }
    }