(10)2017.8.9-面向对象(5)

在学习面向对象的最后,介绍两个关键字,第一个static

static是静态的意思,它的特点是:

1.static 是一个修饰符,用于修饰成员。 

2.static 修饰的成员被所有的对象所共享。

3.static 优先于对象存在,因为 static 的成员随着类的加载就已经存在了。  

4.static 修饰的成员多了一种调用方式,就可以直接被类名所调用 。 类名.静态成员 。 

5.static 修饰的数据是共享数据,对象中的存储的是特有数据。  

那它和成员变量到底有什么区别呢:

第一:两个变量的生命周期不同。 成员变量随着对象的创建而存在,随着对象的被回收而释放。 静态变量随着类的加载而存在,随着类的消失而消失。

第二: 调用方式不同。 成员变量只能被对象调用。 静态变量可以被对象调用,还可以被类名调用。 

第三:别名不同。 成员变量也称为实例变量。 静态变量称为类变量。 

第四:数据存储位置不同。 成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据. 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据.

static的注意事项 :

1.静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态) 
2.静态方法中不可以使用 this 或者 super 关键字。 
3.主函数是静态的

第二个关键字是final
在 Java 中声明类、属性和方法时,可使用关键字 final 来修饰,表示“最终” ,final 关键字为修 饰符。

使用的final有几大特性

(1)final 修饰的类不能被继承。提高安全性,提高程序的可读性。

(2)final 修饰的方法不能被子类重写。 

(3)final 修饰的属性为常量。一旦初始化后,不可再被赋值。习惯上,常量用大写字符表示。比如:final double PI=3.14; 但是若变量用 static final 修饰,他叫做全局常量。比如:Math 类的 PI 

final、finally、finalize()进行区分(会写一个专门的文章写他们的不同,现在先知道它们看上去差不多可是含义和用法却大相庭径)

你可能感兴趣的:(java开发)