如何多次运行一个类?

我想多次运行一个课程,假设我有一个课程


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,抱歉,如果这是一个非常基本的问题


江户川乱折腾
浏览 206回答 2
2回答

慕容3067478

首先,在 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 并做一些基本的教程来更好地理解这门语言和它的概念,所以你可以在这里提出更具体的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java