Java中內部類2019-08-14

今天重新看了一下內部類的知識,內部類相當於外部類的一個成員,如果這個內部類是非靜態的,那麼在外部類的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();
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章