CodeGym /Java 课程 /Java 语法 /static 类和方法

static 类和方法

Java 语法
第 6 级 , 课程 7
可用

除了 static 方法,还有 static 类。我们稍后会更详细地讨论这些内容。现在,我们来看一个示例:”

示例:
public class StaticClassExample
{
    private static int catCount = 0;

    public static void main(String[] args) throws Exception
    {
        Cat bella = new Cat("贝拉");
        Cat tiger = new Cat("泰格");

        System.out.println("Cat 计数 " + catCount);
    }

     public static class Cat
    {
        private String name;

        public Cat(String name)
         {
            this.name = name;
            StaticClassExample.catCount++;
         }
     }

}

你可以根据需要创建任意数量的 Cat 对象。但这不适用于 static 变量。static 变量只能存在一个副本。”

“在类声明中使用 static 修饰符的主要目的是控制 CatStaticClassExample 类之间的关系。想法大致如下:Cat 类不链接到 StaticClassExample 对象,并且无法访问 StaticClassExample 类的实例(非 static)变量。”

“因此,我可以在类的内部创建类?”

“是的。Java 允许这样做,但现在不要过多考虑这个。等我将来进一步讲解时,你会了解得更清楚。”

“但愿如此,里希。”

评论 (8)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Gould 级别 10,Guangzhou,China
10 七月 2024
### 详尽笔记:Java 语法 - static 类和方法 #### 静态概念 - **静态方法**:不依赖于类的实例,可以直接通过类名调用。 - **静态类**:示例中未详细讨论,但Java支持在类内部定义类。 #### 示例代码分析 - **类名**:`StaticClassExample` - 包含一个静态变量`catCount`,用于统计`Cat`对象的数量。 - 包含`main`方法,创建`Cat`对象,并打印`catCount`。 - **静态内部类**:`Cat` - 定义在`StaticClassExample`内部,拥有自己的私有变量`name`。 - 构造函数接收名字参数,并在创建对象时递增`catCount`。 #### 静态变量特点 - `catCount`是静态的,意味着它属于`StaticClassExample`类,而非任何特定实例。 - 无论创建多少个`Cat`对象,`catCount`始终只有一个副本。 #### 静态内部类特点 - `Cat`作为静态内部类,可以独立于外部类的实例存在。 - 它不依赖于`StaticClassExample`的实例来访问。 #### 作者对话要点 - 作者提到将在未来更详细地讨论静态类和方法。 - 暗示了Java允许在类内部创建类,但具体细节将在后续课程中讲解。 #### 示例代码 ```java public class StaticClassExample { private static int catCount; // 静态变量,用于计数 public static void main(String[] args) { Cat bella = new Cat("贝拉"); Cat tiger = new Cat("泰格"); System.out.println("Cat 计数: " + catCount); // 打印Cat对象的数量 } public static class Cat { private String name; public Cat(String name) { this.name = name; StaticClassExample.catCount++; // 递增Cat对象计数 } } } ``` #### 总结 - 静态方法和变量属于类本身,不依赖于任何实例。 - 静态内部类提供了一种在类内部定义类的方式,它们可以有自己的属性和方法,且不依赖外部类的实例。 - 静态变量在整个类中只有一个副本,所有实例共享。 "依赖"在这里指的是静态变量`catCount`与`StaticClassExample`类的关系,而不是与类的实例的关系。简单来说,`catCount`是类的一部分,不随实例的创建而复制,所有实例共用这一个变量。
KAI 级别 22,Wenzhou,China
8 三月 2023
静态内部类本质上就是静态方法
23 七月 2022
7/23
kqhasaki 级别 23,Daxi,Taiwan, Province of China
4 八月 2021
之前听过YouTube尚硅谷的网课,里面讲到了,在实际开发中,应当尽量避免使用内部类。它并不是一个好的编程习惯。希望在后续的学习中可以验证这条经验的正确性。
qksuki 级别 6,Fairfield,United States
8 七月 2022
mark,wait to reply
Holiday0TB 级别 8,China
7 四月 2021
得劲嗷!
mikejason 级别 7,中国
1 九月 2020
在类声明中使用 static 修饰符的主要目的是控制 Cat 和 StaticClassExample 类之间的关系。想法大致如下:Cat 类不链接到 StaticClassExample 对象,并且无法访问 StaticClassExample 类的实例(非 static)变量
冰凌冰 级别 7,China,Shandong
19 五月 2020
Cat 类不链接到 StaticClassExample 对象,并且无法访问 StaticClassExample 类的实例(非 static)变量。 即创建StaticClassExample对象时不会创建Cat对象。