首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在类构造函数中使用枚举,类中的方法无法识别引用变量

在类构造函数中使用枚举,类中的方法无法识别引用变量
EN

Stack Overflow用户
提问于 2020-02-20 08:35:37
回答 2查看 33关注 0票数 1

我正在学习CSIS1410类,作为作业的一部分,我需要创建一个枚举,电压。然后,我必须创建一个使用枚举作为参数的类,但是当尝试使用参考可变电压(小写v)时,它给出了错误“电压无法解析为变量”。下面是枚举:

代码语言:javascript
运行
复制
public enum Voltage
{
    V110, V220, DUAL;
}

下面是使用上述枚举的类

代码语言:javascript
运行
复制
public class DeskPhone extends Phone
{
    public boolean connected;

    protected DeskPhone(String modelArg, Dimensions dimenstion, Voltage voltage) //enum as parameter
    {
        super(modelArg, dimenstion);
    }

    public void plugIn()
    {
        connected = true;
    }

    public void unPlug()
    {
        connected = false;
    }

    public boolean isConnected()
    {
        return connected;
    }

    @Override
    public String toString()
    {
        if(connected == false)
        {
            return super.toString() + " " + voltage + " not connected"; //results in error
        }

        return super.toString() + " " + voltage + " connected";

    }

为什么我不能将构造函数传递给“电压”变量中的任何东西存储起来,并在toString语句中使用它?

EN

Stack Overflow用户

发布于 2020-02-20 08:40:23

因为构造函数参数只在构造函数中可见,所以您需要将它们绑定到类字段才能在函数中使用它们:

还可以考虑使用Lombok来减少样板

代码语言:javascript
运行
复制
public boolean connected;
private Voltage voltage;


 protected DeskPhone(String modelArg, Dimensions dimenstion, Voltage voltage) 
 {
  super(modelArg, dimenstion);
  this.voltage = voltage;
 }
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60311338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档