为什么静态函数中不能访问非静态成员?而我这代码可以 30

我知道我是传入了引用,但是自己写的代码还是没有读懂求大神每句帮忙解释下。publicclassTest{inta=1;Test(inta){this.a=a;}publi... 我知道我是传入了引用,但是自己写的代码还是没有读懂 求大神每句帮忙解释下。
public class Test{

int a = 1;
Test(int a){
this.a = a;
}
public static void ask(Test x){
x.say();
}
public void say(){
System.out.println("a="+a);
}
public static void main(String[] args){
Test c = new Test(2);
c.ask(c);
}
}
展开
 我来答
匿名用户
2015-10-04
展开全部
本来“静态函数中不能访问非静态成员”就是 为了让规则简单而失去了重要的细节,以至于从正确走向错误 的陈述。
缩句:本来“静态函数中不能访问非静态成员”就是错误的陈述。

非静态函数(面向对象中称为“方法”method)以 a.f(blahblah) 的方式调用,其中 a 代表一个对象,方法 f 可以用访问(读取和修改) a 的成员。静态函数通常以 Ty.f(blahblah) 的方式调用,其中 Ty 是类,因为点号的左边没有对象,所以不能访问“根本不存在”的对象的成员。
追问
别复制好吗?
追答
打了这么多字,被说成是复制的。换你会是什么心情
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式