类的高级特性

来源:互联网 发布:ios必备软件2016 编辑:程序博客网 时间:2024/06/04 20:12

 

Java把内存分为栈内存和堆内存,栈内存用来存放一些基本类型的变量和数组及对象的引用变量,而堆内存主要用来放置对象的。

Static

静态表示的是内存的共享,就是它的每一个实例都指向同一个内存地址;把它改了它就不会变成原样。

特点:

1.       对于静态的东西,JVM在加载类时,就在内存中开辟了这些静态的空间;(类先被加载再创建)

2.       引用static的方法和属性,不需要和实例捆绑在一起,可以提高代码的运行效率

3.       Javamain()方法本身是static的,所以main方法的执行就是在没有产生新的实例的情况;

4.       如果要创建一个脱离于实例的变量或方法,那么用static是再好不过的;

5.       static可以不通过对象直接通过类调用;

static的方法不可调用其他的方法和属性,只能调用 静态的方法和属性。

 

静态属性:

类名.变量名;

修饰块:用{。。。。。。}划定的程序块;

可以用static修饰:static{}在类加载的时候开始执行

程序运行的顺序:

先静态后非静态,先父类后子类。

static方法中不能比任何方式使用thissuper

在继承的时候先初始化父类的静态变量,然后是子类;

静态类:通常一个普通类不允许声明为静态的,只允许内部类。

高级访问控制:

Public(公共):没有限制,开放的极端;

默认:只能在同一个包内访问;

Protect(受保护的):同包下可以访问,包外子类可以访问;

Private:只有自己类的内部可以访问,类中的私有成员子类也不能继承。

类:public和默认。

内部类可以访问外部类的所有成员,外部类不可以访问内部类的private