zoukankan      html  css  js  c++  java
  • Java面向对象之静态

          本文由广州疯狂软件java培训分享:

      1静态可以修饰:成员变量和成员函数。

      什么时候定义静态变量(类变量):

      当对象中出现数据共享时,该数据被静态所修饰。

      对象中的特有数据要定义成非静态,存在于堆内存中。

      什么时候定义静态函数:

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

      eg:

      class Person

      {

      String name;

      public void show(){

      // 这中间没有使用name,则此函数show()可以定义成static,,,,

      }

      }

      2 每一个应用程序都有共性的功能,可以将这些功能进行抽象,独立封装,以便复用。

      eg:

      class ArrayTool{

      public void getMax(){

      }

      public void getMin(){

      }

      }

      class ArrayToolDemo{

      ArrayTool arrayTool = new ArrayTool();

      arrayTool.getMax();

      }

      虽然通过建立ArrayTool的对象使用这些工具方法,对数组进行操作,但是发现了问题:

      1 对象是用于封装数据的,可以ArrayTool对象并未封装特有数据。

      2 操作数组的每一个方法都没有用到ArrayTool对象的特有数据。

      如何让程序严谨?

      1 所以,这是可以考虑,让程序更严谨(这个程序是不需要ArrayTool对象的),可以将ArrayTool中的方法定义成static,直接通过类名调用即可。

      2 同时,将方法都静态后,可以方便使用,但是该类还是可以被其他程序建立对象的(即 ArrayTool arrayTool = new ArrayTool()是合法的),为了更为严谨,强制让类不能建立对象,可以通过将构造函数私有化完成。

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 相关阅读:
    彻底清除Linux centos minerd木马 实战  跟redis的设置有关
    linux 弹出光驱失败
    teamviewer "TeamViewer Daemon is not running
    linux 如何查找io的进程
    网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2?
    查看openssl的版本
    https单向认证和双向认证
    pem转换成der
    locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory
    mysql 有报错  ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
  • 原文地址:https://www.cnblogs.com/gojava/p/3602037.html
Copyright © 2011-2022 走看看