访问由构造函数在抽象类中创建的字段(Scala)

编程入门 行业动态 更新时间:2024-10-25 10:21:54
本文介绍了访问由构造函数在抽象类中创建的字段(Scala)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个实现一个方法的抽象类。

I have an abstract class that implements one method.

如何访问参数 internalValue (set

How can I access the parameter internalValue (set by the abstract class constructor?)

abstract class Value(internalValue:Int) { def equal( v:Value ): Boolean def notEqual( v:Value ): Boolean = { //here I get an error on v.internalValue: //"value internalValue is not a member of Value" (internalValue != v.internalValue) } } case class Value1(internalValue:Int) extends Value(internalValue){ def equal( v:Value1 ): Boolean = { //this works correctly (internalValue == v.internalValue) } }

谢谢。

推荐答案

将 internalValue 定义为 val :

abstract class Value(val internalValue: Int)

o如果您担心封装(名称为 internalValue 的建议),则可以使用 private val :

or if you are concerned about encapsulation (which the name internalValue suggests) you can use private val:

abstract class Value(private val internalValue: Int)

完全不声明任何修改等效于等效(?),类似于 private [this] ,这意味着: 只有该特定实例的 Value 可以访问此私有字段。

Not declaring any modified at all is effectively equivalent (?) similar to private[this] which means: only this particular instance of Value can access this private field.

更多推荐

访问由构造函数在抽象类中创建的字段(Scala)

本文发布于:2023-07-14 22:09:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1107306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   抽象   函数   类中   Scala

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!