zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第七章-static关键字-数据共享

    一.

    介绍一个新的关键字,并不陌生,static在写主函数的时候,经常使用到。

    static是一个关键字,同时也是一个修饰符。它到底有什么用呢?到底什么时候用呢?

    下面的截图中,刚开始对于描述类的书写是String name。并没有加上修饰符private,是为了方便调用,同时也没有书写,get,set两个固定的方法。(对于描述类的书写还是欠缺很多,前面讲解的内容没有深刻理解)

    我们观察这个源程序:程序是StaticDemo.java,程序是由两个类构成的,一个是Person类,一个是StaticDemo类。这两个类名起名也挺有意思,一个是描述,一个是创建。通过这两个类名,我们可以认识到,程序是对static的练习,里面用到的是person这个事物的对象。

    根据描述类的类名,我们也可以大致确定描述类中的成员变量和函数是个什么样的情况。

    对上面截图中的描述类进行分析,人这个事物或者类,他具有姓名和国籍两个属性,人有一个show功能来展现自己的姓名和国籍。

    在这里,country变量居然进行了赋值,之前从来没有过。这里这么做的原因是什么?

     

    对程序进行运行,结果如下。在描述类中,对国籍变量进行赋值,相当于提前固定了。

    现在对上面的例子进行扩展,如果在类中,创建更多的对象,这些众多的对象的name是不一样的,但是country是一样的。这就带来一个问题,堆内存中这么多相同的country变量存在,有点多余。

    现在的设想是将country变量放置在外面,每个对象使用的时候,直接到外面来提取一下(估计目的是为了节省堆内存的空间),把country变成所有对象共享的数据。

     怎么来实现这样的操作呢?把country变成所有对象共享的数据,这就需要关键字static。

    这个country数据可以称作对象的共享数据。每个对象中的name都不一样,我们称之为,对象的特有数据。对象内部封装的数据,都是它特有的数据。对象封装的不是name,是name所属的值。

    static修饰完的数据,是被对象共享的数据。

    →对象的数据共享问题。

  • 相关阅读:
    条件注释判断IE版本
    win7及以上系统打开chm空白或显示"无法打开"的2个解决方案
    复制和删除txt文件
    casperjs 抓取爱奇艺高清视频
    chrome扩展程序之http/https 报文拦截
    bootstrap 的 datetimepicker 结束时间大于开始时间
    Jquery EasyUI的datagrid页脚footer使用及数据统计
    Web应用程序在加入反向代理服务器的时候如何获得真实IP
    c#4.0 新特性 可选参数 可曾用过?
    Pyhon
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7663267.html
Copyright © 2011-2022 走看看