如何多次上课?

时间:2018-08-08 20:03:55

标签: java android class

我想多次上一堂课,可以说我有一堂课

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 个答案:

答案 0 :(得分:2)

首先,在Stack Overflow答案中很难解决基本的Java和Android错误观念。 不是针对此类问题的,这就是为什么您会投票否决。因此,我会尽力为您提供帮助:

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

不。您可能由于Android的Activity类中的onCreate方法而感到困惑,对吧?但是构造器是Java中所有类的通用方法,而onCreate是特定于某些Android复杂类(例如Activity或Fragment)的方法。这是与这些类的生命周期相关的方法,您应该详细了解here

因此,在您显示的这个简单类中,不会在构造函数中调用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知识,并做一些基础教程以更好地理解该语言及其概念,因此您可以在此处提出更具体的问题。 Read here about classes, objects, constructors and more

答案 1 :(得分:1)

初始化时,您的onCreate函数将不会运行:

setTextClass hi = new setTextClass("hello");

相反,它将作为其构造函数运行(它不应具有返回类型,因为其返回类型是对象本身),即:

 public setTextClass (String text){
     this.text = text;
 }

第二个问题是文本变量,该变量仅存在于构造函数或setTextClass方法的范围内。因此,如果您想执行类似的操作,则需要创建并设置一个类变量。

似乎您需要做更多的学习,并仔细研究一下OOP设计和范围的例子。如果我是我,我会检查这些资源:

http://www.learnjavaonline.org/en/Objects

http://www.learnjavaonline.org/en/Functions