示例代码
不覆盖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
输出是,类名,然后@符号,最后是对象的hashCode。 Scala中的所有类都直接或间接地继承自对象类。这个对象类有一些基本的方法,比如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()方法并返回字符串值。这个方法有属性名和值。该类定义了两个变量LangArticle和LangName,以及三个方法:getLangArticle、getLangName和toString。getLangArticle接受一个整数参数并返回一个值。getLangName接受一个字符串参数并返回一个值。另一方面,toString接受任何参数,但返回一个字符串值。由于toString覆盖了预定义的toString方法,所以必须使用override标记对其进行标记。
本文探讨了Scala中toString方法的基本用法及其重写。默认情况下,toString方法返回类名和对象的hashcode,通过重写可以定制化输出,如包含类的属性等。
81

被折叠的 条评论
为什么被折叠?



