类的属性分为普通属性和静态属性,statice修饰的全局变量叫静态变量,也叫类变量,静态属性
静态变量和普通属性的区别
1.普通属性包含在对象之中,不同对象之间普通属性彼此独立,改变一个对象的属性值,和别的对象没有关系,而静态属性是所有对象的共享属性,改变静态属性会影响所有的对象
2.静态变量在类加载时产生,常驻内存,在关闭虚拟机时销毁,而普通属性随对象创建后产生,随对象销毁而销毁
3.静态变量在类加载时完成初始化 普通属性在创建对象时完成初始化,初始化规则 int -- 0;double -- 0.0; 引用类型 -- null;每创建一个数组,该对象的普通属性都会做初始化,但是静态变量不会因为产生对象而重新初始化
4.普通属性跟随对象放在堆空间,静态属性存放在静态区中
5.普通属性需要依赖于对象访问,而静态属性的访问无需依赖对象,所以,普通属性只能用对象.的方式访问,而静态属性用对象.和类名. 都可以访问 并且 null值访问普通属性会抛出空指针异常,而null访问静态属性,会直接输出静态属性的值
类与类的关系
依赖关系(use-a)一个类是另一个类的方法参数,返回类型,方法局部变量
聚合关系(has-a) 一个类是另一个类的属性,是整体和部分的关系
就近原则
在方法中访问变量时,优先访问该方法中的局部变量,如果该方法中不存在该局部变量,这时,会访问该对象的属性