我理解这是指当前对象。所以,与其使用 objectname.fun(objectname.非静态成员),
为什么我不能使用 objectname.fun(this.nonstaticmember)
请参考下面的例子,并在最后看到最后两个评论。
public class Question
{
int data;
void myfun(int data)
{
System.out.println("data=="+data);
}
public Question(int data)
{
this.data = data;
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
{
Question question = new Question(10);
//question.myfun(question.data);//WORKS
question.myfun(this.data);//DOES NOT WORK
}
}
在java中,此关键字用于引用当前对象,但main是一个静态方法,在静态方法中此关键字没有意义。
public class Line {
public static void main(String[] args){
System.out.println(this);
}}
输出:编译时错误“非静态变量不能从静态上下文引用”。
main()
是一个静态方法(类方法),它不从对象运行。由于它在类上下文中,关键字<code>this<code>没有意义(它没有可引用的对象)。
正如您提到的<code>这个main中使用它(this
)。也请检查此链接。
问题内容: 我了解这代表调用方法的对象,并且静态方法未绑定到任何对象。但是在上述情况下,变量y也是静态的。 如果我们可以在类对象上调用静态方法,为什么不能允许静态方法设置类的静态变量。 此附加约束的目的是什么? 问题答案: 因为是指对象实例。静态方法的调用中没有对象实例。但是当然你可以访问你的静态字段(仅静态字段!)。只需使用 如果要确保获取的是静态字段,而不是某些具有相同名称的局部变量,请使用类
问题内容: 在这段代码中,当我使用 然后我的应用崩溃了,Logcat说 这是与此代码关联的XML文件 问题答案: 在这段代码中,当我使用TextView text =(TextView)getActivity()。findViewById(R.id.text1) 然后我的应用程序崩溃了,Logcat说这是由以下原因引起的:java.lang.NullPointerException:尝试在空对象引
请问这个为什么要用this啊,不是都在export default中吗? 我只知道this有代表当前类的意思,这个不太懂欸。目前做毕设在跟小白速成课,基础非常差,希望有好心人可以帮忙解答一下,谢谢啦。
问题内容: 当我使用关键字访问类中的非静态变量时,Java不会给出任何错误。但是当我不使用它时,Java会给出一个错误。为什么要使用? 我知道什么时候应该正常使用,但是这个示例与正常用法大不相同。 例: 问题答案: 首先声明变量,然后赋值。该类与此相同: 您无法执行此操作的原因是,在创建对象时尚未定义,但是对象本身(即)及其所有成员变量都存在。 这是每个的说明:
问题内容: 似乎几乎没有人意识到这一点,但是Java中的“ thisreference”是最终的。在正常的编程天中,我认为可以通过在自己的类中重新定义此引用来重新定义整个实例: 为什么此引用在Java中是最终的? 问题答案: 问题不在于它是参考,而是它本身根本不是参考。是一个 关键字 ,“表示一个值,该值是对为其调用实例方法或默认方法的对象的引用”(JLS§15.8.3)。 此外,从可以重新分配变
为什么我们不能决定让它不是静态的呢?它让我们做什么?