【问题标题】:How to write a 'get/set method' for an array of type class?如何为类型类数组编写“获取/设置方法”?
【发布时间】:2017-08-18 02:39:59
【问题描述】:

我在为 Autor 类型的数组 autores[] 实现 get/set 方法时遇到了麻烦,该数组是同一包中的另一个类。它与类的其他变量的工作方式不同:(

class Autor
{
private String nombre;
private String adscripcion;

Autor(String nombre,String adscripcion)
{
    this.nombre=nombre;
    this.adscripcion=adscripcion;
}
Autor(){}

String getNombre()
{
    return nombre;
}
String getAdscripcion()
{
    return adscripcion;
}

void setNombre(String nombre)
{
    this.nombre=nombre;
}

void setAdscripcion(String adscripcion)
{
    this.adscripcion=adscripcion;
}

} 公共类Articulo {

private String nombreArt;
private Autor autores[]=new Autor[2];
private String fechaPublicacion;

Articulo(String nombreArt,String fechaPublicacion, String nombre,String adscripcion)
{
    this.nombreArt=nombreArt;
    this.fechaPublicacion=fechaPublicacion;
    autores[0]=new Autor(nombre,adscripcion);
    autores[1]=new Autor(nombre,adscripcion);

}


String getnombreArt()
{
    return nombreArt;
}
String getfechaPublicacion()
{
    return fechaPublicacion;
}
Autor getautores()
{
    return autores[];//this part of the code it's not correct.
}


}

【问题讨论】:

  • 请分享错误详情并简要说明您的要求是什么?
  • 它说找不到符号
  • 我只想返回 Autor 类型的数组 autores[],就像我为 String nombreArt 所做的那样。
  • 你试过@Elliott Frisch 回答吗?

标签: java class methods get set


【解决方案1】:

getter 应该是这样的

public Autor[] getAutores()
{
    return autores;
}

setter 就像

public void setAutores(Autor[] autores) {
    this.autores = autores;
}

如果您使用 Eclipse 之类的 IDE,则菜单选项可用于生成 setter/getter 和一堆其他东西

【讨论】:

  • 如何在主类中调用setAutores方法?我想将autores的名称作为setAutores方法的参数,但结果autores是一个字符串,我该怎么办?
  • 首先你需要从你的Strings 构造一个Autor 然后创建一个Autor数组,然后你可以将它传递给你的setter
  • 这是 Autor 数组 Autor z[]; 但我不明白如何从 String 构造 Autor
  • :D.. 我不能在 cmets 中发布它,我要编辑我的问题以发布整个代码吗?
  • 是的,编辑您的问题并添加(不是整个代码)构造函数
【解决方案2】:

首先,autores 可以用您当前的语法声明 - 但它是为了让 C 和 C++ 开发人员更熟悉 Java 的保留。我个人发现完全在变量名左侧的类型更容易阅读。喜欢,

private Autor[] autores = new Autor[2];

对于数组类型的 getter 和 setter,[] 必须写为类型的一部分。喜欢,

public Autor[] getAutores() {
    return autores;
}

public void setAutores(Autor[] autores) {
    this.autores = autores;
}

【讨论】:

    【解决方案3】:

    这部分没有任何意义;

    return autores[];
    

    autores 是一个变量名,它是一个Autor 对象的数组。所以你的吸气剂应该是这样的,

    public Autor[] getAutores() {
        return autores;
    }
    

    这里Autor[]是返回类型,它会返回autores变量的值。

    【讨论】:

    • 我认为 OP 很困惑,因为 Java 允许声明 Autor autores[]
    • 完全正确!。声明数组使用时更好,Autor[] autores
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2021-12-27
    相关资源
    最近更新 更多