Overriding toString() method in Scala

示例代碼

不覆蓋toString方法

考慮一下的程序。再類中不適用toString方法。

// Scala Program without override toString method 

// Creating Class 
class Language(LangArticle: Int, LangName: String) 
{ 

	// Defining getLangArticle method 
	def getLangArticle() : Int = { 
		
		return LangArticle; 
	} 
	
	// Defining getLangName method 
	def getLangName() : String = { 
		
		return LangName; 
	} 

} 

// Creating object 
object GFG 
{ 
	// Main method 
	def main(args: Array[String]) 
	{ 
		
		var language = new Language(50, "Scala"); 
		
		println(language) 
		
	} 
} 

  • 輸出
Language@506e1b77

輸出是,類名,然後@符號,最後是對象的hashCodeScala中的所有類都直接或間接地繼承自對象類。這個對象類有一些基本的方法,比如clone(), toString(), equals(), …等。對象中的默認toString()方法打印“類名@散列碼”。我們可以在類中覆蓋toString()方法來打印正確的輸出。下面是覆蓋toString方法的示例。

覆蓋toString方法

// Scala Program to override toString method 

// Creating Class 
class Language(LangArticle: Int, LangName: String) 
{ 

	// Defining getLangArticle method 
	def getLangArticle() : Int = { 
		
		return LangArticle; 
	} 
	
	// Defining getLangName method 
	def getLangName() : String = { 
		
		return LangName; 
	} 
	
	// Overriding tostring method 
	override def toString() : String = { 
		
		return "[Total Article : " + LangArticle + 
				", Language Name = " + LangName+"]"; 
	} 

} 

// Creating object 
object GFG 
{ 
	// Main method 
	def main(args: Array[String]) 
	{ 
		
		var language = new Language(50, "Scala"); 
		
		println(language) 
		
	} 
} 

  • 輸出
[Total Article : 50, Language Name = Scala]

在上面的示例語言類中,它覆蓋了toString()方法並返回字符串值。這個方法有屬性名和值。該類定義了兩個變量LangArticleLangName,以及三個方法:getLangArticle、getLangNametoStringgetLangArticle接受一個整數參數並返回一個值。getLangName接受一個字符串參數並返回一個值。另一方面,toString接受任何參數,但返回一個字符串值。由於toString覆蓋了預定義的toString方法,所以必須使用override標記對其進行標記。

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