声明变量,方法和类?

时间:2018-09-16 10:57:02

标签: java class variables methods variable-declaration

我目前正在学习Java,想知道我可以在变量,方法和类之前键入什么样的关键字?

例如,我可以声明一个变量,方法,类,如下所示:

public final int exampleVariable;

public static double exampleMethod () {}

public class exampleClass {}

这些代码还能写些什么?我只是想知道如何特别地声明变量,方法和类。请帮忙。

2 个答案:

答案 0 :(得分:0)

我不建议您以这种方式学习编程语言。我认为,按照教程或书并逐步学习关键字的方法,对您来说更有用。这是因为某些关键字非常普遍,而另一些关键字的使用却非常有限。一次了解所有这些对您没有多大帮助。

无论如何,如果您真的想知道类,方法和变量声明之前的内容,可以参考Java Language Specification。它以非常精确的方式描述了Java语言。例如,根据JLS第8.1节,类声明是这样的:

NormalClassDeclaration:
    {ClassModifier} class Identifier [TypeParameters] [Superclass] [Superinterfaces] ClassBody

由于您要问class之前可以做什么,所以我想您对{ClassModifier}部分感兴趣:

ClassModifier:
(one of) 
    Annotation public protected private 
    abstract static final strictfp

这意味着在单词class之前,ClassModifier中可能列出0个或多个事物。

请注意,此后还有一段文字描述了哪些修饰符组合会导致编译时错误。

有关方法,请参见8.4节。对于局部变量,这是第14.4节。对于字段,请参见第8.3节。

如果您对用来描述Java语法的语法感到困惑,请参阅第2.4节。

答案 1 :(得分:0)

像@Azhy一样,该网站用于解决特定问题,不提供教程。但是,话虽如此,我会尽力为您提供所需的信息。

公共/私人/受保护的

这些关键字可以应用于类,变量或方法。它们会更改变量的范围(即可以从中访问变量的位置)。这个方便的表是从以下堆栈溢出问题中提取的:What is the difference between public, protected, package-private and private in Java?

            │ Class │ Package │ Subclass │ Subclass │ World
            │       │         │(same pkg)│(diff pkg)│ 
────────────┼───────┼─────────┼──────────┼──────────┼────────
public      │   +   │    +    │    +     │     +    │   +    
────────────┼───────┼─────────┼──────────┼──────────┼────────
protected   │   +   │    +    │    +     │     +    │         
────────────┼───────┼─────────┼──────────┼──────────┼────────
no modifier │   +   │    +    │    +     │          │    
────────────┼───────┼─────────┼──────────┼──────────┼────────
private     │   +   │         │          │          │    

+ : accessible
blank : not accessible

静态:

static关键字只能应用于类内部的方法和变量。这意味着变量或方法仅创建一次,并且在类的所有实例之间共享。这允许在多个对象之间共享一个值,这意味着必须通过类而不是对象访问静态变量和方法。 注意:从技术上讲,类也可以是静态的,但前提是必须在另一个类声明中声明它们,即嵌套类

最终

此关键字只能应用于变量,方法和类。 最后一个变量是价值不变的变量。 最后一类是不能被子类化的类。 最终方法是不能被子类覆盖或隐藏的方法。

int / double / void / etc。

当应用于变量时,它们定义变量的类型。应用于方法时,这些方法定义了方法必须输出的类型(void表示该方法不返回任何内容,只能应用于方法)

最后,我确定还有很多我个人不知道的东西。我建议浏览以下列表:https://en.wikipedia.org/wiki/List_of_Java_keywords