黑马程序员技术交流社区

标题: 静态函数什么时候使用 [打印本页]

作者: bulala    时间: 2015-12-14 19:52
标题: 静态函数什么时候使用
要从两方面下手:因为静态修饰的内容有成员变量和成员函数。

什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。对象中特有的数据要定义成非静态存在于堆内存中。

什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。

class Person
{
        String name;//成员变量,实例变量

        static String country = "CN";//静态的成员变量,类变量

        public void show(){
                System.out.println("name="+name+",country="+country);
        }
}

class StaticDemo
{
        public static void main(String[] args)
        {
                Person p1 = new Person();
                /*
                p1.name = "zhangsan";

                p1.show();

                Person p2 = new Person();
       
                p2.name = "lisi";

                p2.show();
                */

                System.out.println(p1.country);

                System.out.println(Person.country);
        }
}



作者: 王晓亮    时间: 2015-12-14 20:37
{:2_32:}{:2_33:}{:2_32:}{:2_32:}!!!!!!
作者: Jerson_ZF    时间: 2015-12-14 21:04
Person类中的name是每个对象都有的属性,而且每个对象都不一样,因此不能定义为静态变量
作者: 队长别开枪是我    时间: 2015-12-14 23:43
可以  顶一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2