Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LPM en 08 de Noviembre 2014, 00:50

Título: CU00623B / consulta de una linea uso del operador + para concatenar cadenas
Publicado por: LPM en 08 de Noviembre 2014, 00:50
Código: [Seleccionar]
/* Ejemplo - aprenderaprogramar.com */

//Esta clase representa un taxi. -- > Comentario general que puede incluir: cometido, autor, versión, etc…

public class Taxi { //El nombre de la clase

    private String ciudad; //Ciudad de cada objeto taxi

    private String matricula; //Matrícula de cada objeto taxi

    private String distrito; //Distrito asignado a cada objeto taxi

    private int tipoMotor; //tipo de motor asignado a cada objeto taxi. 0 = desconocido, 1 = gasolina, 2 = diesel

 

    //Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor

    public Taxi () {

        ciudad = “México D.F.”;       

        matricula = "";

        distrito = "Desconocido";

        tipoMotor = 0;

    } //Cierre del constructor … el código continúa …

 

    //Método para establecer la matrícula de un taxi

    public void setMatricula (String valorMatricula) {

        matricula = valorMatricula; //La matrícula del objeto taxi adopta el valor que contenga valorMatricula

    } //Cierre del método

    //Método para establecer el distrito de un taxi

    public void setDistrito (String valorDistrito) {

        distrito = "Distrito " + valorDistrito; //El distrito del objeto taxi adopta el valor indicado

    } //Cierre del método

    public void setTipoMotor (int valorTipoMotor) {

        tipoMotor = valorTipoMotor; //El tipoMotor del objeto taxi adopta el valor que contenga valorTipoMotor

    } //Cierre del método

    //Método para obtener la matrícula del objeto taxi

    public String getMatricula () { return matricula; } //Cierre del método

    //Método para obtener el distrito del objeto taxi

    public String getDistrito () { return distrito; } //Cierre del método

    //Método para obtener el tipo de motor del objeto taxi

    public int getTipoMotor () { return tipoMotor; } //Cierre del método

} //Cierre de la clase


Hola. Mi consulta es sobre la línea 45

distrito = "Distrito " + valorDistrito; //El distrito del objeto taxi adopta el valor indicado

por qué se suma en vez de solamente tomar un nuevo valor?
según las otras líneas debería ser así

distrito = valorDistrito;
Título: Re:CU00623B / consulta de una linea
Publicado por: toni_apr en 08 de Noviembre 2014, 09:06
Hola LPM
Tu propuesta
distrito = valorDistrito;
es la mejor de todas las soluciones posibles.
Pero en este ejercicio, tal como has observado tu, el diseñador ha decidido que cualquier distrito que introduzcamos lleve al principio la palabra "Distrito ". Como podía haber decidido poner:
distrito = "D. = " + valorDistrito;

Si los distritos fueran: Norte, Sur, Este y Oeste
El valor formal para el distrito Norte sería: Norte
Pero el valor coloquial podría ser: Distrito Norte

Te pongo un ejemplo:
En la oficina de Correos. Un cartero pregunta a su compañero:
¿Que distrito te ha tocado?
Y el compañero responde:
Respuesta formal: Norte
Respuesta coloquial: Distrito Norte

En el mundo real se utilizaría la respuesta coloquial. Y en el mundo estricto de las máquinas el formal.

Así resumiendo, el propósito de la concatenación de una constante "Distrito " con una variable 'valorDistrito' es únicamente un intento de dar al atributo 'distrito' un valor amigable, en lugar de un valor seco y austero.

Saludos
Título: Re:CU00623B / consulta de una linea
Publicado por: LPM en 08 de Noviembre 2014, 16:36
sí, entendí.

gracias

lo que me cuesta entender es el ejemplo que das

distrito = "D. = " + valorDistrito;

ejecutando el programa quedaria escrito así?

D. = Norte/Sur/etc

me confunde un poco que haya otro simbolo =, pero al estar entrecomillas, indica que ese = es parte del texto?



Título: Re:CU00623B / consulta de una linea
Publicado por: toni_apr en 08 de Noviembre 2014, 21:22
Si, exacto. Lo has entendido perfectamente.
Citar
distrito = "D. = " + valorDistrito;

ejecutando el programa quedaria escrito así?

D. = Norte/Sur/etc

Lo que se pone entre comillas dobles, saldrá tal cual lo escribamos, tanto si ponemos abreviaturas, faltas de ortografía o texto incoherente.

Es nuestra responsabilidad lo que escribimos entre comillas. No tienes mas que probarlo tu mismo en cualquier programa

Saludos
Título: Re:CU00623B / consulta de una linea
Publicado por: LPM en 09 de Noviembre 2014, 21:05
gracias =)