属性,按是否使用static修饰,又分为:静态属性和非静态属性(实例变量)
1.实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。
当修改其中一个对象中的非静态属性时,不会导致其它对象中同样的属性值的修改。
2.静态变量:我们创建了类的多个对象,多个对象共享一个静态变量。通过某一个对象
修改静态变量时,会导致其他对象调用此静态变量时,是修改了的。
其他说明:static修饰属性其他说明
静态变量随着类的加载而加载
静态变量的加载要早于对象的创建。
由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。
3: 类变量 实例变量
类 yes no
对象 yes yes
静态属性举例:Ststem.out;Mith.PI;
静态方法中,只能调用静态的方法或属性
非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性
4.static注意点:
在静态的方法内,不能使用this关键字、super关键字
关于静态属性和静态方法的使用,大家都从生命周期的角度去理解。
5.开发中如何确定一个属性是否要申明为static?
>属性可以被多个对象共享,不会随着对象不同而不同。
>类中的常量也常常申明为static
开发中如何确定一个方法是否要申明为static
>操作静态属性的方法,通常设置为静态的
>工具类中的方法习惯上申明为静态的。比如Math、Arrays、Collections
public class StaticTest {
public static void main(String[] args) {
Chinese c1=new Chinese();
c1.name="yly";
c1.age=18;
c1.nation="CNA";
Chinese c2 = new Chinese();
c2.name="ywy";
c2.age= 18;
c2.nation="China";
System.out.println(c2.nation+c1.nation);
}
}
class Chinese{
String name;
static String nation;
int age ;
}



