static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为那是对象方法),但非static方法(对象方法)可以访问static数据成员或方法。
eg:public class AccessValue {
int value;
public static void main(String[] args) {
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
System.out.println(value);
}
}
直接main方法静态方法中直接访问value是错误的,可以有两种方法解决:
1:在value前面加上static
eg:public class AccessValue {
static int value;
public static void main(String[] args) {
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
System.out.println(value);
}
}
2:main方法中产生AccessValue对象,通过对象引用访问value
eg:public class AccessValue {
int value;
public static void main(String[] args) {
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
AccessValue v=new AccessValue()
System.out.println(v.value);
}
}
对于建立对象:
1:FighterPlane fp;
2:fp=new FightPlane();
第一句的作用相当与一个遥控器,只是产生一个FightPlane的声明,此时没有产生任何对象,也没有为此对象分配内存空间,这和C++是有区别的!
第二句既产生了对象也分配了内存空间!
java的两个在JDK不同版本下的输入:
1:BufferedReader头文件是import java.io.*;
eg: BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
Sting str;
str=buf.readLine();
n=Integer.parseInt(str);
2:Scanner头文件是import java.util.*;
eg: Scanner cin=new Scanner(System.in);
cin.hasNextInt();
n=cin.nextInt();