Java入门:理解静态成员与对象共享

需积分: 0 0 下载量 170 浏览量 更新于2024-08-05 收藏 116KB PDF 举报
在Java编程语言中,"笔记day041"主要是围绕静态(Static)这一关键概念进行讲解。静态是Java中一个重要的特性,它用于定义那些不需要与对象实例关联的成员,可以在类级别上直接访问,无需创建对象即可使用。以下是详细的讨论: 1. 静态成员的由来: 当我们想在不创建对象的情况下使用某个类的功能时,可以使用静态成员。例如,在`Person`类中,`intage=0`和`String country="中国"`就是静态变量,可以直接通过类名访问,无需实例化对象。 2. 静态成员的概念: 静态成员不是属于任何特定对象的属性,而是属于整个类的共享资源。这意味着所有该类的实例都可以共享这些静态变量和方法。如果对静态变量进行修改,会影响到所有使用该变量的对象。 3. 静态成员的使用示例: 在`DemoStatic`类的`main`方法中,我们展示了如何访问和操作静态变量`Person.country`。首先,我们可以直接通过类名输出`Person.country`的值,然后创建两个`Person`对象`p1`和`p2`,分别修改各自的属性。然而,静态变量`country`的值会保持在`美国`,因为它是类级别的共享。 4. 静态成员与非静态成员的区别: 类成员(静态)和对象成员(非静态)之间存在优先级问题。类成员在对象创建之前就被初始化,且不受单个对象状态的影响。相反,对象成员是每个对象特有的,独立于其他对象。 5. 静态方法的调用: 类中的静态方法(如`Person.a()`)同样无需创建对象即可调用。在`DemoStatic`中,我们不仅通过对象`p1`调用了静态方法,还直接通过类名调用了`Person.a()`,两者都能正常运行。 6. 练习部分: 在`Demo`类中,`int number1=11`是非静态变量,而`static int number2=12`是静态变量。`showNumber1()`是非静态方法,`showNumber2()`是静态方法。练习可能涉及如何正确地在类和对象级别上访问和操作这些静态和非静态成员。 总结: 本篇笔记深入介绍了Java中的静态成员及其使用场景,包括静态变量、静态方法的特点、访问方式以及它们与非静态成员的差异。理解并熟练运用静态概念对于编写高效、组织良好的代码至关重要。在实际开发中,正确区分何时使用静态和非静态成员有助于优化代码结构,提高代码的可读性和维护性。