1.成员变量是是在类中定义的,而局部变量是在方法中定义的;
2.java会给成员变量赋初始值,但不会给局部变量赋初始值
3.局部变量的优先级高
4.无参的构造方法可以创建对象,有参的构造方法也可以创建对象
Telphone phone=new Telphone();
Telphone phone1=new Telphone(5.0f,4.5f,3.4f);
还可以判断传值是否安全
public Telphone(float newscreen,float newcpu,float newmem){
if(newscreen<3.5f){
System.out.println("你输入的参数是不合理的");
screen=3.5f;}
else{
screen=newscreen;}
cpu=newcpu;
mem=newmem;
System.out.println("有参的构造方法执行了");
5.Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享
静态成员可以用类名直接访问,也可以用对象名进行访问。
与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法
public static void print(){ }
静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:
在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示
、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:
public static int sum() {
return score1+score2;
}静态方法中调用静态方法
int allScore = HelloWorld.sum();
int allScore = sum();
类名.sum()
同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
程序运行结果:
程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。