问题
I have a simple question:
In Java Compiler, Which type of method or variables can be defined as identifier (ID) or Keyword (reserved word)?
For following example, ID should be : add
, main
, a
, b
, c
, Test1
, What about print
, is print
an ID or keyword?
Example:
public class Test1 {
public static int add(int a, int b) {
return a + b;
}
public static void main() {
int c;
int a = 5;
c = add(a, 10);
if (c > 10)
print("c = " + -c);
else
print(c);
print("Hello World");
}
}
回答1:
An identifier is a word used by a programmer to name a variable, method, class, or label.
// Test1 is a class name identifier
public class Test1 {
public static int add(int a, int b) { // add is identifier for a method
return a + b;
}
public static void main() {
int c; // c is identifier for a variable
int a = 5;
c = add(a, 10);
if (c > 10)
print("c = " + -c);
else
print(c);
print("Hello World");
}
}
You cannot use
any of the Keywords as identifiers
in your java programs
print
in your above program is not a Keyword
, you can use print as a identifier
After using print as a identifier your code looks like this.
//Test1 is a class name identifier
public class Test1 {
// add is identifier for a method
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int c; // c is identifier for a variable
int a = 5;
c = add(a, 10);
if (c > 10)
print("c = " + -c); // c is a String
else
print(c); // c is a int
print("Hello World"); // Hello World is a String
}
/**
* Method Overriding
*/
private static void print(int c) {
System.out.println("In Integer Print Method "+c);
}
private static void print(String string) {
System.out.println("In String Print Method "+string);
}
}
Also Refer :
- Check Legal Identifiers in java @Peter Lawrey
- List of Keywords and Reserved Words in java
回答2:
The Java keywords are part of the language, and are documented in the Java Language. You cannot use a keyword as an identifier . const
and goto
are reserved keywords, but not implemented. true
, false
, and null
are literals; you still cannot use them as identifiers but they are not keywords.
From the linked Java tutorial, the keywords are
- abstract
- continue
- for
- new
- switch
- assert3
- default
- goto1
- package
- synchronized
- boolean
- do
- if
- private
- this
- break
- double
- implements
- protected
- throw
- byte
- else
- import
- public
- throws
- case
- enum4
- instanceof
- return
- transient
- catch
- extends
- int
- short
- try
- char
- final
- interface
- static
- void
- class
- finally
- long
- strictfp2
- volatile
- const1
- float
- native
- super
- while
1not used
2added in 1.2
3added in 1.4
4added in 5.0
来源:https://stackoverflow.com/questions/29787438/in-java-compiler-which-type-can-be-defined-as-identifier-id-or-keyword-rese