社区
Java SE
帖子详情
初学JAVA,由“无法从静态上下文中引用非静态方法”引出的疑问
聆道
2012-10-10 01:12:19
我在主函数里调用公共类的其它函数(没用static修饰)时显示错误“无法从静态上下文中引用非静态方法”,但当我把方法放到另一个类中,创建对象再调用,却又没这样提示了,是不是说明“无法从静态上下文中引用非静态方法”这样的情况只是针对同一个类里面的?不在同一个类里面就不用考虑static的问题了?混乱了。。。。
...全文
4361
8
打赏
收藏
初学JAVA,由“无法从静态上下文中引用非静态方法”引出的疑问
我在主函数里调用公共类的其它函数(没用static修饰)时显示错误“无法从静态上下文中引用非静态方法”,但当我把方法放到另一个类中,创建对象再调用,却又没这样提示了,是不是说明“无法从静态上下文中引用非静态方法”这样的情况只是针对同一个类里面的?不在同一个类里面就不用考虑static的问题了?混乱了。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大数据新鸟
2012-10-11
打赏
举报
回复
1
如果你在本类中,先实例化该类,再用该类的对象来调用就不会出错。
halfsuccess
2012-10-10
打赏
举报
回复
1
只要记住这一点:
用statci修饰的成员是属于类的,在static的方法里可以用类名直接调用;
不用statci修饰的成员是属于具体实例对象的,需要用对象名调用,且在static的方法里不可以调用。
halfsuccess
2012-10-10
打赏
举报
回复
楼主,你好。因为静态方法的调用不是通过实例对象进行的,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法,只能访问方法体内的局部变量、自己的参数和静态变量。所以你在在static的主函数里调用非static的方法时肯定报错。所以你把方法放到另一个类,创建对象再调用,不会出错,因为你这个方法不是静态的,即不是属于类的,而是属于具体的一个实例对象的,用对象调用那当然不会错咯!
元心
2012-10-10
打赏
举报
回复
静态方法不需要该方法的类的实例即可,因此不能使用在静态方法中引用非静态方法。
sailor_bzh
2012-10-10
打赏
举报
回复
“无法从静态上下文中引用非静态方法”这个错误是为了避免,当你在静态方法里调用非静态方法时,非静态方法所属的类可能还有没有被实列化。因为要使用非静态方法,必须实例化它所属的类,而使用静态方法不需要去实例化它所属的类。这才是根本原因吧。跟在不在一个类里无关
nmyangym
2012-10-10
打赏
举报
回复
我就会笨办法记:
只要不是static修饰的方法,必须要通过对象进行引用。在非静态方法里,可能省略了(this)。在静态的方法里,看看有没有你这个方法所在类的对象。没有肯定报错。
liuwons
2012-10-10
打赏
举报
回复
这个。。。真的没什么好说的了
cs767976639
2012-10-10
打赏
举报
回复
项目启动时候先加载静态的东西,你静态的方法中要调用静态的,同一个类中没有实例化当然不行,你在不同类中
是实例化以后调用当然就不报错
2、深入探索
Java
编程:从基础到高级应用
本文深入探讨了
Java
编程从基础到高级应用的各个方面。内容涵盖
Java
编程概述、对象导向编程的核心概念、程序控制流程、初始化与清理机制、类的复用与多态特性、对象存储与异常处理机制、I/O系统与运行时类型识别、GUI与多线程编程,以及分布式计算技术。通过循序渐进的讲解与实例演示,帮助读者全面掌握
Java
编程的核心技能,适用于
初学
者与进阶开发者。
Java
9 编程蓝图(一)
原文:zh.annas-archive.org/md5/EFCA429E6A8AD54477E9BBC3A0DA41BA 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 世界已经等待
Java
9 很长时间了。更具体地说,我们一直在等待
Java
平台模块系统,而
Java
9 终于要推出了。如果一切顺利,我们最终将拥有真正的隔离,这可能会带来更小的 JDK 和更稳定的应用程序。当然,
Java
9 提供的不仅仅是这些;在这个版本
中
有大量的重大变化,但这无疑是最令人兴奋的。话虽如此,这本书并不是一
java
后端面试大全,
java
后端面试宝典
后端全面知识点学习,
java
,redis,数据库
Java
JVM:自定义类加载器原理与应用
在当今的软件开发领域,
Java
虚拟机(JVM)作为
Java
程序运行的核心环境,其内部机制对于理解
Java
程序的行为至关重要。在众多JVM的核心知识点
中
,自定义类加载器是一个不容忽视的部分。想象一下,在一个大型企业级应用
中
,类加载器负责将
Java
类文件加载到JVM
中
,以供程序使用。然而,当系统需要处理特定类型的类文件,或者需要隔离类加载环境以避免类之间的冲突时,标准类加载器可能
无法
满足需求。自定义类加载器应运而生,它允许开发者根据特定的需求,自定义类加载逻辑。
「JVM」
Java
类加载机制与双亲委派模型深度解析
摘要:本文以上帝视角详细剖析了
Java
类从字节码到内存加载的完整生命周期,包括加载、链接、初始化三个阶段。深入解析了JVM类加载机制
中
的双亲委派模型及其打破场景,探讨了自定义类加载器的应用场景与实现原理。最后阐述了JIT编译器的分层优化策略,包括逃逸分析、方法内联等关键技术。通过外卖系统等真实案例,揭示了类加载机制对系统性能的深远影响,为开发高性能
Java
应用提供了底层原理支持。全文以生动类比结合技术深度,系统性地呈现了
Java
类加载与执行的完整技术栈。
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章