¿Cómo devolver correctamente доблесть de atributos en Java подставляют este código?

Он лама creado un nuevo paquete que se классы DOS танго Coches y dentro de él las cuales contiene:

package coches;

public class coche {

    //Atributos
    private char color;
    private int matricula;
    private char tamaño;
    private char marca;
    private double version;

    //Métodos
    public char color (char x){
        color = x;
        return x;
    }
    public char matricula (char y){ 
        matricula = y;
        return y;
    }
    public char marca (char z){
        marca = z;
        return z;
    }
    public double version (double a){
        version = a;
        return a;
    }
}

2º Clase para el llamar al programa:

package coches;

public class programa {

    public static void main(String[]args) {
        //Llamo a la clase coche
        coche q;
        q = new coche();
        //Ejecuto sus métodos
        q.color(azul);
        q.marca(Ford);
        q.version(1,4);
        q.tamaño(mediano);

    }

}

Lo que quiero es que me devuelva 4 atributos del coche. La cosa es que no я funciona; никакая идея танго de cómo visualizar estos atributos.

3
задан 14.10.2016, 21:40
5 ответов

Первое всего ты был бы должен привыкать капитализировать классы (Он программирует, он не программирует). Второе состоит в том, что это не очень хорошая практика, называть методы равно как переменные, толкает в ошибку.

Другая вещь, которую я вижу плохо, состоит в том, что все методы класса Машина определены, чтобы возвращать стоимость (char или double), но ему не дается это использование; они функционируют, как asignadores, ты был бы должен определять такой метод:

public void setColor (String color) {
    this.color = color;
}

Также я не вижу, что ты определил строитель для объекта машину:

public Coche () {}

Стоимости double не определяется как 1,4 а-> 1.4d

Равного способа функционируй с float (или Float, если он может быть недействительным)-> 2.36f

Также ты определяешь цвет в волосы, без "" для стоимости переменной String.

package coches;

public class Coche {

    //Atributos
    private String color;
    private int matricula;
    private char tamaño;
    public String marca;
    private double version;

    public Coche () {}

    //Métodos
    public void setColor (String color){
        this.color = color;
    }
    public void setMatricula (int matricula){ 
        this.matricula = matricula;
    }
    public void setMarca (String marca){
        this.marca = marca;
    }
    public void setVersion (double version){
        this.version = version;
    }

    public void setTamaño(char tamaño) {
        this.tamaño = tamaño;
    }

    public String toString() {
        if (marca == null) return "sin marca";
        return this.marca;
    }  

}

Для призыва я оставляю тебе исправления на основании класса Машина, которая присоединила тебя.

package coches;

public class Programa {

    public static void main(String[]args) {
        //Llamo a la clase coche
        Coche q = new Coche();

        //Ejecuto sus métodos
        q.setColor("azul");
        q.setMarca("Ford");
        q.setVersion(1.4d);
        q.setTamaño('a');
        q.setMatricula(1234);

        System.out.println(q.toString());
    }

}
7
ответ дан 24.11.2019, 13:06
  • 1
    Он старается прекращаться также loscaracteres специальные как Ñ – JackNavaRow 02.03.2017, 23:19

У тебя есть проблема типов.

Параметры, которые они признают методами класса машины, - типа char (public char color (char x) ) и во время того, чтобы звонить в эти методы в классе, запрограммируй q.color(azul); ты перемещаешь string (который даже не правильно entrecomillado).

Для того, чтобы оно ты функционировало, как это у тебя есть, ты был бы должен звонить в метод, как ты это описал, таково, который я схватил: q.color('a') перемещая char, и entrecomillado (они подают также двойные кавычки)

Рекомендации, чтобы заканчиваться:

  1. Из-за соглашения, классы в java всегда идут с заглавной буквой, а следовательно твои классы были бы должны называться Машина и Программа
  2. Я думаю, что то, что ты в действительности хочешь, состоит в том, чтобы перемещать параметры типа String в твои методы, так что ты можешь использовать более верные имена, кроме того, что сеттеры используют и getters для признаков твоего класса Машина.
  3. Этот тип проблем они прикрываются используя IDE, который предупреждал бы тебя об ошибках типа пока ты пишешь код. Ты можешь тестировать Затмение или Netbeans

Чтобы распределять стоимость в твои признаки, использует сеттер, например так:

public void setColor (String color){
    this.color = color
}

И чтобы читать признак, используй getter, таким образом:

   public String getColor (){
      return color;
   }

Имей в виду, что, для того, чтобы это функционировало правильно, у тебя должен будет быть признак цвет, признанный таким:

private String color;
5
ответ дан 24.11.2019, 13:06

Чтобы начинаться, ты должен привыкать назначать классом с нею 1-ый букву в Прописной букве, предотвращать специальные символы испанца как: ñ, á, и т.д. Итак, ты должен определять хорошо, что ты хочешь дать стоимость свойствам машины, потому что, как это понимаю я, у тебя должен быть класс такая Машина, которая:

public class Coche {

    // Atributos
    private String color;
    private int matricula;
    private String tamanio;
    private String marca;
    private double version;

    // Métodos:

    // Obtienes el color
    public String getColor() {
        return color;
    }
    // Cambias el valor.
    public void setColor(String color) {
        this.color = color;
    }
    public int getMatricula() {
        return matricula;
    }
    public void setMatricula(int matricula) {
        this.matricula = matricula;
    }
    public String getTamanio() {
        return tamanio;
    }
    public void setTamanio(String tamaño) {
        this.tamanio = tamaño;
    }
    public String getMarca() {
        return marca;
    }
    public void setMarca(String marca) {
        this.marca = marca;
    }
    public double getVersion() {
        return version;
    }
    public void setVersion(double version) {
        this.version = version;
    }   

}

И твой класс Main, который является Программой, давать стоимость, и потом видеть их. Ты попробовал давать стоимость слов числам, это не могут, и десятичные находятся в версии Inlgesa, следовательно, он используется "." и нет",". Общее количество, у тебя остается Main:

public class Programa {

    public static void main(String[]args) {
        //Llamo a la clase coche
        Coche q;
        q = new Coche();
        // Das valores:
        q.setColor("Azul");
        q.setMarca("Ford");
        q.setVersion(1.4);
        q.setTamanio("Mediano");

        // Imprimes valores que has dado:
        System.out.println("Color: "+q.getColor());
        System.out.println("Marca: "+q.getMarca());
        System.out.println("Version: "+q.getVersion());
        System.out.println("Tamaño: "+q.getTamanio());
    }
}
3
ответ дан 24.11.2019, 13:06
  • Я использовал бы Класс Цвет для признака цвет, int для реестра (или String) и String для отметки.
  • , Когда ты помещаешь q.tamaño(mediano) (кроме того тебе не хватает метода tamaГ±o), он должен быть между кавычками таково, что: q.tamaño("mediano") и то же самое с отметкой.
  • Десятичные double делаются с (точкой). С запятой кажется, что ты перемещаешь два параметра.
  • Методы класса машины были бы должны возвращаться void и называться setColor и остальные (чтобы продолжать быть немного стандартными java)
public class coche {

    //Atributos
    private Color color;
    private int matricula;
    private String tamaño;
    private String marca;
    private double version;

    //Métodos
    public void setColor (Color x){
        color = x;
    }
    public void setMatricula (int y){ 
        matricula = y;
    }
    public void setMarca (Stringz){
        marca = z;

    }
    public void setVersion (double a){
        version = a;

    }
    public void setTamaño(String a){
        version = a;

    }
}
public class programa {

    public static void main(String[]args) {
        //Llamo a la clase coche
        coche q;
        q = new coche();
        //Ejecuto sus métodos
        q.setColor(Color.azul);
        q.setMarca("Ford");
        q.setVersion(1.4);
        q.setTamaño("mediano");

    }

}
1
ответ дан 24.11.2019, 13:06

Я дополняю немного ответов, которые дали тебе, так как они основываются в компонентах Java Beans.

Я предлагаю тебе следующие ссылки, которые приносят определение и правила, чтобы делать эти компоненты:

Это официальная документация: Writing Java Beans

И здесь находится объяснение на испанце: Введение в JavaBeans

Я надеюсь, что он тебе полезен.

1
ответ дан 24.11.2019, 13:06
  • 1
    #191; Java Beans? Aqu и # 237; себе не прокомментировал ничто из Java Beans из-за ning и # 250; n сторона!! Это ответ, который склоняется к тому, чтобы связывать м и # 225; s explicaci и # 243; n, которого он осведомляется наверху. Если не манипулируют концепцией getter и settter. много меньше тем м и # 225; s такие аванпосты как последовательно преобразованные объекты. – Mik Pride 14.10.2016, 23:30

Теги

Похожие вопросы