`
micro-feng
  • 浏览: 6534 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

java静态方法不能访问实例成员的分析

    博客分类:
  • java
阅读更多
  因为java静态成员是在类加载的时候初始化的,实例成员是在类实例化的时候或者说创建对象的时候初始化的。而调用静态方法的时候,实例成员可能还没有初始化,如果静态方法可以访问实例成员,那么就可能会访问不存在的变量或方法,所以静态方法只能访问静态成员不能访问实例成员,实例方法是可以访问静态成员和实例成员的,因为静态成员是先于实例成员存在的。同样的道理,在静态方法中是不能出现this,super等与对象实例有关的关键词的。
  静态方法的利弊,利:类和所有的对象实例共享一份数据,而不是每个对象单独享有数据的一个副本,节省空间;弊:生命周期过长,同时所能访问的成员受限。
分享到:
评论

相关推荐

    java笔记静态成员

    静态方法是指属于类的方法,它们不能被实例调用,可以被所有实例共享。静态方法可以被直接使用classname.methodname来调用,而不需要创建实例。 在上面的代码中,`public static void main(String [] args)`是一个...

    Java中的静态变量静态方法静态块与静态类.docx

    在一个静态方法中,除了局部变量外,能够访问的外部变量也必须是静态的,能够访问的外部方法也必须是静态的,实例变量和实例方法均不能访问。 静态方法通常是 public 的,作为工具类的工具方法出现。 例如: ```...

    静态成员与静态方法

    静态成员与静态方法 静态成员变量是一种特殊类型的成员变量,它可以在不创建类的...静态成员变量和静态方法是Java编程语言中两个重要的概念,它们可以在不创建对象实例的情况下使用,並且可以通过类名直接访问或调用。

    静态方法,静态成员变量的调用

    它们只能访问类中的静态成员变量和静态方法,不能访问实例成员变量或实例方法。这是因为在静态方法执行时,没有特定的对象实例,所以无法访问与特定对象相关的实例变量。相反,实例方法没有这样的限制,它们既可以...

    Java中的Static块与静态方法

    静态成员不依赖于任何特定的对象实例,而是与类本身绑定,这意味着无论该类有多少个实例,静态成员只会有一份拷贝。本文将深入探讨Java中的静态块与静态方法,解析它们的区别、联系以及执行顺序,帮助读者更全面地...

    java 利用反射获取内部类静态成员变量的值操作.docx

    2. **静态成员变量**:静态成员变量是类级别的变量,可以通过类名直接访问,不需要创建类的实例。 3. **反射**:反射是在运行时检查类、接口、字段和方法等的能力,通常用于实现动态代理或需要动态加载类的场景。 #...

    Java成员变量局部变量静态变量成员方法全局方法等概念的区

    局部变量不能在类的外部直接访问,也不能在其他方法中使用,除非将它们作为参数传递。 3. 静态变量(Static Variables): 静态变量是属于类而非类的实例的。这意味着无论创建了多少个类的实例,静态变量都只有一...

    Java中静态方法和非静态方法的区别.docx

    静态方法可以访问另一个类或同一个类的静态数据成员和静态方法,不能访问非静态方法和变量。此外,静态方法可以重写任何静态数据成员的值。 二、非静态方法 非静态方法可以访问静态数据成员和静态方法,也可以访问...

    Java静态方法和实例方法区别详解

    静态方法不能访问实例变量或实例方法,因为这些是与特定对象实例相关的。 - 实例方法:可以访问类的静态和实例成员。实例方法拥有当前对象的引用,因此可以访问其实例变量和调用其他实例方法。 举例说明: ```...

    实现易语言类静态数据成员的方法

    在易语言中,静态数据成员不能在类的实例化过程中直接初始化,而需要在类的代码段中使用`初始化`过程来设置初始值: ```易语言 .初始化 静态计数 = 0 // 初始化静态计数为0 ``` 访问静态数据成员时,不需要通过类...

    java-静态变量方法块

    静态方法不能访问非静态变量和非静态方法,因为这些成员是属于特定对象的。`EX3_1`中的`staticPrintA()`就是静态方法,它只能访问和操作静态变量`sa`。 非静态变量(实例变量)是每个类实例的私有属性,每个实例都...

    静态的魔力:Java中静态方法和变量的深度解析

    - **无法访问实例成员**:由于静态方法不属于任何特定实例,因此它们不能访问类的非静态成员。 - **示例代码**: ```java public class MathUtils { public static int add(int a, int b) { return a + b; } }...

    java中静态与非静态的区别

    - **静态方法**只能访问静态成员和静态方法,可以通过创建实例对象来间接访问实例成员和实例方法。 - **实例方法**可以直接访问实例成员和实例方法,也可以直接访问静态成员和静态方法。 2. **调用方式**: - **...

    java静态变量与方法.doc

    例如,在`staticExam2`中,静态方法`bb()`不能调用实例方法`aa()`,也不能直接访问实例变量`a`。 **二、静态成员方法与实例成员方法的区别** 1. **调用方式**:静态方法通过类名直接调用,如`staticExam3.bb()`,...

    java之中的静态变量与静态方法的继承与覆盖问题.doc

    - **访问限制**:静态方法只能访问静态成员变量和静态方法,无法直接访问非静态成员变量和方法。 - **不参与多态**:静态方法不受多态的影响,即使在子类中重写了父类的静态方法,调用时仍然根据声明类型来决定执行...

    Java 中的 static 使用之静态方法.docx

    - 静态方法不能直接访问非静态变量或方法,因为非静态成员是与类的实例关联的。如果需要在静态方法中使用非静态变量,需要先创建类的对象,然后通过对象来访问这些变量或方法。 - 普通方法可以在内部直接访问类的...

    JAVA中static方法的用法实例详解

    - 非静态方法(实例方法)需要通过类的实例调用,它们可以访问实例变量和非静态方法。 - 静态方法不依赖于实例,因此它们不能访问非静态方法和实例变量,但可以访问静态方法和静态变量。 6. **main方法**: - ...

    PHP中静态方法(static)与非静态方法的使用及区别.docx

    3. 访问限制:静态方法和属性不能直接访问非静态的成员,因为它们可能在没有实例的情况下被调用。 了解这些区别有助于优化代码设计,选择最适合的方法来处理不同场景下的问题。在实际开发中,合理使用静态和非静态...

Global site tag (gtag.js) - Google Analytics