为什么Main方法里可以调用println()方法 ????

清风步月 2017-01-26 01:40:03
加精
public static void main(String[] args) {
System.out.println("xxxxxxxxxx");
}
}

我记得静态方法里不能调用非静态的方法,可println()明明是非静态方法啊??out也就是个静态的引用而已啊。。

求大神帮忙详细解答下啊,感激不尽!
...全文
10492 108 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
108 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgyman 2020-02-27
  • 打赏
  • 举报
回复
关于这个问题的理解,我们先明确几点: 1.静态main方法中是不可以调用其他非静态方法的,除非new 对象().方法(比如:new Person().talk()). 2.类成员的加载顺序是:静态成员变量先于静态成员方法,静态成员方法先于非静态成员方法。 明确了以上两点,我们开始解释System.out.println: 1.out是System类的静态成员变量初始化为null,源码: public final static PrintStream out = null; 2.out变量通过native的set方法进行初始化赋值,姑且认为这个native方法内等同于new了一个PrintStream对象实例, 源码: private static native void setOut0(PrintStream out); 3.在main方法中调用PrintStream对象实例的println方法是符合上述明确的结论的第一条的,符合java语法规则.
Luckymoons 2019-04-25
  • 打赏
  • 举报
回复
静态方法可以通过静态实体对象调用非静态方法。
524524 2019-04-23
  • 打赏
  • 举报
回复
学习学习😄😄
yuxuan123987 2019-04-23
  • 打赏
  • 举报
回复
这个还是很不错的哟 看好你
qq_43783482 2019-04-21
  • 打赏
  • 举报
回复
看看看看,我就看看
liyu2474 2019-04-21
  • 打赏
  • 举报
回复
这个东西呃呃呃有
weixin_42468658 2019-04-20
  • 打赏
  • 举报
回复
直接就能调用啊
qq_33660882 2019-04-20
  • 打赏
  • 举报
回复
一个对象调用一个方法有什么好问的
qq_33660882 2019-04-20
  • 打赏
  • 举报
回复
一个对象调用一个方法有什么好问的
gyuhtr 2019-04-19
  • 打赏
  • 举报
回复
System.out.println不是静态方法?
tcytom 2019-04-18
  • 打赏
  • 举报
回复
我也觉得非常有疑问
360安全卫生间 2019-04-09
  • 打赏
  • 举报
回复
不知道啊
LSHong_AH 2019-04-09
  • 打赏
  • 举报
回复
不清楚不明白
两个人的怀恋 2019-04-08
  • 打赏
  • 举报
回复
暂时好像没有办法吧
,时休啊- 2019-04-01
  • 打赏
  • 举报
回复
过来看看大佬
回首不少年 2019-03-29
  • 打赏
  • 举报
回复
JDK的版本升级应该就可以吧
战栗龙卷 2019-03-25
  • 打赏
  • 举报
回复
为啥是非静态?你创建对象了吗?
qq_29554287 2019-03-24
  • 打赏
  • 举报
回复
学一下学习了
小成编程 2019-03-22
  • 打赏
  • 举报
回复
main继承Java.lang.类
「已注销」 2019-03-17
  • 打赏
  • 举报
回复
这应该是可以的吧
加载更多回复(88)

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧