Java程序中的toString方法

今天寫了一個練習的代碼:

class Outer2
{
	private final String data;
	
	 class Inner
	{
		Inner()
		{
			
		};
		public String toString()
		{
			return data;
		}
	}
	Outer2(String str)
	{
		this.data=str;
	}
	Inner getInner()
	{
		return new Inner();
	}

	public static void main(String[] args)
	{
		Outer2 a = new Outer2("Hello");
		Outer2.Inner o=a.getInner();
		System.out.println(o.toString());
	}
}

最終結果是Hello字符串的地址,顯然這不是我們想要的結果,估計應該是覆寫了Object類中的toString方法的原因

改進後代碼爲:

class Outer2
{
	private final String data;
	
	 class Inner
	{
		Inner()
		{
			
		};
		public String to()
		{
			return data;
		}
	}
	Outer2(String str)
	{
		this.data=str;
	}
	Inner getInner()
	{
		return new Inner();
	}

	public static void main(String[] args)
	{
		Outer2 a = new Outer2("Hello");
		Outer2.Inner o=a.getInner();
		System.out.println(o.to());
	}
}

可以正確顯示Hello字符串,希望可以從網友中得到詳細的解答。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章