为了账号安全,请及时绑定邮箱和手机立即绑定

如何多次运行一个类?

如何多次运行一个类?

江户川乱折腾 2021-07-06 09:11:00
我想多次运行一个课程,假设我有一个课程public class setTextClass {    public void setTextClass (String text){        this.text = text;    }    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        textview.setText(text);    }    public void run{        textview.setText(text);    }}所以,正如我所见,如果我开始上课:setTextClass hi = new setTextClass("hello");onCreate 上的代码会正确运行吗?(这是我的第一个问题)然后,如果我运行代码:hi.run()run 方法上的代码将被执行,并且还将传递在初始化时分配的文本变量?。这是我的第二个问题。我正在学习 Java,抱歉,如果这是一个非常基本的问题
查看完整描述

2 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

首先,在 Stack Overflow 答案中很难用基本的 java 和 Android 误解来解决问题。SO 不是针对这类问题而设计的,这就是为什么您会得到反对票的原因。所以,也就是说,我会尽力帮助你:


第一个回答:“onCreate 上的代码会正确运行吗?(这是我的第一个问题)”


不。你可能因为onCreateAndroid 的 Activity 类的方法而混淆了,对吧?但是构造函数对于java中的所有类都是通用的,而onCreate对于某些Android复杂类,如Activity或Fragment ,它是一种特定的方法。它是与这些类的生命周期相关的方法,您应该在此处阅读更多相关信息。


因此,在您展示的这个简单类中,不会在构造函数中调用 onCreate(除非您在构造函数中显式调用它)。您应该将文本分配给构造函数中的 textView。


第二个问题:“run 方法上的代码将被执行,并且还会传递在初始化时分配的文本变量?”


是的,它将运行并使用分配给this.text构造函数的变量。但是,您缺少此全局变量的声明才能使其正常工作:


public class setTextClass {


    private TextView textView;

    private String text; // You have to declare your global variables here


    public void setTextClass (TextView textView, String text){ // You should pass your TextView in the constructor and assign it to your global variable, so it's not null when you assign text to it;

       this.textView = textView;

       this.text = text;

       textview.setText(text); // Moved from your onCreate method to the constructor

    }


    public void run{

        textview.setText(text);

    }

}

我希望我能把自己说清楚,但你应该学习更多的 Java 并做一些基本的教程来更好地理解这门语言和它的概念,所以你可以在这里提出更具体的问题。


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 205 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信