Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - LPM

Páginas: [1]
1
Hola.

¿Se puede acceder a un objeto anónimo contenido en un ArrayList?

Al agregar un objeto anónimo queda dentro del array, con lo que sí se puede acceder.


¿Se puede inicializar un objeto de una clase que contiene tres atributos de tipo objeto declarando en el constructor que los atributos se inicializan mediante objetos anónimos?

No me queda claro lo que es un objeto anónimo. Sería un objeto sin nombre de variable?. Tampo no sé qué código escribir para mostrar mi duda, estoy bastante desorientado

Espero alguien me ayude

2
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=633:tipo-iterator-api-java-ejemplo-error-javautilconcurrent-modificationexception-resumen-bucles-cu00667b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Hola.

Arreglé el problema que tenía. Me quedó así el ejercicio.

Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoMasVendido;
   
    public CantanteFamoso(String nombre,String disco){
        this.nombre=nombre;
        discoMasVendido=disco;
    }
   
    public void setNombre(String nombre){this.nombre=nombre;}
    public void setDisco(String disco){discoMasVendido=disco;}
   
    public String getNombre(){return nombre;}
    public String getDisco(){return discoMasVendido;}
}

Código: [Seleccionar]
import java.util.ArrayList;

public class ListCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos;
   
    public ListCantantesFamosos(){
        listaCantantesFamosos=new ArrayList<CantanteFamoso>();
    }
   
    public void addCantante(CantanteFamoso cantante){listaCantantesFamosos.add(cantante);}

    public ArrayList<CantanteFamoso> getLista(){return listaCantantesFamosos;}
}

Código: [Seleccionar]
import java.util.Scanner;
import java.util.Iterator;

public class TestListCantantesFamosos
{
    private ListCantantesFamosos testLista;
    private CantanteFamoso cantante1;
    private CantanteFamoso cantante2;
   
    public TestListCantantesFamosos(){
        cantante1=new CantanteFamoso("Rata","Blanca");
        cantante2=new CantanteFamoso("Mago","De Oz");
        testLista=new ListCantantesFamosos(){{addCantante(cantante1);addCantante(cantante2);}};
    }

    private void mostrarCantantesIt(){
        Iterator<CantanteFamoso> listaIt=testLista.getLista().iterator();
        CantanteFamoso tmpCantante;
        while (listaIt.hasNext()){
            tmpCantante=listaIt.next();
            System.out.println("Cantante "+tmpCantante.getNombre()+" con su disco "+tmpCantante.getDisco()+" mas vendido.");
        }
    }
   
    private void addCantanteTeclado(){
        Scanner teclado=new Scanner (System.in);
        System.out.print("Escriba su nombre: ");
        String nombre=teclado.nextLine();
        System.out.print("Su disco mas vendido?");
        String disco=teclado.nextLine();
        CantanteFamoso cantanteAgregado=new CantanteFamoso(nombre,disco);
        testLista.addCantante(cantanteAgregado);
    }
   
   
    public static void main (String []args){
        Scanner tecladoMain=new Scanner(System.in);
        TestListCantantesFamosos testLista1=new TestListCantantesFamosos();
        System.out.println("Los cantantes en la lista actual son:");
        testLista1.mostrarCantantesIt();
        System.out.println("Ahora agregue un cantante.");
        testLista1.addCantanteTeclado();
        int intentos=0;
        do{System.out.print("Agregar otro cantante? Si/No: ");
           String respuesta=tecladoMain.next();
           if(respuesta.equalsIgnoreCase("si")){
                intentos=0;
                testLista1.addCantanteTeclado();
           }else if(respuesta.equalsIgnoreCase("no")){
                System.out.print("Ok.");
                intentos=3;
           }else{System.out.println("Escriba si o no para continuar");
                  intentos++;
                  if (intentos==3){System.out.println("Ha intentado agregar un cantantes varias veces sin éxito");
                                 break;
                                  }
           }
        }   
        while(intentos<3);
        System.out.println("Ahora los cantantes de la lista actual son: ");
        testLista1.mostrarCantantesIt();
    }
}


3
Hola.

Estaba practicando con un ejercicio del curso de Java. Era pedir agregar por teclado elementos a un arrayList.

Lo que quise hacer era tomar la primer letra del valor que se ingresa con el método substring, recorrer el array con el bucle foreach  y comparándolo con la primer letra de cada elemento.

Elegí substring porque comparar 1 letra parece mas fácil, o mas simple. Bueno, en el momento en que la letra del valor fuera mayor que la de algún elemento, uso el método get, le paso como parámetro el elemento comparado en el momento y le sumo +1 para ponerlo después de ese.

Sería algo así:

lista.add(elemento+1,valorTeclado);
break;

Break para terminar el bucle porque ya se agregó a la lista. Pero si no es mayor que ninguno, entonces es el menor de todos.

if(valorTeclado>elemento){lista.add(elemento+1,valorTeclado);
break;}
else {lista.add(0,valorTeclado)}

Para comparar encontré el método compareTo, pero hace hooooras estoy probando y probando y no me sale. Hasta se me fue de las manos esto. Me pide escribir incluso sin haber importado la clase Scanner.

Copié la clase a un nuevo paquete, por las dudas, tal vez había algo que no veía o que toqué, pero igual, me sigue pidiendo escribir!

Código: [Seleccionar]
import java.util.ArrayList;
//import java.util.Scanner;

public class ListaCantantesFamosos
{    private ArrayList<String>listaCantantes;
   
    public ListaCantantesFamosos(){
       listaCantantes=new ArrayList<String>(){{add("Bara");add("Maria");add("Tario");}};
    }
     
    public void ordenado(){
       //Scanner teclado=new Scanner(System.in);
       System.out.println("Escriba:");
       String cantante="Tola";//teclado.nextLine();
       for(int i=0;i<listaCantantes.size();i++){
           if (cantante.compareTo(listaCantantes.get(i))>0){
               listaCantantes.add(i+1,cantante);
               break;   
           }else{listaCantantes.add(0,cantante);}
       }
       System.out.println(listaCantantes);
    }
}

Dejé comentado lo referente a Scanner porque la idea es escribir y encontrarle una posición en el array. También saqué el substring por las dudas, cuando ya no se te ocurre nada hacés cualquier cosa xd

Probé en otra clase el compareTo, y funciona bien.

Código: [Seleccionar]
public class Casd
{
    public static void main(String[]args){
        String a="abc";
        String b="bca";
        String c="cba";
        if (a.compareTo(b)>0){
            System.out.println("a Es mayor que b");
        }else{System.out.println("a Es menor que b");}
        if (b.compareTo(c)>0){
            System.out.println("b Es mayor que c");
        }else{System.out.println("b Es menor que c");}
        if (c.compareTo(a)>0){
            System.out.println("c Es mayor que a");
        }else{System.out.println("c Es menor que a");}
    }
}

Probé con el for común y el iterator, por si estaba mal el usar foreach para lo que quería. No compilabra primero, luego compilaba, ejecutaba y me tiraba error. Luego terminaba agregando el valor, pero no ordenado. Y ahora me pide que le de y le de... entradas... por teclado xd

Bueno, en esta clase hice 3 métodos: for, foreach e iterator.

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Iterator;

public class ListaCantantesFamosos3{
    private ArrayList<String>listaCantantes;
    private ArrayList<String>listaCantantes2;
   
    public ListaCantantesFamosos3(){
        listaCantantes=new ArrayList<String>(){{add("Bara");add("Maria");add("Tario");}};
    }
   
    public void ordenado(){
       Scanner teclado=new Scanner(System.in);
       System.out.println("Escriba:");
       String cantante=teclado.nextLine();
       for(int i=0;i<listaCantantes.size();i++){
           if (cantante.substring(0,1).compareTo(listaCantantes.get(i).substring(0,1))<0){
               listaCantantes.add(i+1,cantante);
               break;   
           }else{listaCantantes.add(0,cantante);}
       }
       System.out.println(listaCantantes);
    }

    /*
     
    public void ordenado(){
       Scanner teclado=new Scanner(System.in);
       System.out.println("Escriba:");
       String cantante=teclado.nextLine();
       for (String elemento:listaCantantes){
           if (cantante.compareTo(elemento)>0){
               listaCantantes.add(listaCantantes.indexOf(elemento)+1,cantante);
               break;
           }else{listaCantantes.add(0,cantante);
            break;}
         }
    }
    */
   
    /*public void ordernadoITR(){
    Iterator<String> listaITR=listaCantantes.iterator();
    Scanner teclado=new Scanner(System.in);
    System.out.println("Escriba:");
    String cantante=teclado.nextLine();
    while(listaITR.hasNext()){
        String elemento=listaITR.next();
        if (cantante.compareTo(elemento)>0){
            listaCantantes.add(listaCantantes.indexOf(elemento)+1,cantante);
        }else{listaCantantes.add(0,cantante);}
        }
    }
    */
}

No se exactamente si pide que escriba, pero me deja escribir en la ventana "terminal" de blueJ, como si así fuera.

Miré la clase en la api, pero... me costó entender. No pude sacar algo en concreto. Solo que compara y devuelve un int según si es menor, igual o mayor.

Encontré el método sort, pero probé el compareTo con algo sencillo. Y debería funcionar con lo que quiero, o no? Qué hago mal? No entiendo

Una última cosa... al principio tenía la clase ListaCantantes, que la declaraba en otra clase, ponele TestLista, de modo que alguien escriba para usar el programa. El problema es que en la clase TestLista no podía trabajar con el array directamente. Tenía que declarar métodos en la clase ListaCantantes e invocarlos en TestLista.

Por ejemplo, un método que me diga cuántos elementos hay en la lista usando como retorno el método size. Si lo creo en TestLista dice que no encuentra el método.  No se si alguien me puede explicar esto, dejo archivado las 2 clases, por si hace falta.



Bueno, espero que no haya quedado algo suelto, y que se entienda. Cualquier respuesta es bienvenida =)

4
Hola.

Estoy confundido con una parte del ejemplo que dan en la entrega

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado1
{
    private String entradaTeclado;
   
    public EntradaDeTeclado1 (){
        entradaTeclado="";
        pedirEntrada();
    }

    public void pedirEntrada ()  { 
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();   
    }

    public String getEntrada () { return entradaTeclado; }

    public String getPrimeraPalabra(){
        for (int i=0;i< entradaTeclado.length()-1;i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;
    }

    public int getLongitud(){
        return entradaTeclado.length();
    }
}


Es sobre este método específicamente

Código: [Seleccionar]
public String getPrimeraPalabra(){
        for (int i=0;i< entradaTeclado.length()-1;i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;
    }

Hay 2 return. Uno dentro del bucle y otro fuera.
Ahora bien, el segundo return, fuera del bucle, me tendría que devolver el valor del String, cosa que si se cumple la sentencia if no muestra el
String completo, sino que retorno el substring.

Aunque habiendo un return dentro de un bucle, si borro el segundo return me tira error al compilar.

Bueno, por ejemplo, si en una sentencia o un bucle tengo mas de una condición, primero se verifica el que aparece a la izquierda. Si la condición se cumple, se sigue con la siguiente condición y así.
Pero en el momento en que no se cumpla alguna condición no se verifican las otras.

Ahora, esto se aplica al método que cité? Se cumplió una condición que.. "valida" un return (devolver el substring), entonces no se verifica el siguiente (devolver el String)




Cambiando de tema, pero sobre el mismo método, lo probé con valor "hola mundo"

Código: [Seleccionar]
return entradaTeclado.substring(0, i+1);         }
con esa línea me devuelve "hola "


le saqué el +1 en el substring

Código: [Seleccionar]
return entradaTeclado.substring(0, i);         }
y devuelve "hola".


luego a

Código: [Seleccionar]
for (int i=0;i< entradaTeclado.length()-1;i++) {
le saqué el -1 y no cambia nada el resultado. no se cuál sería su... "propósito"

lo único que se me ocurre con -1 es algo así

Código: [Seleccionar]
for (int i=0;i<= entradaTeclado.length()-1;i++) {
length cuenta desde el 1, mientras que substring o métodos de Character desde el 0, entonces al usar operador <= se tendría que restar 1


comento estas 2  últimas cosas para tratar de entender el por qué está así escrito. aunque compile, un pequeño cambio y tal vez obtengas un bucle infinito, o que haga algo diferente a lo que querías que haga el método.

lo de la primera línea  tal vez no sea nada, pero del segundo directamente no lo entiendo. hay algo que se me escapa, o , nose, por eso antes de quemarme la cabeza aprovecho para consultar.

Gracias de antemano

5
Hola.

Las variables globales las declaré tipo String porque la finalidad del programa es mostrar el resultado en forma de texto

y porque el programa se basa en imprimir todos los resultados en un texto, también declaré los métodos como private y void.

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaString
{
    private String texto;
    private String textoLongitud;
    private String esA;
   
    public EntradaString(){
        texto="";
        textoLongitud="";
        esA="";
    }
   
    private void escribaCadena(){
        Scanner teclado=new Scanner (System.in);
        System.out.println("Escriba algo.");
        texto=teclado.nextLine();
    }
   
    private void contarCaracteres(){
        if (texto.length()<5){textoLongitud="menos de 5";}
        else if (texto.length()>=5&&texto.length()<=15) {textoLongitud="entre 5 y 15";}
        else {textoLongitud="mas de 15";}
    }
   
    private void comienzoA(){
        String comprueba=texto.substring(0,1);
        if (comprueba.equalsIgnoreCase("a")){esA="comienza con a.";}
        else {esA="no comienza con a.";}
    }
   
    public static void main (String[]args){
        EntradaString textoEntrada=new EntradaString();
        textoEntrada.escribaCadena();
        textoEntrada.contarCaracteres();
        textoEntrada.comienzoA();
        System.out.println("La cadena introducida tiene "+textoEntrada.textoLongitud+" y "+textoEntrada.esA);
    }
}


Luego quise usar el charAt para ver si comienza con "a" y que el programa preguntara si queria contar todos los caracteres o solo las letras.

Código: [Seleccionar]
import java.util.Scanner;
public class ProbarEntradaString
{
    private String texto;
    private String cadenaLongitud;
    private String esA;
   
    public ProbarEntradaString(){
        texto="";
        cadenaLongitud="";
        esA="";
    }
   
    private void ingresarTexto(){
        Scanner teclado=new Scanner(System.in);
        System.out.println("Escriba algo.");
        texto=teclado.nextLine();   
    }
   
    private void contadorCaracteres(){
        if (texto.length()<5){cadenaLongitud="menos de 5 caracteres";}
        else if(texto.length()>=5&&texto.length()<=15){cadenaLongitud="entre 5 y 15 caracteres";}
        else {cadenaLongitud="mas de 15 caracteres";}
}
   
    private void contadorLetras(){
        int letras=0;
        for (int x=0;x<texto.length();x++) {
            if(Character.isLetter(texto.charAt(x))) {letras++;}
        }   
        if (letras<5){cadenaLongitud="menos de 5 letras.";}
        else if (letras>=5&&letras<=15){cadenaLongitud="entre 5 y 15 letras.";}
        else {cadenaLongitud="mas de 15 letras.";}
    }

    private void comienzoA(){
        if(Character.toLowerCase(texto.charAt(0))=='a' ) {esA="comienza con a.";}
        else {esA="no comienza con a.";}
    }

    public void elegirContador(){
        Scanner teclado=new Scanner(System.in);
        System.out.println("Contar todos los caracteres(escriba car) o solo letras(escriba let)?");
        String opcion=teclado.nextLine();
        if (opcion.equalsIgnoreCase("car")){contadorCaracteres();}
        else if (opcion.equalsIgnoreCase("let")){contadorLetras();}
        else {System.out.println("No eligió una opción correcta.");elegirContador();}           
    }
   
    public static void main (String[]args){
       ProbarEntradaString probar=new ProbarEntradaString();
       probar.ingresarTexto();
       probar.elegirContador();
       probar.comienzoA();
       System.out.println("El texto introducido tiene "+probar.cadenaLongitud+" y "+probar.esA);
    }
}

6
Hola.

Código: [Seleccionar]
a)¿Es posible llamar a un método externo de un objeto que ha sido declarado pero no creado?
Me cuesta entender qué es un objeto declarado pero no creado. Diría que es una clase no instanciada todavía.
Mientras que el método se haya declarado de acceso público, se puede. Me imagino que habrá clases con métodos pensados solo para ser invocados externamente, de uso frecuente o universal, como la clase String de java y su método substring.

Código: [Seleccionar]
b) ¿Es posible llamar a un método externo de un objeto “A” que ha sido declarado y creado pero cuyo constructor está vacío?
Justamente se podría invocar un método setter. Podría haber una clase que compile los métodos setter y getter de varios objetos, cosa de actualizar los datos con un misma clase en vez de entrar objeto por objeto.

Código: [Seleccionar]
c) Una llamada al método pow de la clase Math que hacemos dentro de un método definido en una clase ¿Es una llamada a un método interno o a un método externo? ¿La llamada al método pow se hace sobre un objeto declarado y creado o no declarado y no creado?
Llamada a método externo, sobre un objeto declarado pero no creado.


Elegir entre declarado y creado, o no declarado y no creado me confunde de nuevo sobre qué es un objeto declarado.

Aver, clase es como el modelo, o la plantilla de todo objeto creado de él. Declarar un objeto, no, no se qué es, solo se me ocurre una forma de decir crear una clase.



7
Hola, tengo una consulta. Una parte del código que dan como ejemplo aparece esto

Código: [Seleccionar]
public String getDatosTaxiCond () {
        String matricula = vehiculoTaxi.getMatricula();
        String distrito = vehiculoTaxi.getDistrito();
        int tipoMotor = vehiculoTaxi.getTipoMotor();
        String cadenaTipoMotor = "";

        if (tipoMotor ==0) { cadenaTipoMotor = "Desconocido"; }
        else if (tipoMotor == 1) { cadenaTipoMotor = "Gasolina"; }
        else if (tipoMotor == 2) { cadenaTipoMotor = "Diesel"; }

        String datosTaxiCond = "El objeto TaxiCond presenta estos datos. Matrícula: " + matricula +
            "\n Distrito: " + distrito + " Tipo de motor: " + cadenaTipoMotor;

        System.out.println (datosTaxiCond);
        return datosTaxiCond;

Crea variables locales y le asignan los métodos de las otras clases.

Pregunto, se podría hacer directo? algo así?

Código: [Seleccionar]
public String getDASDASDASDSA () {
       
        String cadenaTipoMotor = "";

        if (vehiculoTaxi.getTipoMotor() ==0) { cadenaTipoMotor = "Desconocido"; }
        else if (vehiculoTaxi.getTipoMotor() == 1) { cadenaTipoMotor = "Gasolina"; }
        else if (vehiculoTaxi.getTipoMotor( )== 2) { cadenaTipoMotor = "Diesel"; }

        String datosTaxiCond = "El objeto TaxiCond presenta estos datos. Matrícula: " + vehiculoTaxi.getMatricula()+"  \nDistrito+: " + vehiculoTaxi.getDistrito() + " Tipo de motor: " + cadenaTipoMotor;

        System.out.println (datosTaxiCond);
        return datosTaxiCond;
    }

Funciona bien, pero no se si se consideraria adecuado el modo para programar

8
Hola. Tengo una consulta sobre esto:

Código: [Seleccionar]
Si peso es una variable de tipo int y sobrepeso es una variable de tipo double ó boolean debemos evitar sentencias como sobrepeso = 2 * peso
pero dan este ejemplo de sentencia de asignación compuesta:

Código: [Seleccionar]
saldo  –= precioCaja * cantidadCajas;
precio debe ser tipo double, y cantidad int.
es porque no generaria ningún problema en pasar de entero a decimal?

después, en el curso anterior, el CU00634B , nos pide:

Código: [Seleccionar]
Dadas las variables de tipo int con valores A = 5, B = 3, C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:

a) A > 3                                                            b) A > C                                               c) A < C
etc...

con lo que devuelvo un valor boolean en base a valores int.




9
Hola. Anduve probando un poco y me topé con esto.

Con la primer clase me resulta bien:

Código: [Seleccionar]
import java.util.Scanner;

public class ConAsignarBucle {
    private static int total=0;
    private static int permiteBucle=-1;
   
    public ConAsignarBucle (){
        total=0;
        permiteBucle=-1;
}
       
    public static void main (String [] args) { 
        Scanner teclado=new Scanner (System.in);
        System.out.println ("Escriba un numero. Escribir 0 indica que ha terminado :");
               
        while (permiteBucle !=0){
            permiteBucle=teclado.nextInt ();
            total+=permiteBucle ;
            if (permiteBucle!=0)
            System.out.print ("Escriba un numero: ");   
        }
       
System.out.println ("El total es : "+total);
     }

}

Probé poner a esto

Código: [Seleccionar]
            if (permiteBucle!=0)
            System.out.print ("Escriba un numero:");   

ponerle corchetes (perdon, aun no me se bien los nombres de cada linea, parte)

Código: [Seleccionar]
            if (permiteBucle!=0) {
System.out.print ("Escriba un numero:");   
}

La clase sigue funcionando bien. Pero por qué? Agregar corchetes no deberia afectar al código?



Bueno, luego probé lo siguiente, lo que ya no me resultó bien:

Código: [Seleccionar]
import java.util.Scanner;

public class SinAsignarBucle {

public static void main (String [] args) { 
int total=0;

Scanner teclado=new Scanner (System.in);
System.out.println ("Escriba un numero. Escribir 0 indica que ha terminado: ");

while (teclado.nextInt () !=0){
total+=teclado.nextInt (); 
if (teclado.nextInt () !=0)
System.out.println ("Escriba la duracion del siguiente tema: ");
}

System.out.println ("El total es "+total);
}



Compila, se ejecuta, y me da el resultado final, la suma, lo unico que tengo que tipear 3 veces algun numero.

Me interesa saber qué hice mal, y si hay alguna forma de arreglarlo sin hacerlo como la primer clase.

Tambien me interesa mucho saber por qué, al ejecutar el código, tengo que ingresar 3 veces un número. Por qué justo 3? si es que se me entiende. Variando un poco el codigo me llegó a pedir 2 veces.





Y una ultima consulta.  No se si ya esto tendría que ir en un nuevo tema o no, el caso es que no podía lograr tipear decimales, me tiraba error. Y encontré esto que me funcionó

Código: [Seleccionar]
import java.util.Scanner;

public class Prueba1 {

public static void main(String[] args) {
Scanner AH=new Scanner (System.in);
System.out.println("Introduce Un Numero:");

float num=0;
float bandera=-1;
while (bandera!=0){
bandera=Float.parseFloat(AH.next());
num+=bandera;
if(bandera==0)

System.out.println("la suma final es:"+num);
}
}
}


De aca me surgen 2 dudas.  Para poder tipear decimales lo que me sirve es esta linea?

Código: [Seleccionar]
x=Float.parseFloat(AH.next());
especificando, seria esto:
Código: [Seleccionar]
Float.parseFloat(AH.next());

Perdon si junté varias cosas en un mismo tema. O si omití algo importante.


10
Aprender a programar desde cero / blueJ. Crear un objeto y guardarlo
« en: 11 de Noviembre 2014, 01:39 »
hola

empecé a usar el blueJ

creé la clase Taxi, lo compilé y desde el programa le hago botón derecho a la clase, para crear un nuevo objeto seleccionando "new Taxi()"

me crea el objeto, como se ve en los tutoriales de la página, pero no encuentro la manera de guardar ese objeto creado.

hay manera de guardar el objeto?

11
Código: [Seleccionar]
public class Profesor{
private String nombre="";
private String apellidos="";
private int edad=0;
private boolean casado=false;
private boolean especialista=false;

public Profesor (String nombreProfesor, String apellidosProfesor){
nombre=nombreProfesor;
apellidos=apellidosProfesor;
edad=30;
casado=true;
especialista=true;
}

public Profesor (){
nombre="Carlos";
apellidos="Ñoqui";
edad=49;
casado=false;
especialista=true;
}

public String getNombre () {return nombre;}
public String getApellidos () {return apellidos;}
public int getEdad () {return edad;}
public boolean getCasado () {return casado;}
public boolean getEspecialista () {return especialista;}

public static void main (String[] ar){
Profesor profesor1=new Profesor ("Mario","Luigi");
profesor1.getNombre ();
profesor1.getApellidos ();
profesor1.getEdad ();
profesor1.getCasado ();
profesor1.getEspecialista ();

Profesor profesor2=new Profesor ();
profesor2.getNombre ();
profesor2.getApellidos ();
profesor2.getEdad ();
profesor2.getCasado ();
profesor2.getEspecialista ();
}
}


Quisiera saber si está bien armado.

También quiero consultar algo.

Ando usando el NotePad++ para escribir. Cuando compilo y ejecuto, las palabras con acento me sale con caracteres, como que no me toma el acento y muestra otra cosa.

Cómo arreglo eso?

12
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;

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".