1、外部非静态成员变量
外 int a = 1;
内部访问:System.out.println(new HelloWorld().a);
2、外部静态成员变量名和内部静态类成员变量名相同
外 static int a = 2; 内 int a = 3;
内部访问:System.out.println(HelloWorld.a);
3、外部静态成员变量名和内部静态类成员变量名不同
外 static int b= 4; 内 int c = 5;
内部访问: System.out.println(b);
外 int a = 1;
内部访问:System.out.println(new HelloWorld().a);
2、外部静态成员变量名和内部静态类成员变量名相同
外 static int a = 2; 内 int a = 3;
内部访问:System.out.println(HelloWorld.a);
3、外部静态成员变量名和内部静态类成员变量名不同
外 static int b= 4; 内 int c = 5;
内部访问: System.out.println(b);
2018-04-26
public class HelloWorld{
public class Inner{
public void show(){
System.out.println("内部类");
}
}
public static void main(String[] args){
HelloWorld hello = new HelloWorld();
Inner inn = hello.new Inner();
inn.show();
}
}
public class Inner{
public void show(){
System.out.println("内部类");
}
}
public static void main(String[] args){
HelloWorld hello = new HelloWorld();
Inner inn = hello.new Inner();
inn.show();
}
}
2018-04-26
经过我在Eclipse上验证,三种方法都可以,具体原因应该是main位于类本身,可以直接用:
System.out.println(className);
System.out.println(Helloworld.className);
System.out.println(hello.className);
其中hello为实例化对象
System.out.println(className);
System.out.println(Helloworld.className);
System.out.println(hello.className);
其中hello为实例化对象
2018-04-25
已采纳回答 / oldCattt
父类引用指向子类对象的时候,只有调用方法的时候,得到的才是子类重写的方法,所以你的car.ability();输出的是正确的,但是car.num这样直接调用变量是不行的
2018-04-25
使用IS-A测试可以简单的判断对象与类、类与子类,比如
苹果is a水果 -- 苹果是水果的一个对象或者子类
哈密瓜is a苹果 -- 哈密瓜不是苹果,所以不是苹果的对象或者子类
苹果is a水果 -- 苹果是水果的一个对象或者子类
哈密瓜is a苹果 -- 哈密瓜不是苹果,所以不是苹果的对象或者子类
2018-04-25