Java static(暂无static代码块内容)

static 用于修饰成员变量和成员方法,其修饰的成员在内存中存放在方法区中。

static的特点:

①随着类的加载而加载,随着类的消失而消失。就是在加载类的时候,static修饰的成员就会在方法区中存在。

②优先于对象的存在。因为static修饰的成员是随着类的加载而加载,而对象时在new时才存在。

③被所有对象所共享。

④可以直接被类名所调用。 可以这样调用:类名.static修饰的成员

 

static使用的注意事项:

①静态方法中只能访问静态成员,不能使用this,super关键字    

原因:因为static修饰的方法是随着类的加载而加载,当执行静态方法的时候,并没有类的对象,所以在static方法中调用“未声明”

           静态成员是不能运行成功的。所以静态方法中只能访问静态成员。

static的使用情况:

 

①用static来修饰成员变量:

对象中出现共享数据的时,该数据定义成静态变量,对象中的特有数据定义成非静态成员。所谓的共享数据:就是共有的,不需要更改的

②用static来修饰函数:

当函数内部没有访问到非静态数据(对象特有数据),该功能可以定义成静态成员

例如:

/**

该类只限在中国使用: 有一个年龄/姓名、所在城市、所在国家

并有一个;对比自己和其他人年龄的功能和比较两个数的大小的功能

*/

class Person

{

       //在创建一个Person对象时,不可能年龄、姓名、城市,都是一样的.所以不属于共享数据所以定义成非静态变量

        int age ;//年龄

        String name;//姓名

        String city;//城市

 

        //因为该类只限在中国实用,所以只要new Person()的就是他所在的国家就是中国。所以country不需要在实例化的时,每次都赋一样的值。

        static String country="China";

       

       //该功能是比较年龄:因为比较的一个对象时自己,所以访问到了该对象的特有数据age变量。定义成非静态方法

       public bool compareAge(Person otherPerson)

       {

               return this.age==otherPerson.age;  

        }

        //该功能是对比两个数据的大小。方法体中并没有调用该对象的任何特有数据,只是对两个数进行比较。所以定义成静态成员

       public static bool compareNum(int num1,int  num2)

       {

               return num1==num2; 

        }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值