今天重新看了一下內部類的知識,內部類相當於外部類的一個成員,如果這個內部類是非靜態的,那麼在外部類的main方法中不可以用內部類對象調用內部類方法(個人理解是靜態方法中不可以使用非靜態方法)
package com.wx.innerClass;
public class Cow {
private Integer weight;
public Cow(Integer weight){
this.weight = weight;
}
private class CowLeg{
private String color;
public CowLeg(String color){
this.color = color;
}
public void info(){
System.out.println("weight:"+weight+" "+ "color:"+color);
}
}
public void test(){
CowLeg cowLeg = new CowLeg("黑");
cowLeg.info();
}
public static void main(String[] args){
Cow cow = new Cow(13);
cow.test();
//CowLeg cowLeg = new CowLeg("黑");
//cowLeg.info();
}
}
同樣的代碼,稍加修改,當內部類是靜態方法的時候,在mian方法中便可以使用對象調用方法
package com.wx.innerClass;
public class Cow {
private static Integer weight;
public Cow(Integer weight){
this.weight = weight;
}
private static class CowLeg{
private String color;
public CowLeg(String color){
this.color = color;
}
public void info(){
System.out.println("weight:"+weight+" "+ "color:"+color);
}
}
public void test(){
CowLeg cowLeg = new CowLeg("黑");
cowLeg.info();
}
public static void main(String[] args){
Cow cow = new Cow(13);
cow.test();
CowLeg cowLeg = new CowLeg("黑");
cowLeg.info();
}
}