public class Class1{
public static boolean winningRecord(){
final int WINNING_RECORD;
return Class2.getPoints() > WINNING_RECORD;
}
}
class Class2{
int wins = 0;
public int getPoints(){
return wins; //More to it but to keep it simple I'll leave that out
}
}
现在我得到错误“non-static method conly be referenced from a static context...”,所以我将getPoints()设置为静态方法,同时将变量设置为静态,这样就可以工作了。但是在另一个打印对象的方法中,它就不起作用了(我相信这是因为static关键字的缘故)。
那么我的问题是,在所有这些之后,有没有一种方法可以调用一个方法,而不创建第二个类的实例呢?这是我的一般思想代码,它应该给你一个理解是怎么回事,如果不是,我会添加更多。
java中的一个关键概念是实例化的思想。类定义具有一种对象类型的所有规则。对象的每个实例将遵循相同的规则。例如,如果我定义
class Ball {
public void bounce() {
// lots of code here
}
}
那么系统就有了被称为ball
s的东西的代码,这些东西可以bounce
如果我想要两个球...
public class Main {
public static void main(String args[]) {
Ball beachBall = new Ball();
Ball soccerBall = new Ball();
beachBall.bounce();
beachBall.bounce();
soccerBall.bounce();
beachBall.bounce();
但我不能说
Ball.bounce();
因为那会给我的系统留下一个问题:“哪个球?”
static
方法和变量不与特定实例关联。
例如:
class Werewolf {
static boolean fullMoon = false;
static void setFullMoon(boolean isVisible) {
fullMoon = isVisible;
// code code code
}
void eatPerson(Person p) {
// code code code
}
}
应用于所有狼人的静态方法,因此在类中调用它:
Werewolf.fullMoon(true);
应用于特定狼人的非静态(实例)方法,因此在实例中调用该方法。
jeff.eatPerson(chuck);
杰夫是狼人。恰克就是他吃的人。试着忽略那些残酷的评论。我们都是从某个地方开始的。
问题内容: 我正在做作业,遇到了一些错误。在一个类中,我有此方法: 现在,我收到错误消息“无法从静态上下文中引用非静态方法…”,因此我将getPoints()设置为静态方法,并将变量也设置为静态,并且它可以正常工作。但是在另一种打印对象的方法中,它不起作用(我相信是由于static关键字)。 所以我的问题是,有没有一种方法可以在不创建第二个Class实例的情况下调用方法?这是我所拥有的一般构想代码
我有一个类,其中有一些静态方法和一些非静态方法,所以当我试图从静态方法访问非静态方法时,我会遇到一个著名的错误。每当我搜索这个论坛,我得到的解决方案,当有两个类,从一个你试图达到另一个。我的问题是,如果它们在同一个类中,如何从静态方法调用非静态方法? 我试着用 但是我的方法包含发送Intent和finish(),所以如果我创建的对象不是finish,就不起作用。
我需要从AsyncTask调用一个非静态方法 必须在onPostExecute中调用此方法 我用过: 编辑:我尝试过: 投掷:
我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。
问题内容: 例如,我正在尝试做这样的事情 我收到一条错误消息,告诉我无法从静态环境中引用非静态变量。因此,如果这是真的,我将如何在main内部使用非静态方法? 问题答案: 你不能 非静态方法是必须在Test类的实例上调用的方法。创建Test的实例以在您的main方法中使用:
问题内容: 我正在尝试使用此功能,但正在收到消息。 我可以简单地使其静态化,从而解决了我的问题,但是如果不走那条路线怎么办。我想保持方法非静态。 以下是一些代码,可让您了解发生了什么: 问题答案: 创建您的课程的实例 这是一个实例方法,它需要一个实例来访问它。请阅读有关类和对象的官方教程。