成员变量和局部变量
成员变量定义在类中
局部变量定义在方法中
区别
成员变量的作用域在整个类中
局部变量的作用域仅限于方法中
Java会给成员变量赋初始值 而不会给局部变量赋值
在同一个方法中,对变量只能赋值一次
不同方法中可以定义同名的局部变量
两类变量同名时,局部变量有优先级,就近原则
成员变量定义在类中
局部变量定义在方法中
区别
成员变量的作用域在整个类中
局部变量的作用域仅限于方法中
Java会给成员变量赋初始值 而不会给局部变量赋值
在同一个方法中,对变量只能赋值一次
不同方法中可以定义同名的局部变量
两类变量同名时,局部变量有优先级,就近原则
2016-09-23
两个name重名,为了区别是外部类的name要加上HelloWorld.this.name。如果将外部类的name改成name1,内部类的改为name2,直接输出name1,name2是可以的。
2016-09-23
static int score1 = 86;
// 定义静态变量score2
static int score2 = 92;
// 定义静态方法sum,计算成绩总分,并返回总分
public static int sum() {
int sum = score1+score2;
return sum;
}
public static void main(String[] args) {
// 调用静态方法sum并接收返回值
int allScore = sum();
// 定义静态变量score2
static int score2 = 92;
// 定义静态方法sum,计算成绩总分,并返回总分
public static int sum() {
int sum = score1+score2;
return sum;
}
public static void main(String[] args) {
// 调用静态方法sum并接收返回值
int allScore = sum();
2016-09-23
不管静态方法,还是非静态方法,都直接用对象名调用
StaticMethod sm =new StaticMethod();
sm.print();
sm.show();
StaticMethod sm =new StaticMethod();
sm.print();
sm.show();
2016-09-23
public class HeroDota2 {
public String name;
public int damage;
public void skill(){
System.out.println("英雄能使用技能!");
}
}
public class Hero extends HeroDota2 {
}
public class Test {
public static void main(String[] args){
Hero hero =new Hero();
hero.name="Axe";
hero.damage=47;
hero.skill();
}
}
public String name;
public int damage;
public void skill(){
System.out.println("英雄能使用技能!");
}
}
public class Hero extends HeroDota2 {
}
public class Test {
public static void main(String[] args){
Hero hero =new Hero();
hero.name="Axe";
hero.damage=47;
hero.skill();
}
}
2016-09-23
同名的java文件在一个java文件中只能存在一个,但是如果想要两个同名的java类,那么一个可以用import的方式,另一个则可以写类的全限定名,也就是"包名.类名",如果有多个包则可以"包名.包名...类名"
2016-09-22
为什么普通成员方法可以直接访问非静态变量,而静态方法不能直接访问非静态变量?
那岂不是没有非静态变量和静态变量之分了,非静态变量也能被同类中的所有方法访问?
那岂不是没有非静态变量和静态变量之分了,非静态变量也能被同类中的所有方法访问?
2016-09-22