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

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

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

相关推荐

    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经典面试题.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编程基础,应用与实例

    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范例开发大全

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

    JAVA复习资料

    22、在Java程序中定义的类有两种成员: 静态成员 、 实例成员 。 23、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 main 方法的类;在...

    《Java程序设计案例教程》教学课件05深入Java面向对象.pptx

    04 掌握成员方法(实例方法、静态方法)的定义和使用,以及成员方法重载的概念。 06 掌握构造方法(隐式、显式)的定义和使用,以及构造方法重载的概念。 07 掌握this关键字的使用。 08 了解基本数据类型变量和引用...

    JAVA 范例大全 光盘 资源

    第21章 Java程序综合案例:教务处管理系统 705 21.1 登录界面的设计与代码实现 705 21.2 功能选择界面的设计 708 21.3 学生信息系统界面的设计 716 21.4 教师信息系统界面的设计 727 21.5 领导信息系统界面的...

    Java零基础-this关键字.md

    此外,还将探讨this关键字与静态成员、方法参数和方法重载之间的关系。 能学到什么: 理解Java中this关键字的含义和作用。 掌握this关键字在实例方法和构造方法中的使用方法。 了解this关键字与静态成员、方法参数...

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象的概念和 Java 实现-2 回顾 类是具有相同属性和行为的一组对象的 集合 , 对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class 来定义,类的变量和方法可被该类的实例访问,...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    对象的使用包括引用对象的成员变量和方法,通过运算符·可以实现对变量的访问和方法的调 用,变量和方法可以通过设定一定的访问权限(见下面的例子)来允许或禁止其它对象对它的 访问。 我们先定义一个类 Point。 例子...

    走进Java语言中的方法绑定.pdf

    对于继承关系复杂的类层次结构,访问对象的实例成员和访问类的静态成员,以及在对象的实例方法或类的静态方法中访问其它静态成员或动态成员时,如果不搞清楚静态绑定和动态绑定的规律,往往容易出现意想不到的结果,...

    JAVA面试题最全集

    被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 ...

Global site tag (gtag.js) - Google Analytics