我对Java中的关键字感到好奇。
我是否应该将它理解为使用每个用户定义类的实例创建的各种方法的类,例如最终的“超级”类?它是如何在Java中定义的?
例如,我遇到了这个:
class A {
class B {}
}
A a = new A();
B b = a.new B();
这似乎每个类都有关键字new
作为自己的方法。我很感激有关如何在Java中定义/实现关键字的任何见解。
答案 0 :(得分:2)
课程没有关键字" new"作为个人方法或类似的东西。 Java语言本身具有关键字" new"。换句话说,你把" new"在代码中,编译器会识别它并实例化一个新的Object。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.9-此链接是Java语言的文档,在3.9节中显示了所有关键字。
编辑: 就像其他人说的那样,你问题中的代码片段表示内部类,例如,像http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html中所说的那样
public class ShadowTest {
public int x = 0;
class FirstLevel {
public int x = 1;
void methodInFirstLevel(int x) {
System.out.println("x = " + x);
System.out.println("this.x = " + this.x);
System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
}
}
public static void main(String... args) {
ShadowTest st = new ShadowTest();
ShadowTest.FirstLevel fl = st.new FirstLevel();
fl.methodInFirstLevel(23);
}
}
以下是此示例的输出:
x = 23
this.x = 1
ShadowTest.this.x = 0
这表明内部类或类B(FirstLevel)类似于或类似于外部类的变量和方法(因为它与外部类的实例相关联)的类A(ShadowTest)。 / p>
答案 1 :(得分:0)
作为所有语言,Java都有关键字。这里new关键字用于初始化目的。其中A类的对象在第一个语句中初始化。在第二个陈述中,B类的对象用A类的对象A
初始化答案 2 :(得分:0)
最简单的字词中的关键字是the predefined words which have some predefined specific meaning and cannot be used for any other purpose
。
Check full list of keywords in Java
现在我要详细说明这个问题,我会举两个关键字int
和float
。 int
关键字用于定义整数变量,这就是关键字int
可以执行的操作。我们不能将它用于任何其他目的。同样,float
关键字可用于定义浮点数/十进制数变量,没有别的。
int a = 10;
我定义了整数类型的变量a
。
int float = 20;
< -----它不起作用。
在这个例子中,我试图声明一个名为float
的整数类型变量,这是不可能的,因为float it self是一个关键字,所以它不能用作标识符。
如果我们谈论new
关键字,那么它用于创建任何类的对象,或者我更准确地说,new
关键字为内容分配内存运行时间。
NOT 就像每个类都有自己的new
关键字一样。 new
是Java的关键字,因此任何Java类都可以使用它。
澄清,
A a = new A();
B b = a.new B();
在第一个语句中,我们创建了一个A类对象,而B类是A类的嵌套类,所以我们不能直接访问它。因此,为了访问它,我们使用了已经构建的A类对象。