【发布时间】:2015-04-17 21:01:56
【问题描述】:
也许有些人以前发布过类似的内容,但很多问题有点复杂且难以理解,我想在不阅读 3 页无关代码的情况下了解我的问题的本质。我的问题是这样的:
当我尝试实例化我的类时,它告诉我它必须是静态的。我对此感到非常困惑。
package project0;
import javax.swing.*;
import java.util.*;
import java.awt.Button;
public class Project0 {
public static void main(String[] args) {
Test7 lucky7 = new Test7(); //here is where I am instantiating my class and it gives "nonstatic variable this cannot be referenced from a static context."
}
class Test7{
Test7(){
String str1 = "Hello";
changeString(str1);
System.out.println(str1);
}
public void changeString(String str2){
str2 = "Goodbye";
}
}
如果我将 test7 类更改为静态,它可以工作,但我觉得这与应该发生的情况相反,因为我认为静态类无法实例化。
编辑:我想我将静态误认为抽象 >.> 但在这种情况下,静态类与常规类有什么不同。还是有点糊涂。
请尽量让答案简单,以便我能理解
【问题讨论】:
-
我认为静态类无法实例化你为什么这么认为?
-
你在这里混了很多。首先,一次性发布您实际编译的代码。这可能与静态类无关,而与您在某处使用
this关键字有很大关系。 -
你认为问题是什么,@Makoto?
-
如果您要投票重新打开已关闭重复的问题,请先发表评论。我是来复习的。我不只是开车经过。
-
有很多我们没有被告知。充其量,
Test7是一个内部类,而不是静态类,如果它是在另一个类中声明的。应该如何实例化该类可能会造成混淆。
标签: java static instantiation