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楼。

原文地址:https://www.cnblogs.com/gojava/p/3602037.html