共有变量和共有方法是指在一个类中声明为 public 的成员变量和方法。这些变量和方法可以被该类的任何实例(对象)访问,以及任何其他类访问。
例如,如果有一个名为 Programb 的类,其中有一个 public 成员变量 weight 和一个 public 方法 Programb(),那么这些就可以被称为共有变量和共有方法。任何 Programb 类的对象或任何其他类都可以直接访问 weight 变量或调用 Programb() 方法。
在程序设计中,通常应谨慎使用共有变量和共有方法,因为它们可能导致封装性(encapsulation)的破坏,使得类的内部状态更容易被外部干扰或修改。如果确实需要提供对内部状态的访问,更好的做法是使用 getter 和 setter 方法,或创建专门的公共接口类来处理这些操作。在面向对象编程中,封装是一种重要的概念,它通过隐藏对象的内部状态并仅通过明确定义的接口与外界交互,来保护对象的状态并控制对对象内部数据的访问。封装有助于提高代码的安全性和可维护性。
然而,在某些情况下,可能需要提供对内部状态的直接访问,这时就可以使用共有变量。例如,如果一个类的设计要求外部代码能够读取或修改某个特定的内部状态,那么将相应的成员变量声明为 public 是合理的。
共有方法(也称为公有方法或公开方法)在面向对象编程中也很常见。这些方法通常用于执行类的主要功能或提供对内部状态的访问。由于它们是公有的,因此可以在类的任何实例上调用,也可以从其他类中调用。
需要注意的是,尽管共有变量和共有方法可以提供方便的访问方式,但过度使用它们可能会破坏封装性,使代码更难维护和调试。因此,在使用这些特性时,应仔细考虑其必要性,并尽量遵循良好的编程实践和设计原则。除了封装性,共有变量和共有方法还可能引入其他问题。例如,如果一个共有变量被多个线程同时访问和修改,可能会导致数据不一致或竞态条件(race condition)。同样,如果一个共有方法的行为依赖于类的内部状态,那么对内部状态的意外修改可能会影响该方法的行为。
为了解决这些问题,可以使用同步机制(如互斥锁)来确保线程安全,或者通过将共有变量和方法转变为私有或受保护的成员,并提供相应的公共接口来控制访问。这样,可以确保类的内部状态不会意外地被修改,并且类的方法行为不会受到其他线程的影响。
此外,对于共有方法的实现,应仔细考虑其行为是否与类的整体行为一致。例如,如果一个共有方法是用于修改内部状态的,那么它的实现应该确保状态的正确性和一致性。如果共有方法的实现较为复杂或涉及多个步骤,则可能需要将其拆分为多个私有方法,以提高代码的可读性和可维护性。
综上所述,共有变量和共有方法在面向对象编程中具有特定的用途,但应谨慎使用。在使用这些特性时,应仔细考虑其必要性、封装性、线程安全和行为的正确性。遵循良好的编程实践和设计原则,可以提高代码的质量和可维护性。
用 public 修饰的成员变量和方法称为共有变量和共有方法。
如:

class Programb
{  
public float weight; 
//weight 被修饰为 public 的 float 型变量. public float f(float a,float b) 
//方法 Programb是 public 方法.
{  
…
}
}

当我们在任何一个类中用类 Programb创建了一个对象后,该对象能访问自己的 public 变量和类中的 public 方法。
如:

class Programb2
{  void g()
{ 
Programb cat=new Programb(); cat.weight=23f;  
//合法. cat.Programb(3,4); 
//合法.
}
}

如果 Programb类中的某个成员是 public 类变量,那么在任何一个类中,也可以通过类名 Programb

来操作 Programb的这个成员变量.如果 Programb类中的某个方法是 public 类方法,那么我们在任何一 个类中,也可以通过类名 Programb来调用 Programb类中的这个 public 类方法。

less 公共变量_java