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 - paramonso

Páginas: 1 [2] 3 4 5 6 7 8
21
Hola. Dejo el Ejercicio CU00693B del manual pdf Java desde Cero. public, private y protected Java.Tipos de modificadores de acceso. Visibilidad en clases, subclases.

Citar
EJERCICIO

Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.

Como atributos de la superclase tendremos nombre (String), edad (int) y añosConsolidados (int) declarados como protected.

En la subclase se trabajará con el campo adicional añosEmerito declarado como private.

Un método de la subclase será double obtenerSalarioBase () que obtendrá el salario base como (925 + añosConsolidados * 33.25 + 47.80 * añosEmerito).

Intenta acceder directamente al campo añosConsolidados desde la subclase (como si fuera un campo más de la subclase) para implementar este método. ¿Es posible sin utilizar una invocación a super ni un método get? ¿Qué ocurre si el atributo en la superclase lo declaras private?


¿Es posible sin utilizar una invocación a super ni un método get?

Si. Con protected se puede acceder desde todas las clases que estén dentro del mismo paquete.


¿Qué ocurre si el atributo en la superclase lo declaras private?

Da un error cuando vas a compilar "añosConsolidados has private access in Profesor" por que al declarar un campo, variable, etc. como private solo se puede acceder desde dentro de la clase donde se declara.


Clase Profesor

Código: [Seleccionar]
public class Profesor
{
    // instance variables -
    protected String nombre;
    protected int edad;
    protected int añosConsolidados;

    /**
     * Constructores
     */

    public Profesor ()
    {
        // initialise instance variables
        nombre="";
        edad=0;
        añosConsolidados=0;
    }
    //Constructor sobrecargado
    public Profesor (String nombre,int edad,int añosConsolidados)
    {
        // initialise instance variables
        this.nombre=nombre;
        this.edad=edad;
        this.añosConsolidados=añosConsolidados;
    }
    //metodos get 
    public String getNombre() {
        return nombre;
    }

    public int getEdad() {
        return edad;
    }

    public int getAñosConsolidados() {
        return añosConsolidados;
    }
    //metodos set
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
public void setEdad(int edad) {
        this.edad = edad;
    }
    public void setAñosConsolidados(int añosConsolidados) {
        this.añosConsolidados =añosConsolidados;
    }
    public double obtenerSalarioBase(){
        double salarioBase;
        salarioBase=925+añosConsolidados*33.25;
        return salarioBase;
    }

}

Clase ProfesorEmerito
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor
{
    // instance variables -
    private int añosEmeritos;
    /**
     * Constructores
     */

   
    //Constructor sobrecargado
    public ProfesorEmerito(String nombre,int edad,int añosConsolidados,int añosEmeritos)
    {
        super(nombre,edad,añosConsolidados);
        this.añosEmeritos=añosEmeritos;
    }

    public int getAñosEmeritos() {
        return añosEmeritos;
    }
    //metodos set
    public void setAñosEmeritos(int añosEmeritos) {
        this. añosEmeritos = añosEmeritos;
    }

    public double obtenerSalarioBase(){
        double salarioBase=( salarioBase=925+añosConsolidados*33.25+(47.80 * añosEmeritos));
        return salarioBase;
       
    }
}

Clase TestProtected
Código: [Seleccionar]
public class TestProtected
{
    public static void main(String[] args){
        ProfesorEmerito profeEmerito= new ProfesorEmerito("Jose Marquez de Vicente",45,15,10);
        double salarioBaseCalculado=profeEmerito.obtenerSalarioBase();
        System.out.print("El salario Base Calculado del Profesor es de :"+salarioBaseCalculado+" Euros");
         
       
    }
}

Gracias. ;)

22
Hola. Ejercicio CU00692B del curso pdf de programación java desde cero.
Palabra clave super: invocar métodos de superclases desde subclases en Java. Ejemplo básico.

Citar
EJERCICIO

Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.

Como atributos de la superclase tendremos nombre (String), edad (int) y añosConsolidados (int). Un método de la superclase será double obtenerSalarioBase () que obtendrá el salario base como (725 + el número de años consolidados multiplicado por 33.25).

En la subclase se trabajará con el campo adicional añosEmerito. Queremos hacer lo siguiente: sobreescribir el método obtenerSalarioBase () en la subclase para calcular el salario base del profesor emérito invocando mediante la palabra clave super al cálculo del salario base de Profesor y añadiéndole la cantidad de (47.80 * añosEmerito).


Clase Profesor
Código: [Seleccionar]
public class Profesor
{
    // instance variables -
    private String nombre;
    private int edad;
    private int añosConsolidados;

    /**
     * Constructores
     */

    public Profesor ()
    {
        // initialise instance variables
        nombre="";
        edad=0;
        añosConsolidados=0;
    }
    //Constructor sobrecargado
    public Profesor (String nombre,int edad,int añosConsolidados)
    {
        // initialise instance variables
        this.nombre=nombre;
        this.edad=edad;
        this.añosConsolidados=añosConsolidados;
    }
    //metodos get 
    public String getNombre() {
        return nombre;
    }

    public int getEdad() {
        return edad;
    }

    public int getAñosConsolidados() {
        return añosConsolidados;
    }
    //metodos set
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
public void setEdad(int edad) {
        this.edad = edad;
    }
    public void setAñosConsolidados(int añosConsolidados) {
        this.añosConsolidados =añosConsolidados;
    }
    public double obtenerSalarioBase(){
        double salarioBase;
        salarioBase=725+añosConsolidados*33.25;
        return salarioBase;
    }

}

Clase ProfesorEmerito
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor
{
    // instance variables -
    int añosEmeritos;
    /**
     * Constructores
     */

    public ProfesorEmerito()
    {
        añosEmeritos=0;

    }
    //Constructor sobrecargado
    public ProfesorEmerito(String nombre,int edad,int añosConsolidados,int añosEmeritos)
    {
        super(nombre,edad,añosConsolidados);
        this.añosEmeritos=añosEmeritos;
    }

    public int getAñosEmeritos() {
        return añosEmeritos;
    }
    //metodos set
    public void setAñosEmeritos(int añosEmeritos) {
        this. añosEmeritos = añosEmeritos;
    }

    public double obtenerSalarioBase(){
        double salarioBase=(super.obtenerSalarioBase()+(47.80 * añosEmeritos));
        return salarioBase;
       
    }
}

TestSobreescribirMetodos
Código: [Seleccionar]
public class TestSobreescribirMetodos
{
    public static void main(String[] args){
        ProfesorEmerito profeEmerito= new ProfesorEmerito("Jose Marquez de Vicente",45,15,10);
        double salarioBaseCalculado=profeEmerito.obtenerSalarioBase();
        System.out.print("El salario Base Calculado del Profesor: "+profeEmerito.getNombre()+"\n"+
        "con una Edad de :"+profeEmerito.getEdad()+" años\n"+
        "Con "+profeEmerito.getAñosConsolidados()+ " años Consolidados\n"+
        "y con "+profeEmerito.getAñosEmeritos()+" años Emeritos\n"+
        "es de :"+salarioBaseCalculado+" Euros");
   
    }
}

Graxies ;)

23
Hola. Dejo el Ejercicio CU00690B del curso pdf de programación Java.
Sobreescribir métodos en Java. Tipo estático y dinámico. Ligadura. Métodos polimórficos.

Citar
EJERCICIO

Responde a las siguientes preguntas:

Supongamos la superclase Vehiculo que representa a cualquier tipo de vehículo y la subclase Taxi que representa a un tipo de vehículo concreto.

a) ¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?

Si.
El objeto puede apuntar a su SuperClase hiciendo Casting o conversion de tipos.
Vehiculo v=new Vehiculo.
Taxi t= new Taxi
En este caso se supone que taxi es una subclase de Vehiculo.
Se hace el Casting : t=(Taxi) v;
No se puede hacer t=v por que el objeto Vehiculo no puede heredar del objeto Taxi ya que este es una subclase de vehiculo y hereda de el.
Vehiculo al ser la superclase de taxi no puede heredar de este.
Es como si tuvieramos dos cajas una grande y otra mas pequeña, la caja grande es Vehiculo y la pequeña Taxi.
La caja grande (Vehiculo)) puede contener a Taxi pero la pequeña(Taxi) no puede contener a Vehiculo porque no cabe.

Citar
b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?


   Si. Siempre que Taxi herede de Vehiculo.

Citar
c) Escribe el código de una clase Vehiculo con los atributos matricula (String) y numeroDeRuedas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un vehículo.
 

Clase Vehiculo

Código: [Seleccionar]
/**
 * Write a description of class Vehiculo here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Vehiculo
{
    private String matricula;
    private int numeroRuedas;

    /**
     * Constructor for objects of class Vehicuo
     */
    public Vehiculo(String matricula, int numeroRuedas)
    {
        this.matricula=matricula;
        this.numeroRuedas=numeroRuedas;
    }

    public String getMatricula() {
        return matricula;
    }

    public int getNumeroRuedas () {
        return numeroRuedas;
    }

    public void setMatricula(String matricula) {
        this.matricula =matricula;
    }

    public void setNumeroRuedas(int numeroRuedas) {
        this.numeroRuedas = numeroRuedas;
    }

    public String toString() {
        return  "Matricula : "+matricula +" Numero de Ruedas :"+numeroRuedas;
    }
}

Citar
d) Escribe el código de una clase Taxi que herede de vehículo y que además de los atributos de Vehiculo lleve un atributo adicional nombreDelConductor (String) y numeroDePlazas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un Taxi.

Clase Taxi
Código: [Seleccionar]
/**
 * Write a description of class Taxi here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Taxi extends Vehiculo
{
     private String nombreDelConductor;
     private int numeroDePlazas;
   
    /**
     * Constructor for objects of class Taxi
     */
    public Taxi(String matricula, int numeroRuedas,String nombreDelConductor,int numeroDePlazas)
    {
        super(matricula,numeroRuedas);
        this.nombreDelConductor=nombreDelConductor;
        this.numeroDePlazas=numeroDePlazas;
    }
   
   
    public String getnombreDelConductor() {
        return nombreDelConductor;
    }

    public int getNumeroDePlazas () {
        return numeroDePlazas;
    }
    public void setNombreDelConductor(String nombreDelConductor) {
        this.nombreDelConductor =nombreDelConductor;
    }

    public void setNumeroDePlazas(int numeroDePlazas) {
        this.numeroDePlazas = numeroDePlazas;
    }

    public String toString() {
        return   "Conductor: "+nombreDelConductor +" Numero de Plazas :"+numeroDePlazas;
    }
}

Citar
e) Escribe el código de una clase test con el método main que cree un objeto cuyo tipo es Vehiculo, instanciado como Taxi. Establece valores para sus atributos y usa el método toString().


Clase Test
Código: [Seleccionar]
/**
 * Write a description of class TestVehiculo here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestVehiculo
{
      public static void main (String [ ] Args) {
      Vehiculo taxi= new Taxi("25986-KBM",4,"PEPE RUIPEREZ",7);
      System.out.println(taxi.toString());
    }
}

Citar
¿Qué método toString() resulta de aplicación, el propio de la clase Vehiculo o el propio de la clase Taxi? ¿Por qué?

El de la clase Taxi ya que se ha creado el objeto instanciando a Taxi.


Si el objeto se hubiera instanciado como Vehiculo taxi=new Vehiculo("25986-KBM",4 );
Se aplicaria el metodo de la clase Vehiculo.
En el caso de que no existiera el metodo toString() en el Objeto Taxi el JVM busca en las clases superiores en tiempo de ejecucion en este caso en Vehiculo y si no estuviera seguiria subiendo hasta llegar a la SuperClase Objet y si no lo encuentra en la SuperClase Object no llega a compilar.

Gracias.
Un saludo. ;)

24
Hola. Dejo el Ejercicio. CU00688B del curso de programación básica Java de aprenderaprogramar. Entrega: Concepto de polimorfismo y variables polimórficas en Java. Jerarquía de tipos.

Modulo de la clase TestHerencia4.
Código: [Seleccionar]
/**
 *Modulo de la clase TestHerencia4.
 * Esta clase crea los objetos y los llena de datos.
 * Crea una lista de envio y la llena con los datos de la clase Productos.
 * Luego llama al modulo de la clase EnvioDeProductos
 * @author (paramonso)
 * @version (ver.1 // 11/11/2018)
 */

public class TestHerencia4
{   

    public static void main (String [] args){
        //Variable para separar listados
        String separador = new String(new char[125]).replace("\0", "*");
        //Crear lista de envios
        EnvioDeProductos listaEnvioProductos=new EnvioDeProductos();
        //Crear los objetos
        ProductoFresco productoFrescoA = new ProductoFresco("Patatas","15-1-2019","PA25421",5,"12-4-2018","España"); 
        ProductoFresco productoFrescoB = new ProductoFresco("Cebollas","15-2-2019","CE25325",5,"12-5-2018","Francia"); 

        ProductoRefrigerado productoRefrigradoA = new ProductoRefrigerado ("Merluza","15-10-2019","AS26453",1,"OSA2020" );
        ProductoRefrigerado productoRefrigradoB = new ProductoRefrigerado ("Sardinas","22-01-2019","AS26454",1,"OSA2018" );
        ProductoRefrigerado productoRefrigradoC = new ProductoRefrigerado ("Mejillon","12-06-2019","AS26455",1,"OSA2032" );

        CongeladoPorAgua productoPorAguaA = new CongeladoPorAgua ("Patata Prefrita","15-02-2021","AS25953",5,-25,5);
        CongeladoPorAgua productoPorAguaB = new CongeladoPorAgua ("Cebolla Cortada","18-12-2021","AS25965",5,-25,5);
       
        CongeladoPorAire productoPorAireA = new CongeladoPorAire ("Sepia Extra","15-11-2025","AS25853",-15,-25,5,8,12,25);
        CongeladoPorAire productoPorAireB = new CongeladoPorAire ("Anillas Calamar","15-11-2025","AS25853",-15,-25,5,8,12,25);
       
        CongeladoPorNitrogeno productoPorNitroA = new CongeladoPorNitrogeno ("Helado Fresa","15-12-2025","AS25453",5,-25,"Comprimido",5);
        //Añadir a la lista
        listaEnvioProductos.addListaEnvio(productoFrescoA);listaEnvioProductos.addListaEnvio(productoFrescoB);
       
        listaEnvioProductos.addListaEnvio(productoRefrigradoA);listaEnvioProductos.addListaEnvio(productoRefrigradoB);
        listaEnvioProductos.addListaEnvio(productoRefrigradoC);
       
        listaEnvioProductos.addListaEnvio(productoPorAguaA);listaEnvioProductos.addListaEnvio(productoPorAguaB);
       
        listaEnvioProductos.addListaEnvio(productoPorAireA);listaEnvioProductos.addListaEnvio(productoPorAireB);
        listaEnvioProductos.addListaEnvio(productoPorNitroA);
        //Presentar el tamaño de la lista
        System.out.println("Número de productos en el envio: "+listaEnvioProductos.getListaProductos().size());
       
        // Presentar en pantalla los productos de la lista
        listaEnvioProductos.mostrarDatosEnvio();
    }

}


Modulo de la Clase EnvioDeProductos.
Código: [Seleccionar]
/**
 *  Modulo de la clase EnvioDeProductos.
 *  En esta clase se crea la lista y se llena con los productos.
 *
 * @author (paramonso)
 * @version (ver.1 // 11/11/2018)
 */
import java.util.*;
public class EnvioDeProductos
{
    private LinkedList<Productos> listaProductos;
    public EnvioDeProductos()
    {
        listaProductos = new LinkedList<Productos>();
    }

    public LinkedList getListaProductos(){return listaProductos;}

    public void setListaProductos(LinkedList listaProductos){this.listaProductos=listaProductos;}

    public   LinkedList addListaEnvio(Productos producto){
        listaProductos.add(producto);
        return listaProductos;
    }
/**  Aqui esta el iterator para llamar a las demas clases atraves de la clase Productos,
 *  en la cual se produce el polimorfismo en el procedimiento presentarDatos().
 *  Al llevar todas las clases el procedimiento presentarDatos() en Productos datos=it.next se copia la clase
 *  que contiene los datos la lista y al llamar a dato.presentarDatos() se produce el polimorfismo.??????
 */
    public void mostrarDatosEnvio(){
        Iterator <Productos> it = listaProductos.iterator();
        int i=1;
        while(it.hasNext()){
            Productos dato = it.next();
            System.out.println ("PRODUCTO Nº : "+i);
            dato.presentarDatos();
            String separador = new String(new char[125]).replace("\0", "*");
            System.out.println ( separador);
            i++;
        }
    }
}


Modulo de la clase Productos
Código: [Seleccionar]
/**
 * Modulo de la clase Productos
 *Gestión de una empresa agroalimentaria que
 *trabaja con tres tipos de productos: productos frescos,
 *productos refrigerados y productos congelados (Congelados por agua,Congelados por Arie, Congelados por Nitrogeno).
 *
 * @author  Pablo Ramón Pérez Blasco "paramonso"
 * @version (1.0 - 11/11/2018)
 */
public class Productos
{
    // instance variables - replace the example below with your own
    public String nombre;
    public String fechaCaducidad;
    public String numeroLote;

    /**
     * Constructor for objects of class Producto
     */
    public Productos(String nombre,String fechaCaducidad,String numeroLote)
    {
        this.nombre=nombre;
        this.fechaCaducidad = fechaCaducidad;
        this.numeroLote=numeroLote;
    }

   

    public String getNombre() {return nombre; }
     
    public String getFechaCaducidad() { return fechaCaducidad; }

    public String getNumeroLote(){return numeroLote;}

    public void setNombre  (String nombre) {
        this.nombre = nombre;
    }
   
    public void setFechaCaducidad  (String fechaCaducidad ) {
        this.fechaCaducidad = fechaCaducidad;
    } //Cierre del metodo
   
    public void setNumeroLote  (String numeroLote ) {
        this.numeroLote = numeroLote;
    } //
   
    //POLIMORFISMO presentarDatos()
     public void presentarDatos(){
     String datos="PRODUCTO\n"; 
     datos=datos+"Nombre: " + getNombre() + " Fecha de Caducidad: " + getFechaCaducidad()  +
      "Nº Lote: " + getNumeroLote();
      System.out.println(datos);
    }
}


SubClase TemperaturaManteni  de la SuperClase Productos
Código: [Seleccionar]
/**
 * SubClase TemperaturaManteni  de la SuperClase Productos
 * Temperatura de mantenimiento de los productos Frescos, Refrigerados y Congelados
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 *
 *
 */
public class TemperatManteni extends Productos
{
    public int tempMant  ;
   /**
     * Constructor para los objetos de la clase ProductosFrescos
     */
    public TemperatManteni(String nombre,String fechaCaducidad,String numeroLote,int tempMant)
    { super(nombre,fechaCaducidad ,numeroLote);
        this. tempMant =  tempMant;
         
    }
    public int getTempMant() { return  tempMant; }
    public void setTempMant  (int tempMant) {
        this. tempMant =  tempMant;
    } //Cierre del metodo
 //POLIMORFISMO presentarDatos()
     public void presentarDatos(){
     String datos="TEMPERATURA MANTENIMIENTO\n"; 
     datos=datos+"Temperatura Mantenimiento : " + getTempMant()+"ºC";
      System.out.println(datos);
    }
}


SubClase  ProductoFresco extends TemperatManteni de la SuperClase Productos
Código: [Seleccionar]

/**
 * SubClase productos frescos de la SuperClase Productos
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 */
public class ProductoFresco extends TemperatManteni
{
    public String fechaEnvasado;
    public String paisOrigen;

    /**
     * Constructor para los objetos de la clase ProductosFrescos
     */
    public ProductoFresco(String nombreProducto,String fechaCaducidad,String numeroLote,int temperaturaMantenimiento,String fechaEnvasado,String paisOrigen )
    { super(nombreProducto, fechaCaducidad ,numeroLote,temperaturaMantenimiento);
        this.fechaEnvasado = fechaEnvasado;
        this.paisOrigen=paisOrigen;
    }

    public String getFechaEnvasado() { return fechaEnvasado; }
    public String getPaisOrigen(){return paisOrigen;}
    public void setFechaEnvasado  ( ) {
        this.fechaEnvasado = fechaEnvasado;
    } //Cierre del metodo
    public void setPaisOrigen  ( ) {
        this.paisOrigen = paisOrigen;
    } //
    //POLIMORFISMO presentarDatos()
    public void presentarDatos() {
        String datos="PRODUCTOS FRESCOS\n";
        datos=datos+"Nombre Producto: "+this.nombre+" | "+
        "Fecha Caducidad : "+this.getFechaCaducidad()+" | "+
        "Nº Lote : "+this.getNumeroLote()+" | "+
        "Tem.Mant. : "+this. getTempMant()+"ºC | "+
        "F.Envasado :"+ this.getFechaEnvasado()+" | "+
        "Pais Origen : "+ this.getPaisOrigen()+"\n";   
          System.out.print(datos);
    }
}




SubClase Productos Refrigerados de la SuperClase Productos  .
Código: [Seleccionar]
/**
 *  SubClase Productos Refrigerados de la SuperClase Productos  .
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 */
public class ProductoRefrigerado extends TemperatManteni
{
    public String  codigoOSA; //codigoOSA ==> codigo Organismo Supervision Alimentaria

    /**
     * Constructor para los objetos de la clase ProductosRefrigerados
     */
    public ProductoRefrigerado(String nombre,String fechaCaducidad,String numeroLote,int tempMant,String codigoOSA )
    {super(nombre,fechaCaducidad ,numeroLote,tempMant);
        this. codigoOSA =  codigoOSA;

    }

   

    public String getCodigoOSA() { return codigoOSA; }

    public void setCodigoOSA  (String codogoOSA ) {
        this.codigoOSA = codigoOSA;
    } //Cierre del método
//POLIMORFISMO presentarDatos()
    public void presentarDatos()  {
        String datos="PRODUCTOS REFRIGERADOS\n";
        datos=datos+"Nombre Producto: "+this.nombre+" | "+
        "Fecha Caducidad : "+this.getFechaCaducidad()+" | "+
        "Nº Lote : "+this.getNumeroLote()+" | "+
        "Tem.Mant. : "+this. getTempMant()+"ºC | "+
        "Codigo OSA:"+ this.getCodigoOSA()+"\n";
         System.out.print(datos);
    }
}


SubClase Productos Congelados de la SuperClase Productos
Código: [Seleccionar]
/**
 *  SubClase Productos Congelados de la SuperClase Productos
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 */
public class ProductoCongelado extends TemperatManteni
{
    public int temperaturaCongelacion ;
    /**
     * Constructor para los objetos de la clase ProductosCongelados
     */
    public ProductoCongelado(String nombre,String fechaCaducidad,String numeroLote,int tempMant,int  temperaturaCongelacion)
    { super(nombre,fechaCaducidad ,numeroLote,tempMant);
        this. temperaturaCongelacion =  temperaturaCongelacion;

    }

   

    public int getTemperaturaCongelacion(){ return temperaturaCongelacion;}

    public void setTemperaturaCongelacion(int temperaturaCongelacion){
        this.temperaturaCongelacion=temperaturaCongelacion;
    }
}


SubClase CongeladoPorAire extends SubClase ProductoCongelado de la SuperClase Productos
Código: [Seleccionar]
/**
 * SubClase CongeladoPorAire extends SubClase ProductoCongelado de la SuperClase Productos
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 *
 *
 */
public class CongeladoPorAire extends ProductoCongelado
{
    int porcentNitrogeno;
    int porcentOxigeno;
    int porcentDioxidoCarbono;
    int porcentVaporAgua;

    /**
     * Constructor for objects of class CongeladosPorAire
     */
    public CongeladoPorAire(String nombreProducto,String fechaCaducidad,
    String numeroLote,int tempMant,int temperaturaCongelacion,
    int porcentNitrogeno,int porcentOxigeno,int porcentDioxidoCarbono,int porcentVaporAgua)
    {
        super(nombreProducto,fechaCaducidad ,numeroLote,tempMant,temperaturaCongelacion);
        this.porcentNitrogeno=porcentNitrogeno;
        this.porcentOxigeno=porcentOxigeno;
        this.porcentDioxidoCarbono=porcentDioxidoCarbono;
        this.porcentVaporAgua=porcentVaporAgua;
    }

    public int getporcentNitrogeno(){ return porcentNitrogeno;}

    public int getPorcentOxigeno(){ return porcentOxigeno;}

    public int getPorcentDioxidoCarbono(){ return porcentDioxidoCarbono;}

    public int getPorcentVaporAgua(){ return porcentVaporAgua;}

    public void setporcentNitrogeno(){this. porcentNitrogeno= porcentNitrogeno;}

    public void setPorcentOxigeno(){this. porcentNitrogeno= porcentOxigeno;}

    public void setPorcentDioxidoCarbono(){this. porcentDioxidoCarbono= porcentDioxidoCarbono;}

    public void setPorcentVaporAgua(){this. porcentNitrogeno= porcentVaporAgua;}
//POLIMORFISMO presentarDatos()
   public void presentarDatos() {
        // La variable datos se inicializa vacia en el metodo para que no se cargen las entradas anteriores en la variable
        String datos="CONGELADOS POR AIRE\n";
        datos=datos+"Nombre: "+this.nombre +" | "+
        "Fecha Cadu.: "+this.getFechaCaducidad()+" | "+
        "Nº Lote: "+this.getNumeroLote()+" | "+
        "Temp.Mant.: "+this.getTempMant ()+"ºC | "+
        "Temp. Conge.:"+ this.getTemperaturaCongelacion()+"ºC | "+
        "\n% de Nitrogeno: "+ this.getporcentNitrogeno()+"% | "+
        "% de Oxigeno: "+ this.getPorcentOxigeno()+"% | "+
        "% de Dioxido Carbono:"+ this.getPorcentDioxidoCarbono()+"% | "+
        "% de Vapor Agua: "+ this.getPorcentVaporAgua()+"%";   
        System.out.println(datos); 
    }

}


SubClase CongeladoPorAgua extends SubClase ProductoCongelado de la SuperClase Productos
Código: [Seleccionar]
/**
 * SubClase CongeladoPorAgua extends SubClase ProductoCongelado de la SuperClase Productos
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 *
 *
 */

public class CongeladoPorAgua  extends ProductoCongelado
{

    // instance variables - replace the example below with your own
    public int salinidadDelAgua;

    /**
     * Constructor for objects of class CongeladosPorAgua
     */
    public CongeladoPorAgua(String nombreProducto,String fechaCaducidad,
    String numeroLote,int tempMant,
    int temperaturaCongelacion,int salinidadDelAgua)

    {super(nombreProducto,fechaCaducidad ,numeroLote,tempMant,temperaturaCongelacion);
        this.salinidadDelAgua=salinidadDelAgua;
    }

    public int getSalinidadDelAgua(){ return salinidadDelAgua;}

    public void setSalinidadDelAgua(){
        this.salinidadDelAgua=salinidadDelAgua;
    }
//POLIMORFISMO presentarDatos()
    public void presentarDatos() {
        // La variable datos se inicializa vacia en el metodo para que no se cargen las entradas anteriores en la variable
       
        String datos="CONGELADOS POR AGUA\n"+
        "Nombre: "+this.getNombre()+" | "+
        "Fecha Caducidad: "+this.getFechaCaducidad()+" | "+
        "Nº Lote : "+this.getNumeroLote()+" | "+
        "Tem.Mant.: "+this.getTempMant()+"ºC | "+
        "Temperatura Conge. :"+ this.getTemperaturaCongelacion()+"ºC | "+
        "\nSalinidad gr. x l. :"+ this.getSalinidadDelAgua()+"gr.l\n";   
        System.out.print(datos);
    }

}


SubClase CongeladoPorNitrogeno extends SubClase ProductoCongelado de la SuperClase Productos
Código: [Seleccionar]
/**
 * SubClase CongeladoPorNitrogeno extends SubClase ProductoCongelado de la SuperClase Productos
 * @author (Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 - 11/11/2018)
 *
 *
 */



public class CongeladoPorNitrogeno extends ProductoCongelado
{
    String metodoCongelacion;
    int tiempoExpoAlNitrogeno;
     
    /*
     * Constructor for objects of class CongeladosPorNitrogeno
     */
    public CongeladoPorNitrogeno(String nombreProducto,String fechaCaducidad,
    String numeroLote,int tempMant,int temperaturaCongelacion,
    String metodoCongelacion,int tiempoExpoAlNitrogeno)
    {
        super(nombreProducto,fechaCaducidad ,numeroLote,tempMant,temperaturaCongelacion);
        this.metodoCongelacion=metodoCongelacion;
        this.tiempoExpoAlNitrogeno=tiempoExpoAlNitrogeno;
    }

    public String getMetodoCongelacion(){ return metodoCongelacion;}

    public int getTiempoExpoAlNitrogeno(){ return tiempoExpoAlNitrogeno;}

    public void setMetodoCongelacion(){ this.metodoCongelacion=metodoCongelacion;}

    public void setTiempoExpoAlNitrogeno(){this.tiempoExpoAlNitrogeno= tiempoExpoAlNitrogeno;}
   
    //POLIMORFISMO presentarDatos()
    public void presentarDatos(){
        // La variable datos se inicializa vacia en el metodo para que no se cargen las entradas anteriores en la variable
        String datos="CONGELADOS POR NITROGENO\n";
        datos=datos+"Nombre: "+this.nombre+" | "+
        "Fecha Cadu.: "+this.getFechaCaducidad()+" | "+
        "Nº Lote: "+this.getNumeroLote()+" | "+
        "Temp.Mant.: "+this.getTempMant()+"ºC| "+
        "Temp. Conge.:"+ this.getTemperaturaCongelacion()+"ºC | "+
        "\nMetodo Conge: "+ this.getMetodoCongelacion()+" | "+
        "Segun. Exp.al Nitro: "+ this.getTiempoExpoAlNitrogeno()+"seg.\n";   
         System.out.print(datos);
    }

}

Gracias.
Un saludo ;)

25
Hola Dejo el Ejercicio resuelto ejemplo de herencia simple, extends y super en Java. Constructores con herencia (CU00687B del tutorial pdf de programación Java).

Citar
EJERCICIO

Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados. Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica. Los productos frescos deben llevar la fecha de envasado y el país de origen. Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria, la fecha de envasado, la temperatura de mantenimiento recomendada y el país de origen. Los productos congelados deben llevar la fecha de envasado, el país de origen y la temperatura de mantenimiento recomendada.

Hay tres tipos de productos congelados: congelados por aire, congelados por agua y congelados por nitrógeno. Los productos congelados por aire deben llevar la información de la composición del aire con que fue congelado (% de nitrógeno, % de oxígeno, % de dióxido de carbono y % de vapor de agua). Los productos congelados por agua deben llevar la información de la salinidad del agua con que se realizó la congelación en gramos de sal por litro de agua. Los productos congelados por nitrógeno deben llevar la información del método de congelación empleado y del tiempo de exposición al nitrógeno expresada en segundos.

Crear el código de las clases Java implementando una relación de herencia siguiendo estas indicaciones:

a) En primer lugar realizar un esquema con papel y bolígrafo donde se represente cómo se van a organizar las clases cuando escribamos el código. Estudiar los atributos de las clases y trasladar a la superclase todo atributo que pueda ser trasladado.

b) Crear superclases intermedias (aunque no se correspondan con la descripción dada de la empresa) para agrupar atributos y métodos cuando sea posible. Esto corresponde a “realizar abstracciones” en el ámbito de la programación, que pueden o no corresponderse con el mundo real.

c) Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto cuando sea procedente.

Crear una clase testHerencia3 con el método main donde se creen: dos productos frescos, tres productos refrigerados y cinco productos congelados (2 de ellos congelados por agua, otros 2 por aire y 1 por nitrógeno). Mostrar la información de cada producto por pantalla.

Este es el diseño del ejercicio.
Para verlo bien abrirlo en una pestaña nueva .

 

El codigo lo pongo en un archivo adjunto ya que olisqueando en el foro vi en este hilo https://aprenderaprogramar.com/foros/index.php?topic=2342.msg11163#msg11163
un diseño bastante bueno y me lance a programar y se me hizo un poco extenso.

Espero que el ejercicio cumpla con todo lo que se pide en el enunciado.
Gracias un saludo.

26
Hola. Dejo el ejercicio CU00686B del curso aprende programación Java como si estuvieras en primero. Ejemplo de herencia en Java. Uso de palabras clave extends y super. Constructores con herencia. 

Citar
EJERCICIO

Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados. Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica. Los productos frescos deben llevar la fecha de envasado y el país de origen. Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria. Los productos congelados deben llevar la temperatura de congelación recomendada. Crear el código de las clases Java implementando una relación de herencia desde la superclase Producto hasta las subclases ProductoFresco, ProductoRefrigerado y ProductoCongelado. Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto. Crear una clase testHerencia2 con el método main donde se cree un objeto de cada tipo y se muestren los datos de cada uno de los objetos creados.

SuperClase : Productos.
SubClases de Productos :ProductosFrescos, ProductosRefrigerados,ProductosCongelados.

Programa ejecutable (main):TestHerencia2 llama a DatosTecladoPantalla y en este se crean los objetos.
DatosTecladoPantalla: Llama a entrada de datos por teclado para entrar los datos en la SuperClase y en las SubClases utilizando los métodos set.
Tambien se llama a la SuperClase y SubClases para hacer presentación de datos en pantalla con los metodos get y una llamada a pausar para pausar la pantalla y al pulsar enter borrar pantalla .


Código de la SuperClase Productos

Código: [Seleccionar]

/**
 * gestión de una empresa agroalimentaria que
 *trabaja con tres tipos de productos: productos frescos,
 *productos refrigerados y productos congelados.
 *
 * @author (aprenderaprogramar.com //Pablo Ramón Pérez Blasco "paramonso")
 * @version (1.0 rev 1)
 */
// Super Clase Productos
public class Productos
{
    // instance variables - replace the example below with your own
    public String fechaCaducidad;
    public String numeroLote;

    /**
     * Constructor for objects of class Producto
     */
    public Productos(String fechaCaducidad,String numeroLote)
    {
        this.fechaCaducidad = fechaCaducidad;
        this.numeroLote=numeroLote;
    }

    public Productos( )
    {
        fechaCaducidad ="";
        numeroLote="";
    }

    public String getFechaCaducidad() { return fechaCaducidad; }

    public String getNumeroLote(){return numeroLote;}

    public void setFechaCaducidad  ( ) {
        this.fechaCaducidad = fechaCaducidad;
    } //Cierre del método
    public void setNumeroLote  ( ) {
        this.numeroLote = numeroLote;
    } //
}


Codigo de la SubClase ProductosFrescos

Código: [Seleccionar]
/**
 * SubClase productos frescos de la SuperClase Productos
 */
public class ProductosFrescos extends Productos
{
    public String fechaEnvasado;
    public String paisOrigen;

    /**
     * Constructor para los objetos de la clase ProductosFrescos
     */
    public ProductosFrescos(String fechaCaducidad,String numeroLote,String fechaEnvasado,String paisOrigen )
    { super(fechaCaducidad ,numeroLote);
        this.fechaEnvasado = fechaEnvasado;
        this.paisOrigen=paisOrigen;
    }

    public ProductosFrescos(  ){
        super();
        fechaEnvasado="";
        paisOrigen="";
    }

    public String getFechaEnvasado() { return fechaEnvasado; }

    public String getPaisOrigen(){return paisOrigen;}

    public void setFechaEnvasado  ( ) {
        this.fechaEnvasado = fechaEnvasado;
    } //Cierre del método
    public void setPaisOrigen  ( ) {
        this.paisOrigen = paisOrigen;
    } //

}


Codigo de la SubClase ProductosRefrigetados

Código: [Seleccionar]

/**
 *  SubClase Productos Refrigerados de la SuperClase Productos  .
 *
 */
public class ProductosRefrigerados extends Productos
{
    public String  codigoOSA; //codigoOSA ==> codigo Organismo Supervision Alimentaria

    /**
     * Constructor para los objetos de la clase ProductosRefrigerados
     */
    public ProductosRefrigerados(String fechaCaducidad,String numeroLote,String codigoOSA )
    { super(fechaCaducidad ,numeroLote);
        this. codigoOSA =  codigoOSA;

    }

    public ProductosRefrigerados(  )
    { super( );
        codigoOSA ="";

    }

    public String getCodigoOSA() { return codigoOSA; }

    public void setCodigoOSA  ( ) {
        this.codigoOSA = codigoOSA;
    } //Cierre del método

}



Codigo de la SubClase ProductosCongelados

Código: [Seleccionar]

/**
 *  SubClase Productos Congelados de la SuperClase Productos
 */
public class ProductosCongelados extends Productos
{
    public int temperaturaCongelacion ;
    /**
     * Constructor para los objetos de la clase ProductosCongelados
     */
    public ProductosCongelados(String fechaCaducidad,String numeroLote,int temperaturaCongelacion)
    { super(fechaCaducidad ,numeroLote);
        this. temperaturaCongelacion =  temperaturaCongelacion;

    }

    public ProductosCongelados()
    { super();
        temperaturaCongelacion = 0;

    }

    public int getTemperaturaCongelacion(){ return temperaturaCongelacion;}

    public void setTemperaturaCongelacion(){
        this.temperaturaCongelacion=temperaturaCongelacion;
    }
}


 Codigo de la clase TestHerencia2

Código: [Seleccionar]
/**
 *  programa ejecutable main
 */
public class TestHerencia2
{
    public static void main (String[ ] Args) {
        DatosTecladoPantalla pedirDatos=new DatosTecladoPantalla();
        pedirDatos.PedirDatos();
       
    } //Cierre del main
    // Metodo para pausar y borrar pantalla
   
}


Codigo de la clase DatosTecladoPantalla

Código: [Seleccionar]

/**
 * Pide la entrada de datos por teclado y los presenta en pantalla
 *
 * @author (Pablo)
 * @version (0.0)
 */
public class DatosTecladoPantalla
{
    public   DatosTecladoPantalla(){
   
    }
   
public void PedirDatos(){
//inicializar variables de la Superclase Productos
        String fechaCaducidad="";
        String numeroLote="";
        //inicializar variables de la Subclase ProductosFrescos
        String fechaEnvasado;
        String paisOrigen;
        //inicializar variables de la Subclase ProductosRefrigerados
        String  codigoOSA;
        //inicializar variables de la Subclase ProductosCongelados
        int temperaturaCongelacion ;
        //Entrada de datos en la Superclase Productos
        System.out.println("****** ENTRADA DE DATOS EN PRODUCTOS ******");
        System.out.print ("Por favor introduzca la fecha de caducidad ");
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        entrada.pedirEntrada();
        fechaCaducidad=entrada.getEntrada();
        System.out.print ("Por favor introduzca el numero de lote :  ");
        entrada.pedirEntrada();
        numeroLote=entrada.getEntrada();
        Productos testProducto=new Productos(fechaCaducidad,numeroLote);

        //Entrada de datos en la Subclase ProductosFrescos
        System.out.println("****** ENTRADA DE DATOS EN PRODUCTOS FRESCOS ******");
        System.out.print ("Por favor introduzca la fecha de envasado ");
        entrada.pedirEntrada();
        fechaEnvasado=entrada.getEntrada();
        System.out.print ("Por favor introduzca el pais de Origen : ");
        entrada.pedirEntrada();
        paisOrigen= entrada.getEntrada();
        ProductosFrescos testProFresco=new ProductosFrescos(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen);

        //Entrada de datos en la Subclase ProductosRefrigerados
        System.out.println("****** ENTRADA DE DATOS EN PRODUCTOS REFRIGERADOS ******");
        System.out.print ("Por favor introduzca el codigoOSA  (Organismo Supervision Alimentaria) :");
        entrada.pedirEntrada();
        codigoOSA=entrada.getEntrada();
        ProductosRefrigerados testProRefri=new ProductosRefrigerados(fechaCaducidad,numeroLote,codigoOSA);
        //Entrada de datos en la Subclase ProductosCongelados
        System.out.println("****** ENTRADA DE DATOS EN PRODUCTOS CONGELADOS ******");
        System.out.print ("Por favor introduzca temperatura de congelación recomendada :");
        entrada.pedirEntrada();
        temperaturaCongelacion=Integer.valueOf(entrada.getEntrada());
        ProductosCongelados testProConge=new ProductosCongelados(fechaCaducidad,numeroLote,temperaturaCongelacion );
        Pausar.pause();//Pausar y borrar pantalla
        PresentarDatos( fechaCaducidad, numeroLote, fechaEnvasado,  paisOrigen,
                                 codigoOSA,  temperaturaCongelacion);
}
    public void PresentarDatos(String fechaCaducidad,String numeroLote,String fechaEnvasado,String paisOrigen,
                                String codigoOSA,int temperaturaCongelacion)
    {
        Productos testProducto=new Productos(fechaCaducidad,numeroLote);
        ProductosFrescos testProFresco=new ProductosFrescos(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen);
        ProductosRefrigerados testProRefri=new ProductosRefrigerados(fechaCaducidad,numeroLote,codigoOSA);
        ProductosCongelados testProConge=new ProductosCongelados(fechaCaducidad,numeroLote,temperaturaCongelacion );

        System.out.print ("******DATOS EN PRODUCTOS*****\n"+
            "Fecha de caducidad : "
            +testProducto.getFechaCaducidad()+
            "\nNumero de lote : "+
            testProducto.getNumeroLote()+
            "\n-------------------\n" );
           
        System.out.print ("******DATOS EN PRODUCTOS FRESCOS******\n" +
            "Fecha de caducidad  : "+
            testProFresco.getFechaCaducidad()+
            "\nNumero de lote : "
            +testProFresco.getNumeroLote()+
            "\nFecha Envasado : "+
            testProFresco.getFechaEnvasado()+
            " \nPais de Origen : "+
            testProFresco.getPaisOrigen()+
            "\n-------------------\n");
       
        System.out.print ("******DATOS EN PRODUCTOS REFRIGERADOS******\n"+
            "Fecha de caducidad  : "+
            testProRefri.getFechaCaducidad()+
            "\nNumero de lote : "+
            testProRefri.getNumeroLote()+
            "\nCodigo OSA :"+testProRefri.getCodigoOSA()+
            "\n-------------------\n");
         
        System.out.print ("******DATOS EN PRODUCTOS CONGELADOS******\n"+
            "Fecha de caducidad  : "+
            testProConge.getFechaCaducidad()+
            "\nNumero de lote : "+
            testProConge.getNumeroLote()+
            "\nTemperatura Congelacion Recomendada : "+
            testProConge.getTemperaturaCongelacion()+
            "\n-------------------\n");
        Pausar.pause();//Pausar y borrar pantalla
    }
}



Codigo de la Clase EntradaDeTeclado

Código: [Seleccionar]
import java.util.Scanner; //Importación de la clase Scanner desde la biblioteca Java
/**
 * Entrada de datos por teclado
 *
 * @author (Pablo)
 * @version (0.0)
 */
public class EntradaDeTeclado {  // Definimos la clase EntradaDeTeclado aprenderaprogramar.com
   private String entradaTeclado; //Variable de instancia (campo) del método
 
    //Constructor
    public EntradaDeTeclado ()  {
        entradaTeclado="";
       } //Cierre del constructor
 
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine();
    } //Cierre del método pedirEntrada

    public String getEntrada () {

        return entradaTeclado;

 } //Cierre del método getEntrada

} //Cierre de la clase



Codigo de la clase Pausar

Código: [Seleccionar]
import java.io.*;// Importar libreria para pausar pantalla.
/**
 * Pausar salida de datos poor pantalla y borrar pantalla
 *
 * @author (Pablo)
 * @version (0.0)
 */
public class Pausar
{
    // instance variables - replace the example below with your own
    private int x;

    /**
     * Constructor for objects of class Pausar
     */
    public Pausar()
    {
        // initialise instance variables
        x = 0;
    }

    public static void pause(){
        int  inChar;
        inChar=0;
        System.out.println("\nPulse Enter para continuar...");
        try {
            inChar = System.in.read();

        }
        catch (IOException e){
            System.out.println("Error reading from user");
        }
        System.out.print("\f");
    }
}


Gracias. ;)

27
Hola, dejo el Ejercicio CU00684B del curso de fundamentos de programación orientada a objetos. Concepto o definición de herencia en Java (programación orientada a objetos). ¿Qué es? 

Así es como queda en BlueJ:


El organigrama seria este:


Las cinco clases principales son:Producto, ProductosFrescos, ProductosRefrigerados, ProductosCongelados, CongeladosPorAire, ongeladosPorAgua,CongeladosPorNitorgeno.

Super Clase : Producto.
Sub Clases de Producto: ProductosFrescos, ProductosRefrigerados, ProductosCongelados,
Sub Clases de ProductosCongelados:  CongeladosPorAire, CongeladosPorAgua, CongeladosPorNitrogeno.

Gracias. ;)

28
Hola. Dejo el Ejercicio CU00683B del tutorial pdf de programación Java. Concepto de métodos de clase o static y métodos de instancia. Diferencias. Método main de Java.

Citar
EJERCICIO
Intenta compilar el siguiente código:
public class Test {
    int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + this.getAtrib1());
    } //Cierre del main
    public int getAtrib1() {return atributo1;}
} //Cierre de la clase

 ¿Qué mensaje de error se obtiene? ¿Por qué se obtiene este mensaje de error? ¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos? Puedes comprobar si tus respuestas son correctas consultando en los foros aprenderaprogramar.com


¿Qué mensaje de error se obtiene?

non-static variable this cannot be referenced from a static context
(variable no estática a la que no se puede hacer referencia desde un contexto estático)


¿Por qué se obtiene este mensaje de error?

Por que se llama a un metodo no estatico desde un metodo estatico.


¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?

Creando un nuevo objeto Test dentro del método main .Al crear un objeto dentro de un método, este objeto hereda todas la propiedades del método donde se ha creado.
Y luego llamando al método con el nombre de la clase que lo contiene (en este caso con el nombre del objeto creado).

       public static void main (String[ ] Args) {
        int atri=0;
        Test test=new Test(atri);

        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + test.getAtrib1());
    } //Cierre del main
     
   
 Cambiando la variable int atributo=0 a static int atributo=0
 Y el metodo public int getAtrib1() {return atributo1;}
  a public static int getAtrib1() {return atributo1;}
    static int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + Test.getAtrib1());
    } //Cierre del main
    public static int getAtrib1() {return atributo1;}
} //Cierre de la clase

Gracias  ;).

29
Hola. Dejo el Ejercicio  CU00682B del tutorial pdf de programación Java de aprenderaprogramar .Enumerados como clases Enum en Java. Constructores. Método values.

Citar
EJERCICIO

Declara una clase que represente el tipo enumerado que define tipos de piedra con los valores CALIZA, MARMOL, PIZARRA, CUARZITA. Si sus pesos específicos son de 1200, 1423.55, 1325 y 1466.22, crea un programa que muestre el peso de los palets de cada uno de los tipos de piedra. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.


clase main TestTiposDePiedra

Código: [Seleccionar]
import java.io.*;
/**
 *   TestTiposDePiedra

 *
 * @author (paramonso)
 * @version (1.0 // 12/10/2018)
 */
//Ejemplo aprenderaprogramar.com
public class TestTiposDePiedra {
    public static void main (String[ ] Args) {
        String patron ,resultado ;
        TiposDePiedra miTiposDePiedra = TiposDePiedra.CALIZA; //El tipo lo definimos en otra clase como public enum
        System.out.println ("Las piedras del catalogo son : ");
        System.out.println ("Tipo Piedra    \t  Color\t\tPeso especifico\t\t  ");//Ejemplo de uso de print con tabulador \t
        patron="  %s\t %s    %12s\n"; 
        for (TiposDePiedra tmp: miTiposDePiedra.values() ) {
            resultado = String.format(patron,tmp.toString(),tmp.getTipo(),tmp.getPesoEspecifico());
            System.out.print(resultado);
        }
           
        pause();//Pausar pantalla
     
        TiposDePiedra tiposPiedra = TiposDePiedra.MARMOL;
        System.out.println ("\nLa piedra elegida por el sistema es " +tiposPiedra.toString() +
        " con un color " +tiposPiedra.getTipo() + "\ny con un peso específico de " +tiposPiedra.getPesoEspecifico() + " kg/m3");
        System.out.println ("Un palet admite 3.15 m3 de volumen.\n\n A continuación el peso de los palets de las distintas piedras:");
        for (TiposDePiedra tmp: TiposDePiedra.values() ) {
            System.out.println (" el palet de "+tmp.toString() + " pesa 3.15  x  " +tmp.getPesoEspecifico()+"\t="+ (3.15f*(float)tmp.getPesoEspecifico() ) + " kg");
        }
       
    } //Cierre del main
    //Pausar pantalla
   
    public static void pause(){
        int  inChar;
        inChar=0;
        System.out.println("\nPulse Enter para continuar...");
        try {
            inChar = System.in.read();
           
        }
        catch (IOException e){
            System.out.println("Error reading from user");
        }
        System.out.print("\u000C");
    }
} //Cierre de la clase

Clase TiposDePiedra
Código: [Seleccionar]
/**
 * Enumeration class TiposDePiedra - write a description of the enum class here
 *
 * @author (paramonso)
 * @version (1.1 // 12/10/2018)
 */
public enum TiposDePiedra
{
     
    CALIZA  ("Apomazado ",1200.00), //Separamos con comas
    MARMOL  ("Crema      ", 1423.55),
    PIZARRA ("Multicolor", 1325.00),
    CUARZITA("Gris       ", 1466.22);
     
    //Campos tipo constante
    private final String tipo; //Color de la piedra
    private final double pesoEspecifico; //Peso específico de la piedra
    /**
     * Constructor. Al asignarle uno de los valores posibles a una variable del tipo enumerado el constructor asigna
    automáticamente valores de los campos
     */
    TiposDePiedra (String tipo, double pesoEspecifico) {
        this.tipo = tipo;
        this.pesoEspecifico = pesoEspecifico;
    } //Cierre del constructor
    //Métodos de la clase tipo Enum
    public String getTipo() { return tipo; }

    public double getPesoEspecifico() { return pesoEspecifico; }
}

Gracias  ;).

30
Hola. Dejo el Ejercicio CU00681B del tutorial pdf de fundamentos de programación orientada a objetos. Tipos enumerados (enum) Java. Error enum types must not be local.


Clase Vehiculo
Código: [Seleccionar]

/**
 * EjercicioCU00681B enum tipos enumerados
 *
 * @author paramonso
 * @version 1.1
 */

public class Vehiculo
{
    public enum MarcaDeVehiculo{FORD,TOYOTA,SUZUKI,RENAULT,SEAT};
    String matricula;
    MarcaDeVehiculo marca;
    /**
     * Constructor 
     */
    public Vehiculo()
    {
        matricula="";
        marca=null;

    }
    //metodos setters
    public void setMatricula (String matricula ) {
        this.matricula= matricula;
    } 

    public void setMarca(MarcaDeVehiculo marca){
        this.marca=marca;
    }
    //metodos setters
    public String getMatricula(){
        return this.matricula;
    }

    public MarcaDeVehiculo getMarca(){
        return this.marca;
    }

   
}

Clase TestVehiculo

Código: [Seleccionar]
import javax.swing.JOptionPane; // Pedir datos por ventana
 
public class TestVehiculo
{
    public static void main (String[ ] Args)
    {

        String entradaUsuario;
        String matricula,fabricante;
        boolean correcto=false;
        Vehiculo coche=new Vehiculo();
        Vehiculo.MarcaDeVehiculo marca;
        while(correcto==false){
            entradaUsuario = JOptionPane.showInputDialog ( "Introduzca la matricula:" );
            matricula=entradaUsuario;
            entradaUsuario = JOptionPane.showInputDialog ( "Introduzca la Marca de Vehiculo\nla marca ha de ser\n(FORD,TOYOTA,SUZUKI,RENAULT,SEAT) :");
            fabricante=entradaUsuario.toUpperCase();

            for(Vehiculo.MarcaDeVehiculo d: Vehiculo.MarcaDeVehiculo.values()){
                if(d.toString().equals(fabricante)){
                    marca=d;

                    coche.setMatricula(matricula);
                    coche.setMarca(marca);

                    correcto=true;

                    System.out.print( "La marca de coche es :"+coche.getMarca()+"\nMatricula "+coche.getMatricula() );
                }

            }
            if(correcto!=true)
            {
                System.out.print("No ha introducido un valor correcto para la marca del Vehiculo\n");

            }
        }
    }
}

GRacias . ;)

31
Hola Dejo el ejercicio CU00680B del taller de programación java desde cero.
Documentar proyectos Java con Javadoc. Comentarios, símbolos, tags (deprecated, param, etc.) 

Código: [Seleccionar]
/**
 * Ejercicio de aprendeaprogramar.com CU00680U
 * Mini Calculadora que devuelve el valor absoluto de un numero y la raiz cuadrada
 * @author: Pablo Ramon Perez Blasco
 * @version: V7_10_18.2
 */

public class MiniCalculadora{
/**
 * Constructor de la clase. En este caso es un constructor vacio
 */
    public MiniCalculadora(){}
    /**
     * Metodo main() para presentar resultados en pantalla
     */
    public static void main(String[] args){
        System.out.print("Valor absoluto de -123.546 = "+ valorAbsoluto(-123.546)+"\n");
        System.out.print("Raiz Cuadrada de -123 = "+ raizCuadrada(123.546 )+"\n");
    }

    /**
     * Método que devuelve el valor absoluto de un número.
     * Se declara como static para que funcione en el metodo main()
     * @param num Es el parámetro que se le pasa al metodo para hallar el valor absoluto
     * @return Devuelve el valor absoluto del paramero pasado (num)
     */
    public static double valorAbsoluto(double num){
        return Math.abs(num);
    }

    /**
     * Método que devuelve la raíz cuadrada de un número.
     * Se declara como static para que funcione en el metodo main()
     * @param num Es el parámetro que se le pasa al metodo para hallar la raíz cuadrada
     * @return Devuelve la raíz cuadrada del parametro (num)
     */
    public static double raizCuadrada(double num){
        return Math.sqrt(num);
    }
}
Archivo readme.txt
Citar
TÍTULO DEL PROYECTO: MiniCalculadora
PROPÓSITO DEL PROYECTO: Ejercicio para documentar proyectos con una mini calculadora que saca el valor absoluto de un numero y la raíz cuadrada de un numero.
VERSIÓN o FECHA:07/10/2018. 1.0 Rev.1
CÓMO INICIAR ESTE PROYECTO: Ejecutar el metodo main
AUTORES: Redacción aprenderaprogramar.com. Modificado por paramonso
INSTRUCCIONES PARA EL USUARIO:Seguir los ejercicio e instrucciones de aprenderaprogramar.com
Gracias  ;)

32
Hola. Dejo el código para centrar texto en un campo de una longitud dada.
Ejemplo: Tenemos un campo de 20 espacios y en ese campo se ha de centrar un texto de 8 caracteres. El código seria este.

Código: [Seleccionar]

public class CentrarTexto
{
    public static void main(String[] args)   {
        int ancho = 20;//Tamaño del campo a ocupar por la cadena
        String s = "12345678";//Texto
        int lonText=s.length();//longitud del texto
        //Se divide el ancho/2  y tamañoCampo/2
        //en este caso serian 5 y 2 se suman y da 5+2=7 sacamos la mitad del tamaño a ocupar
        int tamañoCampo=(ancho/2)+(lonText/2);
         
        //Se da el primer formateo a (s) con el tamañoCampo=7 lo que seria [***1234]
        //ponemos asteriscos por la izquierda para llenar el total del campo
        //String.format("%7s",s) Justifica el texto a la derecha rellenado con espacios
        String m= String.format("%" + tamañoCampo + "s", s);
        s = String.format("%" + tamañoCampo + "s", s).replace(" ","*");
         
        System.out.print("["+s+"] Primer formateo\n");
        System.out.print("|"+m+"|Primer formateo\n");
        //Se da el segundo formateo a (s) con ancho.Tenemos que s="***1234"=7
        //Con el segundo formato se quedaria s="***1234***"=10
        //ponemos asteriscos por la derecha para llenar el total del campo
        //String.format("%-10s",s) Justifica el texto a la izquierda rellenado con espacios
        s = String.format("%-" + ancho  + "s", s).replace(" ","*");
        m= String.format("%-" + ancho + "s", m);
        System.out.print("["+s+"] Segundo formateo ");
         System.out.print("\n|"+m+"|Segundo formateo\n\n");
    }

}


Espero que lo pueda aprovechar alguien.
 ;)

33
Hola
Dejo el Ejercicio CU00679B.

Transformar un array en ArrayList Java. Método asList (clase Arrays).
Citar
EJERCICIO

Declara un array que contenga seis booleanos que sean true, true, false, false, true, false. A continuación, crea una lista de tipo LinkedList a partir de dicho array usando la clase Arrays del api de Java. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

 
Código: [Seleccionar]
import java.util.*;
public class TestAsList
{
    public static void main(String[] Args){
     Boolean [ ] miArrayBoolean={true, true, false, false, true, false};   
     List<Boolean> miListaBoolean = new LinkedList<Boolean>();
     
     miListaBoolean = Arrays.asList (miArrayBoolean);
      System.out.print("Elementos en el array original : ");
     for(int i=0;i<miArrayBoolean.length;i++){
         System.out.print(miArrayBoolean[i]+", ");
       
        }
         System.out.println("\nObjetos en la coleccion copiada "+miListaBoolean);
    }
}

Grascias.
 ;)

34
Hola. Dejo el ejercicio CU00678B del tutorial pdf de programación java.
Concepto definición de polimorfismo en Java. ¿Qué es el polimorfismo? .

Me he extendido un poco mas de la cuenta en el código porque no entendía bien el funcionamiento del ArrayList Polimorfo.
Gracias al ejercicio que dejo SantiagoArg pude aclararme de que va el tema ya que soy un poco corto de entendederas.

Pongo alguna presentación en pantalla utilizando contadores para poder ver el funcionamiento del Iterator ya que este no utiliza contadores (que se vean) y si hay alguien que no se aclare  y le puede servir aquí esta.

Código: [Seleccionar]
import java.util.*;
public class TestPolimorfismo {
    public static void main (String[] Args) {
        ArrayList<Set> lista = new ArrayList<Set>(); //Declaración del ArrayList lista tipo Set
        Set<String> setCadena = new HashSet<String>(); // Creación del objeto tipo HashSet con contenido Strings
        Set<Integer> setEnteros = new TreeSet<Integer>();// Creación del objeto tipo TreeSet con contenido Integer
        //Llenar ArrayList String
        setCadena.add("sol");
        setCadena.add("luna");
        setCadena.add("saturno");
        //Llenar ArrayList Integer
        setEnteros.add(2);
        setEnteros.add(8);
        setEnteros.add(5);
        //Presentar por pantalla el contenido del HashSet setCadena.
        Iterator enumCadena = setCadena.iterator(); // Crear el iterador para enumCadena
        System.out.print("ARRAYS Y POLIMORFISMO\n\n" );
        System.out.print("Elementos en setCadena (String)\n" );
        System.out.print("Item en enumCadena() : ");
        while (enumCadena.hasNext()) {
            System.out.print( enumCadena.next()+ ";");
        }

        //Presentar por pantalla el contenido del TreeeSet setEnteros.
        Iterator  enumEnteros = setEnteros.iterator(); // Crear el iterador para enumEnteros
        System.out.print("\nElementos en setEnteros (Integer)\n" );
        System.out.print("Item en enumEnteros() : ");
        while (enumEnteros.hasNext()) {
            System.out.print( enumEnteros.next()+"; ");

        }
        // Añadir al ArrayList lista el HashSet (El String) y el TreeSet (El Integer).
        lista.add(setCadena);lista.add(setEnteros);//Polimorfismo Arraylist con diferentes tipos de objetos
       
        System.out.print("\n\nPRESENTAR LISTA CON FOR EXTENDIDO e Iterator \n");

        int s=0;
        for (Set listaDeLista : lista) {
            Iterator<Set> sublistaTmp =listaDeLista.iterator();
            System.out.println("\nComponente ("+s+") de la lista "+listaDeLista);
            int n=0;
            while (sublistaTmp.hasNext()){
                System.out.println("Componente ("+s+") de lista  Componente Iterator<Set> ("+n+") : "+sublistaTmp.next());
                n++;
            }
            s++;
        }
    }
}

Espero que este todo bien.
Gracias.
Un saludo. ;)

35
Hola. Dejo el Ejercicio CU00677B del curso básico de programación Java.
Concepto o definición de interface Java ¿Qué es una interface? Tipos de interfaz.

EJERCICIO

Busca información en la documentación oficial de Java sobre la interface Iterable.
 ¿Qué clases de las que conoces implementan esta interface? 

ArrayList, Subinterfaces( Collection, List, Queue )

 ¿Qué método han de tener disponible las clases que implementan esta interface? 

iterator(), forEach(), spliterator().

¿Para qué sirve este método?

Devuelve un iterador sobre elementos de tipo especificado y los métodos disponibles para los objetos de tipo Iterator nos van a permitir operar con cada elemento de la colección.

En la documentacion de java da esta definicion:
Realiza la acción dada para cada elemento de la Iterable hasta que todos los elementos hayan sido procesados ​​o la acción arroje una excepción.
A menos que la clase implementadora especifique lo contrario, las acciones se realizan en el orden de iteración (si se especifica un orden de iteración).


Gracias.

36
Hola. Dejo el Ejercicio CU00676B del curso para principiantes de programación Java.
Clase Arrays del api Java. Métodos equals (comparar), copyOf (copiar), fill (rellenar)

Código: [Seleccionar]
import java.util.Arrays;
public class TestMetodoFillArrays {
public static void main (String [ ] Args) { //main cuerpo del programa ejemplo aprenderaprogramar.com
int [ ] miArray = new int[10];
Arrays.fill(miArray, 33);
int fromIndex=5, toIndex=8;
for (int tmp: miArray) { System.out.print (tmp + ","); } //Recorrido del array con un for each
System.out.print("\n");
Arrays.fill(miArray,fromIndex , toIndex , 34);
for (int tmp: miArray) { System.out.print (tmp + ","); } //Recorrido del array con un for each

} } //Cierre del main y de la clase

Adios.  ;)

37
Hola. Dejo el Ejercicio CU00675B del tutorial pdf de programación java desde cero. Copiar y comparar arrays en Java. Conceptos: identidad e igualdad.

Citar
EJERCICIO

Crea un programa Java donde declares un array de enteros tipo int miArray1 cuyo contenido inicial sea {2, -4, 3, -7}. Muestra su contenido por pantalla. Copia el contenido de este array a un ArrayList denominado lista1 y muestra su contenido por pantalla.

¿Qué tipo de datos almacena el array?
Datos primitivos y Objetos
¿Qué tipo de datos almacena el ArrayList?
Solo Objetos

 

Clase Test

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

public class TestArraysYArraisList
{
    public static void main(String [] Args){
       
        ArrayList<Integer>lista1=new ArrayList<Integer>();
       
        lista1.add(12);lista1.add(22);lista1.add(-38);
       
        System.out.print("\nCONTENIDO DE lista1 ANTES DE AÑADIR unArray\n");
        int cont,i=0,n=0;
         for(int listaElementos: lista1){
                            System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"\n");i++;//Contenido de unArray
               }
        int [] unArray={2,-4,3,-7};
       
         System.out.print("\nCONTENIDO DE UN ARRAY  \n");
        for (cont=0;cont<unArray.length;cont++){
            System.out.print("Array["+cont+"] ="+unArray[cont]+";\n");//Contenido de unArray
            lista1.add(unArray[cont]);// Se añade unArray a la lista1 de ArrayList
        }
       
        System.out.print("\nCONTENIDO DE lista1 DESPUES DE AÑADIR unArray\n");
         i=0;
        for(int listaElementos: lista1){
            if (listaElementos==(unArray[n]))
            {
                System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"  unArray["+n+"]= "+unArray[n]+"\n");i++;n++;//Contenido de unArray
            }else {
                System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"\n");i++;//Contenido de unArray
            }

        }
    }
}

38
Hola. Dejo el Ejercicio CU00674B del curso de fundamentales de programación orientada a objetos de aprenderaprogramar.

Proyectos Java. Package e import. Jerarquía, visibilidad y organización de clases. 

Citar
EJERCICIO

Crea un proyecto Java con la siguiente estructura:

a) Un package denominado formas dentro del cual existan los siguientes packages: formas1dimension, formas2dimensiones y formas3dimensiones.

b) Dentro del package formas1dimension deben existir las clases Recta y Curva.

c) Dentro del package formas2dimensiones deben existir las clases Triangulo, Cuadrilatero,Elipse, Parabola e Hiperbola.

d) Dentro del package formas3dimensiones deben existir las clases Cilindro, Cono y Esfera.

Clase TestPaketes

Código: [Seleccionar]

package Formas;
import Formas.formas1dimension.*;
import Formas.formas2dimension.*;
import Formas.formas3dimension.*;

public class TestPaketes
{
 public static void main(String []args)
    {
    //forma1dimension
    Recta recta1 = new Recta();
    Curva curva1 = new Curva();
    //forma2dimension
    Triangulo trian1 = new Triangulo();
    Elipse elipse1= new Elipse();
    Cuadrilatero cuadri1=new Cuadrilatero();
    Parabola parabola1=new Parabola();
    Hiperbola hiper1=new Hiperbola();
    //forma3dimension
    Cilindro clindro1= new Cilindro();
    Cono cono1=new Cono();
    Esfera esfera1=new Esfera();
   }
}

Clase Recta

Código: [Seleccionar]
package Formas.formas1dimension;
public class Recta
{
   private int x;
    public Recta()
    {  x = 0;   }
  public int sampleMethod(int y)
    {return x + y;  }
}


Clase Curva
Código: [Seleccionar]
package Formas.formas1dimension;
public class Curva
{
    // instance variables - replace the example below with your own
    private int x;
     
    public Curva()
    { x = 0; }
    public int sampleMethod(int y)
    {return x + y;}
}

Clase Triangulo
Código: [Seleccionar]
package Formas.formas2dimension;
public class Triangulo
{
  private int x;
  public Triangulo(){x = 0;}
  public int sampleMethod(int y) { return x + y;}
}

class Elipse
Código: [Seleccionar]
package Formas.formas2dimension;
 public class Elipse
{ private int x;
    public Elipse()
    { x = 0;}
     public int sampleMethod(int y)
    { return x + y;}
}

class Cuadrilatero
Código: [Seleccionar]
package Formas.formas2dimension;
 public class Cuadrilatero
{   private int x;
    public Cuadrilatero()
    {x = 0;}
public int sampleMethod(int y)
    {return x + y;}
}

class Parabola
Código: [Seleccionar]
package Formas.formas2dimension;
public class Parabola
{private int x;
     public Parabola(){x = 0;}
    public int sampleMethod(int y){return x + y;}
}

class Hiperbola
Código: [Seleccionar]
package Formas.formas2dimension;
public class Hiperbola
{private int x;
public Hiperbola(){x = 0;}
public int sampleMethod(int y){return x + y;}
}

class Cilindro
Código: [Seleccionar]
package Formas.formas3dimension;
public class Cilindro{
  private int x;
 public Cilindro() { x = 0;}
 public int sampleMethod(int y) { return x + y; }
}

class Cono
Código: [Seleccionar]
package Formas.formas3dimension;
 public class Cono{
    private int x;
     public Cono() {x = 0;}
     public int sampleMethod(int y) { return x + y; }
}

class Esfera
Código: [Seleccionar]
package Formas.formas3dimension;
public class Esfera
{ private int x;
 public Esfera() { x = 0; }
 public int sampleMethod(int y) { return x + y; }
}

Gracias. :D

39
Hola. Dejo el Ejercicio CU00672B del curso básico de aprendizaje de programación orientada a objetos. Generar números aleatorios en Java. Clase Random y método nextInt. Ejercicio ejemplo resuelto.

Citar
EJERCICIO

Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aleatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Clase EntradaDeTeclado
Código: [Seleccionar]
import java.util.Scanner; //Importación de la clase Scanner desde la biblioteca Java

public class EntradaDeTeclado {  // Definimos la clase EntradaDeTeclado aprenderaprogramar.com
   private String entradaTeclado; //Variable de instancia (campo) del método
 
    //Constructor
    public EntradaDeTeclado ()  {
        entradaTeclado="";
       } //Cierre del constructor
 
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
    } //Cierre del método pedirEntrada

    public String getEntrada () {

        return entradaTeclado;

 } //Cierre del método getEntrada

} //Cierre de la clase

Clase TestPseudoAleatorios

 
Código: [Seleccionar]
/// Programa Test de obtención de números pseudoaleatorios aprenderaprogramar.com
public class TestPseudoAleatorios {
    public static void main (String [ ] Args) {
        boolean salir ;
        Integer tmpAdivinar,tmpEntrada  ;
        NumeroAleatorio numeroAdivinar = new NumeroAleatorio ();
        tmpAdivinar = numeroAdivinar.getNumeroAleatorio();
        String msg="";
         System.out.print ("Por favor introduzca el número a Adivinar ");
         EntradaDeTeclado entrada = new EntradaDeTeclado();
         entrada.pedirEntrada();
           
        do {
           
            tmpEntrada=Integer.parseInt(entrada.getEntrada());
            salir=tmpEntrada.equals(tmpAdivinar);
           
            if (tmpEntrada>tmpAdivinar){msg="El numero que ha introducido es mayor que el numero a adivinar\n";}
            if (tmpEntrada<tmpAdivinar){msg="El numero que ha introducido es menor que el numero a adivinar\n";}
           
            if (salir){
                System.out.print('\u000C');//Borrar pantalla por gentileza de Cesar Krall moderador de aprenderaprogramar.com
                System.out.print("!!!!!!! NUMERO ACERTADO !!!!!!!!!!!!\nNumero introducido :"+
                tmpEntrada+ "\nNumero a adivinar :"+tmpAdivinar+"\n");
            }
            else{
                System.out.print('\u000C');//Borrar pantalla por gentileza de Cesar Krall moderador de aprenderaprogramar.com
                System.out.print("NO LO HA ACERTADO. VUELVA A INTENTARLO\n"+msg);
                System.out.print ("Por favor introduzca el número a Adivinar ");
                entrada.pedirEntrada();
            }
             
        } while(!salir); //Cierre do while

        System.out.println ("Gracias por utilizar el programa");
    }
}   //Cierre del main y de la clase

Clase NumeroAleatorio

Código: [Seleccionar]
import java.util.Random;
public class NumeroAleatorio {
    private int numeroAleatorio;

    //Constructor
    public  NumeroAleatorio () {
          Random numAleato=new Random();
         numeroAleatorio=numAleato.nextInt(100)+1 ;// ¿Para que sea 1 el numero menor y 99+1 = 100 el mayor? ¿?
           } //Cierre del constructor
   
    public void NumeroAleatorio(){
         
    }

    public int getNumeroAleatorio(){return numeroAleatorio;}
} //Cierre de la clase

Gracias.
Un saludo. ;)

40
Hola. Dejo el Ejercicio CU00633B del curso básico de programación orientada a objetos con Java. Operadores aritméticos en Java. +, -, *, / y %. Operador mod o resto de una división entre enteros.

Citar
EJERCICIO

Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre “calculoParaMultiploEdad” que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un mensaje informativo por pantalla. Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico tenga una edad múltiplo de 5, que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola, y que cuando cambias la edad aparece correctamente el tiempo que falta para que la edad sea múltiplo de 5. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

Código: [Seleccionar]
//Declaracion de la clase
public class Medico{
    String nombre;                    //Nombre del medico
    String apellido;                  //Apellido del medico
    int edad;                         //Su edad
    boolean casado;                   //¿Esta casado?
    String numeroDNI;  //Su numero de identidad
    String especialidad;              //Su especialidad
    //Constructor y  atributos de la clase
    public Medico(){
        nombre= "Paquito";
        apellido= "El Chocolatero";
        edad= 0;
        casado= false;
        numeroDNI= "12305640-M";
        especialidad= "Novel";
    }
   
//Metodos setter
    public void setNombre(String valueName){
        System.out.println("Se ha cambiado el nombre del medico especialista " +  especialidad + " a : " +valueName);
        nombre= valueName;
    }

    public void setApellido(String valueApellido){
        System.out.println("Se ha cambiado el apellido del medico especialista  " + especialidad + " " +nombre +" a: "+valueApellido);
        apellido= valueApellido;
    }

    public void setEdad(int valueEdad){
        System.out.println("Se ha cambiado la edad del medico especialista "+ especialidad+ " "+ nombre +" "+ apellido +" a: "+valueEdad);
        edad= valueEdad;
    }

    public void setCasado(boolean valueCasado){
         System.out.println("El medico especialista " + especialidad +" "+ nombre +" "+ apellido +" ahora esta casado? : "+valueCasado);
         casado= valueCasado;
    }

    public void setnumeroDNI(String valuenumeroDNI){
        System.out.println("Se ha cambiado el numero de identidad del medico "+ nombre + " " +apellido + " de  "+numeroDNI +" a: "+valuenumeroDNI);
        numeroDNI= valuenumeroDNI;
    }

    public void setEspecialidad(String valueEspecialidad){
        System.out.println("Se ha cambiado la especialidad del medico "+nombre +" " + apellido +" de " + especialidad +" a: "+valueEspecialidad);
        especialidad= valueEspecialidad;
    }

    public String getNombre(){ return nombre;}

    public String getApellido(){return apellido;}

    public int getEdad(){return edad;}

    public boolean getCasado(){return casado;}

    public String getnumeroDNI(){return numeroDNI;}

    public String getEspecialidad(){return especialidad;}
   
    public void calculoParaMultiploEdad(){
        int resto, faltan;
        resto=edad % 5;
        faltan=5-resto;
         System.out.println("El Medico "+nombre+" "+apellido+ " Especialista en " +especialidad+ " tendra una edad multiplo de 5 dentro de :"+ faltan +" años");
       
    }
}
Gracias.

Páginas: 1 [2] 3 4 5 6 7 8

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".