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

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

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

相关推荐

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

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

    Java学习代码实例 JAVA基础.rar

    在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。 static用法 5、八大基本类型 byte1 short2 int4 long8 float4 double8 char1 bool1bit

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

    主要介绍了JAVA中static方法的用法,结合实例形式较为详细的分析了Java中static方法的功能、使用技巧与相关注意事项,需要的朋友可以参考下

    Java的内部类讲解案例代码(成员内部类、局部内部类、匿名内部类、静态内部类、外部类访问四种内部类、其他类访问四种内部类...)

    内部类的作用域仅限于其外部类,可以访问外部类的成员,同时又能保护类的封装性。 目标: 通过这个源码资源,你将学会以下内容: - 内部类的定义和语法 - 如何在外部类中访问和操作内部类 - 不同类型的内部类(静态...

    java基础案例与开发详解案例源码全

    1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 ...

    Java中的方法和变量在继承时的覆盖问题

    另外静态方法不能覆盖父类的实例方法,而静态变量却可以隐藏父类的一个同名实例变量,同样,实例方法不能覆盖父类的同名静态方法,而变量却可以隐藏父类的同名变量成员,不论父类的这个变量成员是类变量或者是实例...

    Java开发技术大全(500个源代码).

    differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 hasConstructor.java 拥有构造器的类 hasFinalFun.java 拥有最终方法的类 hasRecall.java ...

    JAVA 面向对象程序设计第2章 面向对象进阶.pptx

    2.2.1 使用this关键字引用成员变量和成员方法;2.2.2 解决实例变量与局部变量同名的问题;2.2.2 解决实例变量与局部变量同名的问题;2.2.3 学生实践练习;2.2.3 学生实践练习;2.3 隐藏和封装;2.3 隐藏和封装;2.3.1 封装;...

    Java岗面试核心MCA版.pdf

    2. 静态方法和实例方法的区别:静态方法是类的方法,而实例方法是对象的方法。 内部类 1. 内部类的分类:静态内部类、成员内部类、局部内部类、匿名内部类。 2. 内部类的优点:内部类可以访问外部类的私有成员...

    Java经典面试题.pdf

    静态方法无法访问非静态成员。 4.什么是Java的final关键字? final关键字用于修饰类、方法和变量。 修饰类:被final修饰的类无法被继承。 修饰方法:被final修饰的方法无法被子类重写。 修饰变量:被final修饰...

    JAVA笔记.zip

    不能访问实例成员 "> 静态变量 实例化前初始化 类装载时分配空间 多个对象共享同一内存空间 不能被垃圾收集线程收集 静态代码块 装载时运行 在main 之前 只运行一次 下次类再装载或创建对象时不运行 静态...

    NDKDemo.zip

    一个NDK案例项目, 包含了Java调用 NDK C++层的几种解决方案( Java调用单个C++文件中的某个...3.native C++层代码访问Java静态方法; 4.native C++层代码访问Java非静态方法; 5.native C++层代码访问Java构造函数;

    Java期末考试习题库(选择题+填空题+改错题学生).pdf

    Java 中的方法可以分为静态方法、实例方法和抽象方法。final void aFinalFunction(); 是一个最终方法,该方法不能被子类继承和重写。 7. main 方法 main 方法是 Java Application 程序的入口点,main 方法的方法头...

    java基础第七章内部类与异常类.doc

    匿名类的特点是:它可以访问外嵌类中的成员变量和方法,但它的类体中不能声明静态成员变量和静态方法。匿名类一定是内部类,它可以直接使用父类的构造方法来创建对象。 在 Java 中,我们可以使用 throw 关键字来抛...

    java编程基础,应用与实例

    5.7 成员与静态方法的关系 71 5.8 包与导入 72 5.9 访问控制符 74 5.10 重载 77 5.11 构造函数 79 5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固练习 85 第6章 数组 86 6.1...

    Java语言程序设计(郑莉)课后习题答案

    * 实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法。 类的访问控制符 * 类的访问控制符只有 ...

    JAVA学习笔记.pdf

    static表示成员方法是静态的,abstract表示成员方法是抽象的,final表示成员方法不能被子类隐藏和覆盖,native表示成员方法是本地方法,strictfp表示成员方法中的浮点数运算必须遵守IEEE754标准,synchronized表示...

    南理工JAVA期末试卷

    在 Java 中,public 是最宽松的访问控制修饰符,任何类都可以访问 public 修饰的成员变量或方法。 9. 面向对象特性 在 Java 中,封装性是面向对象的基本特性之一。封装性体现了“隐藏信息”的特点,即将类的内部...

    java中public、protected、默认、private关键字

    Java 中的访问修饰符是 Java 语言中一种基本概念,用于控制类、方法、变量、构造方法等成员的访问权限。 Java 中有四种访问修饰符:public、protected、默认(default)和 private。这四种修饰符的作用域从大到小...

    java范例开发大全

    实例154 使用静态成员变量计算内存中实例化的对象数目 239 实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂...

Global site tag (gtag.js) - Google Analytics