java - 我需要通过参数仅传递类的几个属性之一

标签 java syntax parameters

我有一个名为 Posicion 的类(class)有两个属性,我只需要传递参数 Posicion 中的这些属性之一到类(class) Caballo 。 来自 Caballo 的构造函数方法必须接受 Posicion 类型的一个参数,但只有其属性之一,特别是名为 columna 的参数。 我的意思是,我有一个语法问题。

我尝试放入 Caballo 的构造函数方法类这个: Caballo(Color color, Posicion.columna)但显然它给了我一个错误。

位置类别:

public class Posicion {

    private int fila;
    private char columna;

    Posicion (int fila, char columna){

        if (fila < 1 || fila > 8 || columna < 'a' || columna > 'h') {
            throw new IllegalArgumentException("Valores fuera de rango");
        }else {
            this.fila=fila;
            this.columna=columna;
        }

    }

    Posicion (Posicion p){

        fila=p.fila;
        columna=p.columna;

    }

    public boolean equals(Posicion fc_A, Posicion fc_B) {

        if (fc_A.fila == fc_B.fila && fc_A.columna == fc_B.columna) {
            return true;
        }else {
            return false;
        }

    }

    public void setFila(int fila) {

        if (fila < 1 || fila > 8) {
            throw new IllegalArgumentException("Los números de fila"
                    + "deben estar comprendidos entre 1 y 8 ambos inclusive");
        }else {
            this.fila=fila;
        }

    }

    public int getFila() {
        return this.fila;
    }

    public void setColumna(char columna) {

        if (columna < 'a' || columna > 'h') {
            throw new IllegalArgumentException("Las columnas deben estar comprendidas entre las letras"
                    + "a y h");
        }else {
            this.columna=columna;
        }
    }

    public char getColumna() {
        return columna;
    }

    public String toString() {

        String mensaje="El caballo se encuentra en la posición fila: " + fila + " "
                + "columna: " + columna;

        return mensaje;

    }

}

Caballo 类直到构造函数第三个构造函数方法:

public class Caballo {

    private Color color;
    private Posicion posicion;

    Caballo(){
        posicion.setFila(8);
        posicion.setColumna('b');
    }

    Caballo(Color color){

        this.color=color;

        if(this.color==Color.BLANCO) {

            this.posicion.setFila(1);
            this.posicion.setColumna('b');

        }else if (this.color==Color.NEGRO) {

            this.posicion.setFila(8);
            this.posicion.setColumna('b');

        }

    }

    Caballo(Color color, Posicion.columna){ <-- This is the error

        this.color=color;
        this.posicion=columna;

        if(this.posicion.)

    }

我有一个语法错误。 非常感谢!!!!

最佳答案

您尚未指定第二个参数的类型和变量名称:

Caballo(Color color, Posicion.columna){ <-- This is the error

我猜你想要一个空间:

Caballo(Color color, Posicion columna){ <-- This is the error

关于java - 我需要通过参数仅传递类的几个属性之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57280568/

相关文章:

javascript - 需要对以下类型的 Javascript 代码进行解释

android - 如何在程序运行时更改布局参数

arrays - 为什么我的 Perl 子程序接收其父程序的参数?

java - 如何创建可移植的 Weblogic 脚本工具应用程序?

Python:使类可迭代

css - HasLayout(或其他一些 IE7)错误?

php - Joomla Get/POST 参数忽略字符串中的空格

Java Arraylist同时改变所有对象中的一个属性值

java - 从字符串创建 RSA 公钥

java - 在python中设置区域设置编码