”声明为static的方法不能访问非static类成员“这句话到底怎么理解? 既然“声明为static的方法不能访问非static类成员”那我在一个public static void main(String args[])方法中为何却可以通过对象名加点(.)的方式调用类中的非static方法呢?同理可以用对象名加点的方式调用实例变量? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String args[])方法中为何却可以通过对象名加点(.)的方式调用类中的非static方法.....不可能 声明为static的方法不能[直接]访问非static类成员必须通过实例名.成员名的方式....不用较真字眼,理解意思为重喵~`` “声明为static的方法不能访问非static类成员”是指在static的方法中不建立对象而访问非static类成员 和这句话对应的:非static方法能[直接](也就是this.成员名或者成员名)访问非static类成员 "声明为static的方法不能访问非static类成员"这句话是针对自己的类来说的,在没有创建任何对象之前。 简单的说就是,声明为static的方法 调用其他的非static类成员时,必须该非static类成员已经实例化或是 static方法才可以。换句话说,就是必须事先 就有这个 方法的存在才能在static里调用。你不能调用一个未实例化的方法 static意味着是类相关的,static的方法或语句块不能调用非static的成员只能通过对象调用(也就是楼主说的对象点来调用)举个例子吧public class Foo{int i=0;static{int j=i+1;//这里不能调用飞static的变量i}static{Foo f = new Foo();int j=f.i+1;//通过对象点可以调用}} java多线程小问题 Java Word PDF PPT 读写 Java网络问题…连不上阵郁闷…求解……急啊!! 归并排序,哪出错了? system 这道继承题输出什么,大家看题目给答案,不准编译! 急,高分求教!!! 哪里有installwhere6下载啊!雪天裸求 怎样将一个XML文件转换成一个HASHMAP? socket中如何正确使用BufferedOutputStream,BufferedInputStream 那位兄弟愿意帮助我这个新手回答一下这个问题? assert 一个简单的问题不解
必须通过实例名.成员名的方式....不用较真字眼,理解意思为重喵~``
非static方法能[直接](也就是this.成员名或者成员名)访问非static类成员
这句话是针对自己的类来说的,在没有创建任何对象之前。
或是 static方法才可以。换句话说,就是必须事先 就有这个 方法的存在才能在static里调用。你不能调用一个
未实例化的方法
举个例子吧public class Foo{
int i=0;
static{
int j=i+1;//这里不能调用飞static的变量i
}
static{
Foo f = new Foo();
int j=f.i+1;//通过对象点可以调用
}
}