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标记对其进行标记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值