我不确定为啥,以及“静态”标签的作用[重复]
Posted
技术标签:
【中文标题】我不确定为啥,以及“静态”标签的作用[重复]【英文标题】:I'm unsure of why, and what the "static" tag does [duplicate]我不确定为什么,以及“静态”标签的作用[重复] 【发布时间】:2015-03-08 18:04:38 【问题描述】:我是 Java 编程新手(尽管我习惯于用 C、html 和其他一些语言编写代码(含糊不清))。
我正在尝试创建一个简单的 Hello World 程序,但我不确定为什么,以及“静态”标签的作用。我试图做一些研究,我想出静态标签使该方法立即作为一个实例工作,而不必“启动”它(不太了解它)。我想知道在哪里以及为什么要使用它。
另一方面,在编译时,我发现了如何让它执行,但我的一些朋友告诉我,我需要包含一个清单,并将其作为 .jar 运行,(我'米使用:
$ javac Potato.java
$ java Potato
)
作为说明,我想告诉你,我正在努力避免使用 3rd-party 软件来学习编程(使用标准的 Notepad++ 和 bash)。
谢谢;)
编辑:抱歉,这是我的第一个问题。
class Potato
static String textA = "Hello There";
public static void main(String[] args)
System.out.println(textA);
我得到了这段代码,并通过在 main 方法的内部和外部创建变量 textA 进行了一些混合。
【问题讨论】:
分享一些代码怎么样? 您可能需要阅读一些有关 Java 的书。恕我直言,Java 不是你可以通过尝试做某事并阅读一些小教程来学习的东西。这里有太多重要的概念和其他东西。而且即使你能用 Java 写一些工作代码,也不一定是好代码。 使用 notepad++ 和命令行是没有勇气的! 没有专业人士或工匠会故意这样削弱自己,如果你遇到问题,如果你使用了正确的工具,你会在这里找到很少的帮助。 @mazunki 如果你学会了如何调试一个程序,你会更了解它。 @JarrodRoberson 我强烈反对。 IMO 至少在短时间内了解 IDE 为您提供的内容很重要。如果不了解类路径、它如何与您的环境交互等,学习 Java 会更加困难。对于玩具,没有大量使用库的示例程序、文本编辑器和命令行是一个很好的起点。 【参考方案1】:方法上使用的static
修饰符允许您在其类而不是特定实例上调用此类方法。
如果你想知道为什么main
总是静态的,请看这里:Why is the Java main method static?
普通法
定义:
public Class ExampleClass
public void exampleMethod()
System.out.println("exampleMethod()");
用途:
ExampleClass exampleClassInstance = new ExampleClass();
exampleClassInstance.exampleMethod();
静态方法
定义:
public Class ExampleClass
public static void exampleMethod()
System.out.println("exampleMethod()");
用途:
ExampleClass.exampleMethod();
这同样适用于字段。如果您有一个static
字段,它将属于该类而不是单个实例。
例子:
public Class ExampleClass
public static int a = 1;
...
System.out.println(ExampleClass.a);
【讨论】:
我明白了,所以我可以使用 Normal 方法创建一个相同元素的多个实例,并且通过使用静态方法,我只使用“标准的旧唯一变量”?如果我是对的,我将如何创建另一个实例? 答主帮了大忙,谢谢。 (我也没有得到反对票) 请考虑方法上的形容词“正常”用于表示“没有修饰符”。您的问题表明您对“类实例”的概念没有清晰的理解。我在这里无法澄清,我建议您阅读一些基本的 Java 手册,以解决您对这个方向的疑问。 是的,我明白了。我会搜索一下,谢谢n.n @Numbers 这实际上是不正确的;你可以从一个实例中引用静态属性/方法,你只是不应该,因为它很混乱。您是正确的,因为您不能从静态上下文中引用实例属性,因为这将毫无意义。以上是关于我不确定为啥,以及“静态”标签的作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章