java不允许同一个变量在不同的作用域出现,也就是说不能像C那样,隐藏作用域,例如:
{
int x=10;
{
int x=20;//这样是非法的
}
}
基本数据类型作为成员变量,没有初始化的时候,会自动初始化:
boolean=false
char=null
byte=0
short=0
int=0
long=0L
float=0.0f
double=0.0d
局部变量就不会自动初始化,如在方法内定义:int x; x并不是0;使用未初始化的变量,编译会报错,而C++会报warnning
方法(method)要通过对象来调用,静态方法就不用(也就是说静态方法可以通过对象访问,也可以直接通过类名访问)
静态成员方法不可访问非静态成员变量
静态成员变量: 位于“数据区”,无论多少个对象该变量在内存中都只有一份
非静态成员变量:位于“堆空间”,每new一个对象创建一份,因此有多少个对象该变量在内存就有多少份
从控制台读入数据:需要构造一个Scanner对象:Scanner in=new Scanner(System.in);
然后读入一个字符串,用nextLine方法:eg. System.out.print("What is your name: ");
输入: String name=in.nextLine();
若要读入整数,则用nextInt()方法,同理,浮点数:nextDouble().
若要读入密码,则用Console类:
Console cons=System.console();
String username=cons.readLine("User name: ");
char[] passwd=cons.readPassword("Password: ");//输入的格式像登陆linux一样,密码显示的是空格,看不到的