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.


Mensajes - dferna

Páginas: [1] 2
1
Comunidad / Re:Agradecimientos
« en: 17 de Abril 2017, 17:29 »
Hola Alex Rodríguez, en cuanto a las peticiones que me pides tenia pensado haceros alguna aportación en cuanto empiece a percibir ingresos y en cuanto a ayudar en el foro intentare administrar mi tiempo para ayudar a los compañeros que lo necesiten, eso si solo espero que mis conocimientos estén a la altura  :D 

Saludos.

2
Hola a todos he realizado el curso Aprender a programar Java desde cero y me gustaría expresar agradecimientos:
En primer lugar a los moderadores del foro por su ayuda y consejos sobre mis aportaciones al foro.
Y en segundo lugar pero no menos importante el haber creado un curso tan completo, entretenido y didactico el cual en ningún momento se me ha hecho aburrido o dificil de seguir.
Ya llevo un tiempo realizando cursos y este es el que me ha costado menos y con esto no quiero decir que sea facil , sino que está muy bien redactado, con unas explicaciones claras y concisas.
No quisiera acabar sin antes agradeceros que pongáis este curso de forma gratuita para los que aún no tenemos ingresos.

Saludos

3
Hola  ;)

Aquí dejo la resolución al ejercicio CU00695B del taller de programación orientada a objetos con Java y BlueJ sobre las clases y métodos abstractos


Clase TestHerenciaAbstractos

Código: [Seleccionar]
package test;

import aplicacion.*;
import java.util.ArrayList;

public class TestHerenciaAbstractos {

public static void main(String[] args) {

ArrayList<Legislador> legisladores = new ArrayList<Legislador>();
Diputado diputado1 = new Diputado("Pablo", "Iglesias", 38);
Diputado diputado2 = new Diputado("Iñigo", "Errejon", 34, "Madrid");
Senador senador1 = new Senador("Pedro", "Sanchez", 40);
Senador senador2 = new Senador("Antonio", "Morales", 45, "Sevilla");

legisladores.add(diputado1);
legisladores.add(diputado2);
legisladores.add(senador1);
legisladores.add(senador2);

System.out.println("Listado de legisladores:");
for(Legislador legislador : legisladores){
System.out.println("Camara en la que trabaja: "+legislador.getCamaraEnQueTrabaja());
System.out.println("Datos del legislador: "+legislador.toString());
System.out.println("");
}
}

}


Superclase Persona de la que herada la clase abstracta Legislador

Código: [Seleccionar]
package aplicacion;

/**
 * Superclase Persona de la que hereda la clase abstracta Legislador
 * @author David
 *
 */
public class Persona {

private String nombre;
private String apellidos;
private int edad;

//Constructor
public Persona(){
nombre = "";
apellidos = "";
edad = 0;
}

//Constructor sobrecargado
public Persona(String nombre, String apellidos, int edad){
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
}

//Getters and Setters
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellidos() {
return apellidos;
}

public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}

public int getEdad() {
return edad;
}

public void setEdad(int edad) {
this.edad = edad;
}

/**
* Método toString sobreescrito
*/
public String toString() {
return "Persona [nombre=" + nombre + ", apellidos=" + apellidos + ", edad=" + edad + "]";
}
}


Clase abstracta Legislador que herada de Persona

Código: [Seleccionar]
package aplicacion;

/**
 * Clase abstracta Legislador que extiende de la clase Persona
 * @author David
 *
 */
public abstract class Legislador extends Persona{

private String provinciaQueRepresenta;

//Constructores
public Legislador(String nombre, String apellidos, int edad){
super(nombre,apellidos,edad);
}

public Legislador(String nombre, String apellidos, int edad,String provinciaQueRepresenta){
super(nombre,apellidos,edad);
this.provinciaQueRepresenta = provinciaQueRepresenta;
}

//Getters and Setters
public String getProvinciaQueRepresenta() {
return provinciaQueRepresenta;
}

public void setProvinciaQueRepresenta(String provinciaQueRepresenta) {
this.provinciaQueRepresenta = provinciaQueRepresenta;
}

abstract public String getCamaraEnQueTrabaja();

/**
* Método toString sobreescrito
*/
public String toString() {
return "Legislador [provinciaQueRepresenta=" + provinciaQueRepresenta + "]";
}
}


Subclase Diputado que hereda de la clase abstracta Legislador

Código: [Seleccionar]
package aplicacion;

public class Diputado extends Legislador{

//Constructores
public Diputado(String nombre, String apellidos,int edad){
super(nombre,apellidos,edad);
}

public Diputado(String nombre, String apellidos, int edad,String provinciaQueRepresenta){
super(nombre,apellidos,edad,provinciaQueRepresenta);
}

/**
* Método heredado
*/
public String getCamaraEnQueTrabaja(){
return "Cámara de diputados";
}

/**
* Método toString sobreescrito
*/
public String toString(){
return super.toString();
}
}


Subclase Senador que hereda de la clase abstracta Legislador

Código: [Seleccionar]
package aplicacion;

public class Senador extends Legislador{

//Constructores
public Senador(String nombre, String apellidos,int edad){
super(nombre,apellidos,edad);
}

public Senador(String nombre, String apellidos, int edad, String provinciaQueRepresenta){
super(nombre,apellidos,edad,provinciaQueRepresenta);
}

/**
* Método heredado
*/
public String getCamaraEnQueTrabaja() {
return "Cámara del senado";
}


/**
* Método toString sobreescrito
*/
public String toString(){
return super.toString();
}

}


Ejecución del programa

Citar
Listado de legisladores:
Camara en la que trabaja: Cámara de diputados
Datos del legislador: Legislador [provinciaQueRepresenta=null]

Camara en la que trabaja: Cámara de diputados
Datos del legislador: Legislador [provinciaQueRepresenta=Madrid]

Camara en la que trabaja: Cámara del senado
Datos del legislador: Legislador [provinciaQueRepresenta=null]

Camara en la que trabaja: Cámara del senado
Datos del legislador: Legislador [provinciaQueRepresenta=Sevilla]


Saludos  :D

4
Hola  ;)

Aquí dejo la resolución al ejercicio CU00694B del tutorial de programación en Java con BlueJ desde cero, sobreescribir métodos toString y equals


Clase Test

Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestHerencia5 {

public static void main(String[] args) {


Cuadrado cuadrado1 = new Cuadrado(2);
Cuadrado cuadrado2 = new Cuadrado(5);
Cuadrado cuadrado3 = new Cuadrado(2);

Circulo circulo1 = new Circulo(2);
Circulo circulo2 = new Circulo(5);
Circulo circulo3 = new Circulo(2);

System.out.println("El área del cuadrado1 es: "+cuadrado1.calcularArea());
System.out.println("El área del cuadrado2 es: "+cuadrado2.calcularArea());
System.out.println("El área del círculo1 es: "+circulo1.calcularArea());
System.out.println("El área del círculo2 es: "+circulo2.calcularArea());

System.out.println("¿Son iguales el cuadrado1 y el cuadrado2? "+cuadrado1.equals(cuadrado2));
System.out.println("¿Son iguales el cuadrado1 y el cuadrado3? "+cuadrado1.equals(cuadrado3));
System.out.println("¿Son iguales el circulo1 y el circulo2? "+circulo1.equals(circulo2));
System.out.println("¿Son iguales el circulo1 y el circulo3? "+circulo1.equals(circulo3));
}

}


Superclase Figura

Código: [Seleccionar]
package aplicacion;

/**
 * Superclase Figura de la que heredan Cuadrado y Circulo
 * @author David
 *
 */
public class Figura {

private int dimensionPrincipal;

//Constructor
public Figura(){
dimensionPrincipal = 0;
}

//Constructor sobrecargado
public Figura(int dimensionPrincipal){
this.dimensionPrincipal = dimensionPrincipal;
}

//Getters and Setters
public int getDimensionPrincipal() {
return dimensionPrincipal;
}

public void setDimensionPrincipal(int dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
}

}


Subclase Cuadrado que extiende de Figura

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase Cuadrado que extiende de Figura
 * @author David
 *
 */
public class Cuadrado extends Figura {

/**
* Constructor sobrecargado
* @param dimension
*/
public Cuadrado(int dimension) {
super(dimension);
}

/**
* Método encargado de calcular el area de un cuadrado
* @return devuelve el area del cuadrado
*/
public int calcularArea() {
int resultado = (int) Math.pow(super.getDimensionPrincipal(), 2);
return resultado;
}

/**
* Método encargado de comparar si dos cuadrados son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado cuadrado = (Cuadrado) obj;
if (super.getDimensionPrincipal() == (cuadrado.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}

}


Subclase Circulo que extiende de Figura

Código: [Seleccionar]
package aplicacion;

public class Circulo extends Figura{

static final double PI = 3.14;


//Constructor
public Circulo(int dimension){
super(dimension);
}

/**
* Método encargado de calcular el área de un circulo
* @return devuelve el área del círculo
*/
public double calcularArea(){
double resultado = Math.pow(super.getDimensionPrincipal(), 2) * PI;
return resultado;
}

/**
* Método encargado de comparar si dos círculos son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Circulo) {
Circulo circulo = (Circulo) obj;
if (super.getDimensionPrincipal() == (circulo.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}
}

Ejecución del programa
Citar
El área del cuadrado1 es: 4
El área del cuadrado2 es: 25
El área del círculo1 es: 12.56
El área del círculo2 es: 78.5
¿Son iguales el cuadrado1 y el cuadrado2? false
¿Son iguales el cuadrado1 y el cuadrado3? true
¿Son iguales el circulo1 y el circulo2? false
¿Son iguales el circulo1 y el circulo3? true

Saludos  ;)

5
Hola  ;D

Expongo la resolución al ejercicio sobre los modificadores de acceso, CU00693B del tutorial de desarrollo de aplicaciones con Java con IDE BlueJ


Clase de test TestModificadoresAcceso

Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestModificadoresAcceso {

public static void main(String[] args){
ProfesorEmerito pe1 = new ProfesorEmerito("David", 30, 10, 3);
double salarioBase = pe1.obtenerSalarioBase();
System.out.println("Este es el salario base: "+salarioBase);
}
}


Superclase Profesor

Código: [Seleccionar]
package aplicacion;

public class Profesor {

protected String nombre;
protected int edad;
protected int anosConsolidados;

//Constructor
public Profesor(){
nombre = "";
edad = 0;
anosConsolidados = 0;
}
//Constructor sobrecargado
public Profesor(String nombre, int edad, int anosConsolidados){
this.nombre = nombre;
this.edad = edad;
this.anosConsolidados = anosConsolidados;
}

//Getters and Setters
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public int getAnosConsolidados() {
return anosConsolidados;
}
public void setAnosConsolidados(int anosConsolidados) {
this.anosConsolidados = anosConsolidados;
}
}


Subclase ProfesorEmerito que extiende de Profesor

Código: [Seleccionar]
package aplicacion;

public class ProfesorEmerito extends Profesor{

private int anosEmerito;

//Constructor
public ProfesorEmerito(){
anosEmerito = 0;
}

//Constructor sobrecargado
public ProfesorEmerito(String nombre, int edad, int anosConsolidados,int anosEmerito){
super(nombre,edad,anosConsolidados);
this.anosEmerito = anosEmerito;
}

//Getters and Setters
public int getAnosEmerito() {
return anosEmerito;
}

public void setAnosEmerito(int anosEmerito) {
this.anosEmerito = anosEmerito;
}

/**
* Método que obtiene el salario base de un profesor emerito
*/
public double obtenerSalarioBase(){
//double salarioBaseProfesor = super.obtenerSalarioBase();
double resultado = 925 + anosConsolidados * 33.25 + 47.80 * anosEmerito;
return resultado;
}
}


Ejecución de la aplicación

Citar
Este es el salario base: 1400.9


Preguntas

Citar
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?

Sí es posible acceder a la propiedad añosConsolidados desde la subclase ya que su modificador de acceso es protected, si el atributo lo declarara como private tendría que utilizar el método get para acceder al valor de la propiedad.

Saludos  :D

6
Hola  :D

Expongo la resolución al ejercicio sobre invocar métodos de superclases desde subclases. He añadido una clase de prueba que no se pedía en el enunciado para probar el funcionamiento de la aplicación.

Clase de Test
Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestSobreescrituraMetodos {

public static void main(String[] args){
ProfesorEmerito pe1 = new ProfesorEmerito("David", 30, 10, 3);
double salarioBase = pe1.obtenerSalarioBase();
System.out.println("Este es el salario base: "+salarioBase);
}
}

Superclase Profesor
Código: [Seleccionar]
package aplicacion;

public class Profesor {

private String nombre;
private int edad;
private int anosConsolidados;

//Constructor
public Profesor(){
nombre = "";
edad = 0;
anosConsolidados = 0;
}
//Constructor sobrecargado
public Profesor(String nombre, int edad, int anosConsolidados){
this.nombre = nombre;
this.edad = edad;
this.anosConsolidados = anosConsolidados;
}

//Getters and Setters
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public int getAnosConsolidados() {
return anosConsolidados;
}
public void setAnosConsolidados(int anosConsolidados) {
this.anosConsolidados = anosConsolidados;
}

/**
* Método que obtiene el salario base de un profesor
*/
public double obtenerSalarioBase(){
double resultado = 725 + anosConsolidados * 33.25;
return resultado;
}
}

Subclase ProfesorEmerito
Código: [Seleccionar]
package aplicacion;

public class ProfesorEmerito extends Profesor{

private int anosEmerito;

//Constructor
public ProfesorEmerito(){
anosEmerito = 0;
}

//Constructor sobrecargado
public ProfesorEmerito(String nombre, int edad, int anosConsolidados,int anosEmerito){
super(nombre,edad,anosConsolidados);
this.anosEmerito = anosEmerito;
}

//Getters and Setters
public int getAnosEmerito() {
return anosEmerito;
}

public void setAnosEmerito(int anosEmerito) {
this.anosEmerito = anosEmerito;
}

/**
* Método que obtiene el salario base de un profesor emerito
*/
public double obtenerSalarioBase(){
double salarioBaseProfesor = super.obtenerSalarioBase();
double resultado = salarioBaseProfesor + (47.80 * anosEmerito);
return resultado;
}
}

Ejecución del programa
Citar
Este es el salario base: 1200.9

Saludos  ;)

7
Hola  ;)

Expongo la resolución al ejercicio CU00690B del taller de programación Java con IDE Bluej sobre los tipos estáticos, dinámicos y la sobreescritura de métodos.

El ejercicio en primer lugar plantea 2 preguntas:

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

Un objeto de tipo estático Taxi no puede contener un objeto Vehiculo en tiempo de ejecución, porque su tipo dinámico (Vehiculo) es la superclase de Taxi.

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

Un objeto de tipo estático Vehiculo si puede contener un objeto Taxi en tiempo de ejecución, porque su tipo dinámico (Taxi) es subclase de Vehiculo.


Código fuente ejercicio:

Clase Test
Código: [Seleccionar]
package aplicacion;

import vehiculo.*;

public class Test {

public static void main(String[] args) {

Vehiculo v1 = new Taxi();


v1.setMatricula("0396FKX");
v1.setNumeroDeRuedas(4);
System.out.println(v1.toString());

}

}


Superclase Vehiculo

Código: [Seleccionar]
package vehiculo;

public class Vehiculo {

private String matricula;
private int numeroDeRuedas;

//Constructor
public Vehiculo(){

}

//Getters and Setters
public String getMatricula(){
return matricula;
}

public void setMatricula(String valorMatricula){
matricula = valorMatricula;
}

public int getNumeroRuedas(){
return numeroDeRuedas;
}

public void setNumeroDeRuedas(int valorNumeroDeRuedas){
numeroDeRuedas = valorNumeroDeRuedas;
}

public String toString(){
return "Información del vehículo: Matrícula: "+matricula+" Número de ruedas: "+numeroDeRuedas;
}
}


Subclase Taxi

Código: [Seleccionar]
package vehiculo;

public class Taxi extends Vehiculo{

private String numeroDelConductor;
private int numeroDePlazas;

//Getters and Setters
public String getNumeroDelConductor() {
return numeroDelConductor;
}
public void setNumeroDelConductor(String numeroDelConductor) {
this.numeroDelConductor = numeroDelConductor;
}
public int getNumeroDePlazas() {
return numeroDePlazas;
}
public void setNumeroDePlazas(int numeroDePlazas) {
this.numeroDePlazas = numeroDePlazas;
}

//Método toString sobreescrito
public String toString(){
return "Información del taxi: Número del conductor: "+numeroDelConductor+" Número de plazas: "+numeroDePlazas;
}
}


Ejecución del programa

Citar
Información del taxi: Número del conductor: null Número de plazas: 0

Preguntas:

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 método toString() que se ejecuta es el de la clase Taxi, esto es debido a que en tiempo de ejecución los métodos que se ejecutan dan preferencia al tipo dinámico que en este caso es Taxi.

Saludos  :)

8
Hola  :D

Expongo la resolución al ejercicio de polimorfismo, ejercicio que amplia el ejercicio de la entrega CU00687B sobre herencia del curso elemental de programación Java con IDE BlueJ


Clase EnvioDeProductos que contiene la lista de productos

Código: [Seleccionar]
package aplicacion;

import java.util.List;
import java.util.ArrayList;

/**
 * Clase EnvioDeProductos que contiene la lista de productos
 * @author David
 *
 */
public class EnvioDeProductos {

private List<Producto> listaProductos;

public EnvioDeProductos(){
listaProductos = new ArrayList<Producto>();
}

//Getters and Setters
public List<Producto> getListaProductos() {
return listaProductos;
}

public void setListaProductos(List<Producto> listaProductos) {
this.listaProductos = listaProductos;
}

//Método encargado de añadir los productos a la lista para su posterior envio
public ArrayList<Producto> crearEnvio(Producto producto){
listaProductos.add(producto);
return (ArrayList<Producto>) listaProductos;
}
}


Clase TestHerencia4

Código: [Seleccionar]
package test;

import aplicacion.*;
import java.util.Iterator;

public class TestHerencia4 {

public static void main(String[] args){

//Instancio un objeto de la clase EnvioDeProducto
EnvioDeProductos envioProductos = new EnvioDeProductos();

//Creo una lista con todos los productos para su posterior envio
envioProductos.crearEnvio(new ProductoFresco("23/12/2017", 200, "12/03/2017", "EEUU"));
envioProductos.crearEnvio(new ProductoFresco("12/10/2017", 150, "24/06/2017", "Brasil"));
envioProductos.crearEnvio(new ProductoRefrigerado("20/11/2018", 456, "22/02/2017", "España", 22, 32));
envioProductos.crearEnvio(new ProductoRefrigerado("14/09/2019", 303, "18/09/2018", "Alemania", 14, 50));
envioProductos.crearEnvio(new ProductoRefrigerado("05/07/2020", 105, "16/06/2018", "Francia", 48, 85));
envioProductos.crearEnvio(new ProductoCongelado("11/09/2022", 184, "04/05/2017", "China", -30));
envioProductos.crearEnvio(new ProductoCongelado("15/05/2025", 208, "04/05/2017", "Mexico", -28));
envioProductos.crearEnvio(new ProductoCongelado("20/04/2024", 302, "04/05/2017", "Ecuador", -29));
envioProductos.crearEnvio(new ProductoCongelado("30/03/2023", 650, "04/05/2017", "Tailandia", -27));
envioProductos.crearEnvio(new ProductoCongelado("26/01/2021", 985, "04/05/2017", "India", -26));
envioProductos.crearEnvio(new CongeladoAgua("13/06/2020", 656, "31/04/2017", "Portugal", -25, 4));
envioProductos.crearEnvio(new CongeladoAgua("24/08/2024", 987, "06/09/2017", "Italia", -26, 8));
envioProductos.crearEnvio(new CongeladoAire("25/08/2022", 854, "14/11/2017", "Puerto Rico", -30, "4"));
envioProductos.crearEnvio(new CongeladoAire("15/12/2023", 854, "10/08/2017", "Egipto", -28, "3"));
envioProductos.crearEnvio(new CongeladoNitrogeno("25/04/2026", 741, "05/04/2017", "Guatemala", -35, "info", 50));

//Muestro por pantalla la información del número de productos que componen el envio
System.out.println("El número de productos que componen el envio es: "+envioProductos.getListaProductos().size());

//Recorro la lista para ir mostrando la información (valor de los atributos) de cada uno de ellos.
Iterator<Producto> it = envioProductos.getListaProductos().iterator();
Producto elemento;
while (it.hasNext()) {
elemento = it.next();
System.out.println("Este es la información de cada producto: "+elemento.toString());
}
}

}


Superclase Producto

Código: [Seleccionar]
package aplicacion;

/**
 * Superclase Producto
 * @author David
 *
 */
public class Producto {

private String fechaCaducidad;
private int numeroLote;

public Producto(){

}

//Constructor sobrecargado
public Producto(String fechaCaducidad,int numeroLote){
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}

//Getters and Setters
public String getFechaCaducidad(){
return fechaCaducidad;
}

public void setFechaCaducidad(String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}

public int getNumeroLote(){
return numeroLote;
}

public void setNumeroLote(int valorNumeroLote){
numeroLote = valorNumeroLote;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+fechaCaducidad+" //Número de lote: "+numeroLote;
}
}


Subclase ProductoFresco que implementa la superclase Producto

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoFresco que extiende de Producto
 * @author David
 *
 */
public class ProductoFresco extends Producto{

private String fechaEnvasado;
private String paisOrigen;

//Constructor sobrecargado
public ProductoFresco(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen){
super(fechaCaducidad,numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}

//Getters and Setters
public String getFechaEnvasado() {
return fechaEnvasado;
}

public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}

public String getPaisOrigen() {
return paisOrigen;
}

public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha de envasado: "+fechaEnvasado+" País origen: "+paisOrigen;
}
}


Subclase ProductoRefrigerado que implementa la superclase Producto

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoRefrigerado que extiende de la clase ProductoFresco
 * @author David
 *
 */
public class ProductoRefrigerado extends ProductoFresco {

private int codigoOrganismo;
private double temperaturaMantenimiento;

//Constructor sobrecargado
public ProductoRefrigerado(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,int codigoOrganismo){
super(fechaCaducidad, numeroLote,fechaEnvasado,paisOrigen);
this.codigoOrganismo = codigoOrganismo;
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Getters and Setters
public int getCodigoOrganismo() {
return codigoOrganismo;
}

public void setCodigoOrganismo(int codigoOrganismo) {
this.codigoOrganismo = codigoOrganismo;
}

public double getTemperaturaMantenimiento() {
return temperaturaMantenimiento;
}

public void setTemperaturaMantenimiento(double temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de envasado: "+getFechaEnvasado()+" //Pais de origen: "+getPaisOrigen()+" //Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Temperatura de mantenimiento: "+temperaturaMantenimiento+" //Código organimo: "+codigoOrganismo;
}
}


Superclase ProductoCongelado que a su vez extiende de Producto

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoCongelado que extiende de ProductoFresco
 * @author David
 *
 */
public class ProductoCongelado extends ProductoFresco {

private int temperaturaMantenimiento;

//Constructor sobrecargado
public ProductoCongelado(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen);
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Getters and Setters
public int getTemperaturaMantenimiento() {
return temperaturaMantenimiento;
}

public void setTemperaturaMantenimiento(int temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de envasado: "+getFechaEnvasado()+" //Pais de origen: "+getPaisOrigen()+" //Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Temperatura de mantenimiento: "+temperaturaMantenimiento;
}
}


Subclase CongeladoAire que extiende de ProductoCongelado

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase CongeladoAire que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoAire extends ProductoCongelado{

private String composicionAire;

//Constructor sobrecargado
public CongeladoAire(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,String composicionAire){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.composicionAire = composicionAire;
}

//Getters and Setters
public String getComposicionAire() {
return composicionAire;
}

public void setComposicionAire(String composicionAire) {
this.composicionAire = composicionAire;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Composición del aire: "+composicionAire;
}
}


Subclase CongeladoAgua que extiende de ProductoCongelado

Código: [Seleccionar]
package aplicacion;
/**
 * Subclase CongeladoAgua que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoAgua extends ProductoCongelado{

private int salinidadAgua;

//Constructor sobrecargado
public CongeladoAgua(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,int salinidadAgua){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.salinidadAgua = salinidadAgua;
}

//Getters and Setters
public int getSalinidadAgua() {
return salinidadAgua;
}

public void setSalinidadAgua(int salinidadAgua) {
this.salinidadAgua = salinidadAgua;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Salinidad agua: "+salinidadAgua;
}
}


Subclase CongeladoNitrogeno que extiende de ProductoCongelado

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase CongeladoNitrogeno que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoNitrogeno extends ProductoCongelado{

private String informacionMetodoCongelacion;
private int tiempoEsposicion;

//Constructor sobrecargado
public CongeladoNitrogeno(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,String informacionMetodoCongelacion,int tiempoEsposicion){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.informacionMetodoCongelacion = informacionMetodoCongelacion;
this.tiempoEsposicion = tiempoEsposicion;
}

//Getters and Setters
public String getInformacionMetodoCongelacion() {
return informacionMetodoCongelacion;
}

public void setInformacionMetodoCongelacion(String informacionMetodoCongelacion) {
this.informacionMetodoCongelacion = informacionMetodoCongelacion;
}

public int getTiempoEsposicion() {
return tiempoEsposicion;
}

public void setTiempoEsposicion(int tiempoEsposicion) {
this.tiempoEsposicion = tiempoEsposicion;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Información sobre el método de congelación: "+informacionMetodoCongelacion+" //Tiempo de exposicion: "+tiempoEsposicion;
}
}


Ejecución del programa

Citar
El número de productos que componen el envio es: 15
Este es la información de cada producto: Fecha de caducidad: 23/12/2017 //Número de lote: 200 //Fecha de envasado: 12/03/2017 País origen: EEUU
Este es la información de cada producto: Fecha de caducidad: 12/10/2017 //Número de lote: 150 //Fecha de envasado: 24/06/2017 País origen: Brasil
Este es la información de cada producto: Fecha de envasado: 22/02/2017 //Pais de origen: España //Fecha de caducidad: 20/11/2018 //Número de lote: 456 //Temperatura de mantenimiento: 22.0 //Código organimo: 32
Este es la información de cada producto: Fecha de envasado: 18/09/2018 //Pais de origen: Alemania //Fecha de caducidad: 14/09/2019 //Número de lote: 303 //Temperatura de mantenimiento: 14.0 //Código organimo: 50
Este es la información de cada producto: Fecha de envasado: 16/06/2018 //Pais de origen: Francia //Fecha de caducidad: 05/07/2020 //Número de lote: 105 //Temperatura de mantenimiento: 48.0 //Código organimo: 85
Este es la información de cada producto: Fecha de envasado: 04/05/2017 //Pais de origen: China //Fecha de caducidad: 11/09/2022 //Número de lote: 184 //Temperatura de mantenimiento: -30
Este es la información de cada producto: Fecha de envasado: 04/05/2017 //Pais de origen: Mexico //Fecha de caducidad: 15/05/2025 //Número de lote: 208 //Temperatura de mantenimiento: -28
Este es la información de cada producto: Fecha de envasado: 04/05/2017 //Pais de origen: Ecuador //Fecha de caducidad: 20/04/2024 //Número de lote: 302 //Temperatura de mantenimiento: -29
Este es la información de cada producto: Fecha de envasado: 04/05/2017 //Pais de origen: Tailandia //Fecha de caducidad: 30/03/2023 //Número de lote: 650 //Temperatura de mantenimiento: -27
Este es la información de cada producto: Fecha de envasado: 04/05/2017 //Pais de origen: India //Fecha de caducidad: 26/01/2021 //Número de lote: 985 //Temperatura de mantenimiento: -26
Este es la información de cada producto: Fecha de caducidad: 13/06/2020 //Número de lote: 656 //Fecha envasado: 31/04/2017 //País origen: Portugal //Temperatura mantenimiento: -25 //Salinidad agua: 4
Este es la información de cada producto: Fecha de caducidad: 24/08/2024 //Número de lote: 987 //Fecha envasado: 06/09/2017 //País origen: Italia //Temperatura mantenimiento: -26 //Salinidad agua: 8
Este es la información de cada producto: Fecha de caducidad: 25/08/2022 //Número de lote: 854 //Fecha envasado: 14/11/2017 //País origen: Puerto Rico //Temperatura mantenimiento: -30 //Composición del aire: 4
Este es la información de cada producto: Fecha de caducidad: 15/12/2023 //Número de lote: 854 //Fecha envasado: 10/08/2017 //País origen: Egipto //Temperatura mantenimiento: -28 //Composición del aire: 3
Este es la información de cada producto: Fecha de caducidad: 25/04/2026 //Número de lote: 741 //Fecha envasado: 05/04/2017 //País origen: Guatemala //Temperatura mantenimiento: -35 //Información sobre el método de congelación: info //Tiempo de exposicion: 50

Saludos  :D

9
Hola  ;D

Aquí dejo la resolución al ejercicio CU00687B del taller de programación en Java con el IDE BlueJ sobre la herencia.

Primero muestro el diagrama de clases resultante



A continuación expongo el código fuente:

Clase encargada de realizar el test de la aplicación

Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestHerencia3 {

public static void main(String[] args){

//Creo 2 productos frescos
ProductoFresco pf1 = new ProductoFresco("23/12/2017", 200, "12/03/2017", "EEUU");
ProductoFresco pf2 = new ProductoFresco("12/10/2017", 150, "24/06/2017", "Brasil");

//Creo 3 productos refrigerados
ProductoRefrigerado pr1 = new ProductoRefrigerado("20/11/2018", 456, "22/02/2017", "España", 22, 32);
ProductoRefrigerado pr2 = new ProductoRefrigerado("14/09/2019", 303, "18/09/2018", "Alemania", 14, 50);
ProductoRefrigerado pr3 = new ProductoRefrigerado("05/07/2020", 105, "16/06/2018", "Francia", 48, 85);

//Creo 5 productos congelados
ProductoCongelado fc1 = new ProductoCongelado("11/09/2022", 184, "04/05/2017", "China", -30);
ProductoCongelado fc2 = new ProductoCongelado("15/05/2025", 208, "04/05/2017", "Mexico", -28);
ProductoCongelado fc3 = new ProductoCongelado("20/04/2024", 302, "04/05/2017", "Ecuador", -29);
ProductoCongelado fc4 = new ProductoCongelado("30/03/2023", 650, "04/05/2017", "Tailandia", -27);
ProductoCongelado fc5 = new ProductoCongelado("26/01/2021", 985, "04/05/2017", "India", -26);

//Creo 2 productos congelados por agua
CongeladoAgua ca1 = new CongeladoAgua("13/06/2020", 656, "31/04/2017", "Portugal", -25, 4);
CongeladoAgua ca2 = new CongeladoAgua("24/08/2024", 987, "06/09/2017", "Italia", -26, 8);

//Creo 2 productos congelados por aire
CongeladoAire caire1 = new CongeladoAire("25/08/2022", 854, "14/11/2017", "Puerto Rico", -30, "4");
CongeladoAire caire2 = new CongeladoAire("15/12/2023", 854, "10/08/2017", "Egipto", -28, "3");

//Creo 1 producto congelado por nitrogeno
CongeladoNitrogeno cn1 = new CongeladoNitrogeno("25/04/2026", 741, "05/04/2017", "Guatemala", -35, "info", 50);

//Salida por pantalla
System.out.println("Productos frescos: ");
System.out.println("Esta es la información del producto fresco 1: "+pf1.toString());
System.out.println("Esta es la información del producto fresco 2: "+pf2.toString());
System.out.println("Productos refrigerados: ");
System.out.println("Esta es la información del producto refrigerado 1: "+pr1.toString());
System.out.println("Esta es la información del producto refrigerado 2: "+pr2.toString());
System.out.println("Esta es la información del producto refrigerado 3: "+pr3.toString());
System.out.println("Productos congelados: ");
System.out.println("Esta es la información del producto congelado 1: "+fc1.toString());
System.out.println("Esta es la información del producto congelado 2: "+fc2.toString());
System.out.println("Esta es la información del producto congelado 3: "+fc3.toString());
System.out.println("Esta es la información del producto congelado 4: "+fc4.toString());
System.out.println("Esta es la información del producto congelado 5: "+fc5.toString());
System.out.println("Productos congelados por agua: ");
System.out.println("Esta es la información del producto congelado por agua 1: "+ca1.toString());
System.out.println("Esta es la información del producto congelado por agua 2: "+ca2.toString());
System.out.println("Productos congelados por aire: ");
System.out.println("Esta es la información del producto congelado por aire 1: "+caire1.toString());
System.out.println("Esta es la información del producto congelado por aire 2: "+caire2.toString());
System.out.println("Productos congelados por nitrogeno: ");
System.out.println("Esta es la información del producto congelado por nitrogeno 1: "+cn1.toString());
}

}

Superclase Producto
Código: [Seleccionar]
package aplicacion;

/**
 * Superclase Producto
 * @author David
 *
 */
public class Producto {

private String fechaCaducidad;
private int numeroLote;

public Producto(){

}

//Constructor sobrecargado
public Producto(String fechaCaducidad,int numeroLote){
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}

//Getters and Setters
public String getFechaCaducidad(){
return fechaCaducidad;
}

public void setFechaCaducidad(String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}

public int getNumeroLote(){
return numeroLote;
}

public void setNumeroLote(int valorNumeroLote){
numeroLote = valorNumeroLote;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+fechaCaducidad+" //Número de lote: "+numeroLote;
}
}

Subclase ProductoFresco que extiende de Producto
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoFresco que extiende de Producto
 * @author David
 *
 */
public class ProductoFresco extends Producto{

private String fechaEnvasado;
private String paisOrigen;

//Constructor sobrecargado
public ProductoFresco(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen){
super(fechaCaducidad,numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}

//Getters and Setters
public String getFechaEnvasado() {
return fechaEnvasado;
}

public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}

public String getPaisOrigen() {
return paisOrigen;
}

public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha de envasado: "+fechaEnvasado+" País origen: "+paisOrigen;
}
}

Subclase ProductoRefrigerado
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoRefrigerado que extiende de la clase ProductoFresco
 * @author David
 *
 */
public class ProductoRefrigerado extends ProductoFresco {

private int codigoOrganismo;
private double temperaturaMantenimiento;

//Constructor sobrecargado
public ProductoRefrigerado(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,int codigoOrganismo){
super(fechaCaducidad, numeroLote,fechaEnvasado,paisOrigen);
this.codigoOrganismo = codigoOrganismo;
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Getters and Setters
public int getCodigoOrganismo() {
return codigoOrganismo;
}

public void setCodigoOrganismo(int codigoOrganismo) {
this.codigoOrganismo = codigoOrganismo;
}

public double getTemperaturaMantenimiento() {
return temperaturaMantenimiento;
}

public void setTemperaturaMantenimiento(double temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de envasado: "+getFechaEnvasado()+" //Pais de origen: "+getPaisOrigen()+" //Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Temperatura de mantenimiento: "+temperaturaMantenimiento+" //Código organimo: "+codigoOrganismo;
}
}

Superclase ProductoCongelado que extiende a su vez de la superclase Producto
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoCongelado que extiende de ProductoFresco
 * @author David
 *
 */
public class ProductoCongelado extends ProductoFresco {

private int temperaturaMantenimiento;

//Constructor sobrecargado
public ProductoCongelado(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen);
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Getters and Setters
public int getTemperaturaMantenimiento() {
return temperaturaMantenimiento;
}

public void setTemperaturaMantenimiento(int temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de envasado: "+getFechaEnvasado()+" //Pais de origen: "+getPaisOrigen()+" //Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Temperatura de mantenimiento: "+temperaturaMantenimiento;
}
}

Subclase CongeladoAgua que extiende de ProductoCongelado
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase CongeladoAgua que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoAgua extends ProductoCongelado{

private int salinidadAgua;

//Constructor sobrecargado
public CongeladoAgua(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,int salinidadAgua){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.salinidadAgua = salinidadAgua;
}

//Getters and Setters
public int getSalinidadAgua() {
return salinidadAgua;
}

public void setSalinidadAgua(int salinidadAgua) {
this.salinidadAgua = salinidadAgua;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Salinidad agua: "+salinidadAgua;
}
}

Subclase CongeladoAire que extiende de ProductoCongelado
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase CongeladoAire que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoAire extends ProductoCongelado{

private String composicionAire;

//Constructor sobrecargado
public CongeladoAire(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,String composicionAire){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.composicionAire = composicionAire;
}

//Getters and Setters
public String getComposicionAire() {
return composicionAire;
}

public void setComposicionAire(String composicionAire) {
this.composicionAire = composicionAire;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Composición del aire: "+composicionAire;
}
}

Subclase CongeladoNitrogeno que extiende de ProductoCongelado
Código: [Seleccionar]
package aplicacion;

/**
 * Subclase CongeladoNitrogeno que extiende de ProductoCongelado
 * @author David
 *
 */
public class CongeladoNitrogeno extends ProductoCongelado{

private String informacionMetodoCongelacion;
private int tiempoEsposicion;

//Constructor sobrecargado
public CongeladoNitrogeno(String fechaCaducidad, int numeroLote, String fechaEnvasado, String paisOrigen,int temperaturaMantenimiento,String informacionMetodoCongelacion,int tiempoEsposicion){
super(fechaCaducidad,numeroLote,fechaEnvasado,paisOrigen,temperaturaMantenimiento);
this.informacionMetodoCongelacion = informacionMetodoCongelacion;
this.tiempoEsposicion = tiempoEsposicion;
}

//Getters and Setters
public String getInformacionMetodoCongelacion() {
return informacionMetodoCongelacion;
}

public void setInformacionMetodoCongelacion(String informacionMetodoCongelacion) {
this.informacionMetodoCongelacion = informacionMetodoCongelacion;
}

public int getTiempoEsposicion() {
return tiempoEsposicion;
}

public void setTiempoEsposicion(int tiempoEsposicion) {
this.tiempoEsposicion = tiempoEsposicion;
}

//Método toString sobrecargado
public String toString(){
return "Fecha de caducidad: "+getFechaCaducidad()+" //Número de lote: "+getNumeroLote()+" //Fecha envasado: "+getFechaEnvasado()+" //País origen: "+getPaisOrigen()+" //Temperatura mantenimiento: "+getTemperaturaMantenimiento()+" //Información sobre el método de congelación: "+informacionMetodoCongelacion+" //Tiempo de exposicion: "+tiempoEsposicion;
}
}

Ejecución del programa
Citar
Productos frescos:
Esta es la información del producto fresco 1: Fecha de caducidad: 23/12/2017 //Número de lote: 200 //Fecha de envasado: 12/03/2017 País origen: EEUU
Esta es la información del producto fresco 2: Fecha de caducidad: 12/10/2017 //Número de lote: 150 //Fecha de envasado: 24/06/2017 País origen: Brasil
Productos refrigerados:
Esta es la información del producto refrigerado 1: Fecha de envasado: 22/02/2017 //Pais de origen: España //Fecha de caducidad: 20/11/2018 //Número de lote: 456 //Temperatura de mantenimiento: 22.0 //Código organimo: 32
Esta es la información del producto refrigerado 2: Fecha de envasado: 18/09/2018 //Pais de origen: Alemania //Fecha de caducidad: 14/09/2019 //Número de lote: 303 //Temperatura de mantenimiento: 14.0 //Código organimo: 50
Esta es la información del producto refrigerado 3: Fecha de envasado: 16/06/2018 //Pais de origen: Francia //Fecha de caducidad: 05/07/2020 //Número de lote: 105 //Temperatura de mantenimiento: 48.0 //Código organimo: 85
Productos congelados:
Esta es la información del producto congelado 1: Fecha de envasado: 04/05/2017 //Pais de origen: China //Fecha de caducidad: 11/09/2022 //Número de lote: 184 //Temperatura de mantenimiento: -30
Esta es la información del producto congelado 2: Fecha de envasado: 04/05/2017 //Pais de origen: Mexico //Fecha de caducidad: 15/05/2025 //Número de lote: 208 //Temperatura de mantenimiento: -28
Esta es la información del producto congelado 3: Fecha de envasado: 04/05/2017 //Pais de origen: Ecuador //Fecha de caducidad: 20/04/2024 //Número de lote: 302 //Temperatura de mantenimiento: -29
Esta es la información del producto congelado 4: Fecha de envasado: 04/05/2017 //Pais de origen: Tailandia //Fecha de caducidad: 30/03/2023 //Número de lote: 650 //Temperatura de mantenimiento: -27
Esta es la información del producto congelado 5: Fecha de envasado: 04/05/2017 //Pais de origen: India //Fecha de caducidad: 26/01/2021 //Número de lote: 985 //Temperatura de mantenimiento: -26
Productos congelados por agua:
Esta es la información del producto congelado por agua 1: Fecha de caducidad: 13/06/2020 //Número de lote: 656 //Fecha envasado: 31/04/2017 //País origen: Portugal //Temperatura mantenimiento: -25 //Salinidad agua: 4
Esta es la información del producto congelado por agua 2: Fecha de caducidad: 24/08/2024 //Número de lote: 987 //Fecha envasado: 06/09/2017 //País origen: Italia //Temperatura mantenimiento: -26 //Salinidad agua: 8
Productos congelados por aire:
Esta es la información del producto congelado por aire 1: Fecha de caducidad: 25/08/2022 //Número de lote: 854 //Fecha envasado: 14/11/2017 //País origen: Puerto Rico //Temperatura mantenimiento: -30 //Composición del aire: 4
Esta es la información del producto congelado por aire 2: Fecha de caducidad: 15/12/2023 //Número de lote: 854 //Fecha envasado: 10/08/2017 //País origen: Egipto //Temperatura mantenimiento: -28 //Composición del aire: 3
Productos congelados por nitrogeno:
Esta es la información del producto congelado por nitrogeno 1: Fecha de caducidad: 25/04/2026 //Número de lote: 741 //Fecha envasado: 05/04/2017 //País origen: Guatemala //Temperatura mantenimiento: -35 //Información sobre el método de congelación: info //Tiempo de exposicion: 50

Saludos  ;D

10
Hola  ;)

Aquí dejo la resolución al ejercicio CU00686B del curso básico de codificación con Java y IDE BlueJ, de herencia.


Clase de test

Código: [Seleccionar]
package test;

import aplicacion.*;

/**
 * Clase encargada de realizar un test de la aplicación
 * @author David
 *
 */
public class TestHerencia2 {

public static void main(String[] args) {

Producto producto = new Producto("23/07/2016",22);
System.out.println("Prueba de lo que contiene el objeto de la clase Producto: "+producto.toString());

ProductoFresco pf1 = new ProductoFresco("23/07/2016", "España", "12/12/2017", 40);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoFresco: "+pf1.toString());

ProductoRefrigerado pr1 = new ProductoRefrigerado(50, "23/04/2020", 804);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: "+pr1.toString());

ProductoCongelado pc1 = new ProductoCongelado("24/05/2025", 45, -30);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoCongelado: "+pc1.toString());
}

}


Superclase Producto

Código: [Seleccionar]
package aplicacion;


/**
 * Superclase Producto
 * @author David
 *
 */
public class Producto {

private String fechaCaducidad;
private int numeroLote;

//Constructor
public Producto(){

}
//Constructor sobrecargado
public Producto(String fechaCaducidad, int numeroLote){
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}

//Getters and Setters
public String getFechaCaducidad(){
return fechaCaducidad;
}

public void setFechaCaducidad(String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}

public int getNumeroLote(){
return numeroLote;
}

public void setNumeroLote(int valorNumeroLote){
numeroLote = valorNumeroLote;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){

return "Fecha de caducidad "+fechaCaducidad+" //Numero de lote: "+numeroLote;
}
}



Y estas son las subclases

ProductoFresco

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoFresco que extiende de la clase Producto
 * @author David
 *
 */
public class ProductoFresco extends Producto{

private String fechaEnvasado;
private String paisOrigen;

//Constructor sobrecargado
public ProductoFresco(String fechaEnvasado, String paisOrigen,String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}

//Getters and Setters
public String getFechaEnvasado(){
return fechaEnvasado;
}

public void setFechaEnvasado(String valorFechaEnvasado){
fechaEnvasado = valorFechaEnvasado;
}

public String getPaisOrigen() {
return paisOrigen;
}

public void setPaisOrigen(String valorPaisOrigen) {
paisOrigen = valorPaisOrigen;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Fecha envasado: "+fechaEnvasado+" //Pais de origen: "+paisOrigen;
}
}


ProductoRefrigerado

Código: [Seleccionar]
package aplicacion;

public class ProductoRefrigerado extends Producto{

private int codigoOrganismo;

//Constructor sobrecargado
public ProductoRefrigerado(int codigoOrganismo, String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.codigoOrganismo = codigoOrganismo;
}

//Getters and Setters
public int getCodigoOrganismo() {
return codigoOrganismo;
}

public void setCodigoOrganismo(int valorCodigoOrganismo) {
codigoOrganismo = valorCodigoOrganismo;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Código de organismo: "+codigoOrganismo;
}
}


ProductoCongelado

Código: [Seleccionar]
package aplicacion;

public class ProductoCongelado extends Producto {

private double temperaturaCongelacion;

//Constructor sobrecargado
public ProductoCongelado(String fechaCaducidad, int numeroLote, double temperaturaCongelacion) {
super(fechaCaducidad, numeroLote);
this.temperaturaCongelacion = temperaturaCongelacion;
}


//Getters and Setters
public double getTemperaturaCongelacion() {
return temperaturaCongelacion;
}

public void setTemperaturaCongelacion(double valorTemperaturaCongelacion) {
temperaturaCongelacion = valorTemperaturaCongelacion;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Temperatura de congelación: "+temperaturaCongelacion;
}
}


Ejecución del programa

Citar
Prueba de lo que contiene el objeto de la clase Producto: Fecha de caducidad 23/07/2016 //Numero de lote: 22
Prueba de lo que contiene el objeto de la clase ProductoFresco: Fecha caducidad: 12/12/2017 //Numero de lote: 40 //Fecha envasado: 23/07/2016 //Pais de origen: España
Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: Fecha caducidad: 23/04/2020 //Numero de lote: 804 //Código de organismo: 50
Prueba de lo que contiene el objeto de la clase ProductoCongelado: Fecha caducidad: 24/05/2025 //Numero de lote: 45 //Temperatura de congelación: -30.0

Saludos  ;D

11
Hola pedro  ;)

Gracias por la corrección del ejercicio y por darme esos consejos, he rediseñado la aplicación introduciendo los constructores como me has indicado, he dejado las dos soluciones en la misma aplicación, eso si comentada la antigua para que se observe que hacen los mismo de dos maneras diferentes.

Aqui dejo el código que he modificado.
Código: [Seleccionar]
package aplicacion;

import circulo.Circulo;
import utilidades.EntradaDatos;

public class Test {

public static void main(String[] args) {

Circulo circulo = new Circulo();

EntradaDatos entradaDatos = new EntradaDatos();
double numeroIntroducido = 0;
double area = 0.0;
double longitud = 0.0;

/*System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
//Resolución ejercicio pidiendo los datos por teclado y utilizando el set para dar el valor del radio al objeto
numeroIntroducido = entradaDatos.pideNumero();
circulo.setRadio(numeroIntroducido);
area = circulo.calcularAreaCirculo();
longitud = circulo.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");*/

//Resolución del ejercicio utilizando el constructor sobrecargado en el que creo el objeto con el valor del radio ya establecido con el
//valor que ha introducido el usuario por teclado de esta manera no se tiene que utilizar el método set del objeto.
System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
numeroIntroducido = entradaDatos.pideNumero();
Circulo circulo2 = new Circulo(numeroIntroducido);
area = circulo2.calcularAreaCirculo();
longitud = circulo2.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");
}

}


Clase Circulo
Código: [Seleccionar]
package circulo;

public class Circulo {

private static final double NUMEROPI = 3.1416;
private double radio;

public Circulo(){
radio = 0.0;
}

public Circulo(double valorRadio){
radio = valorRadio;
}

public double getNumeroPi(){
return NUMEROPI;
}

public double getRadio() {
return radio;
}

public void setRadio(double valorRadio) {
radio = valorRadio;
}

public double calcularAreaCirculo(){
double area = 0.0;
area = Math.pow(radio,2)*NUMEROPI;
return area;
}

public double calcularLongitudCirculo(){
double longitud = 0.0;
longitud = 2*NUMEROPI*radio;
return longitud;
}

}


Saludos  ;)

12
Hola pedro  ;)

Gracias por corregirlo, le he realizado los cambios que me as comentado y la pregunta olvide responderlas  ::) jeje.


Este es el código corregido:
Código: [Seleccionar]

package aplicacion;


import java.util.ArrayList;


public class TestArray {


   public static void main(String[] args) {


      int[] miArray1 = { 2, -4, 3, -7 };
      ArrayList<Integer> lista1 = new ArrayList<Integer>();


      System.out.println("Contenido de miArray1(array): ");
      for (int i = 0; i < miArray1.length; i++) {
         System.out.println("miArray1[" + i + "]= " + miArray1[i] + ";");
         lista1.add(miArray1);
      }


      System.out.println("Resultado tras convertir array en ArrayList");
      System.out.println("Contenido de lista1(ArrayList): ");
      //Recorro la lista de tipo ArrayList e imprimo el valor de cada posición
      int contador = 0;
      for (Integer posicion : lista1) {
         
         System.out.println("lista1 "+contador+"= " + posicion+ ";");
         contador++;
      }
   }
}



¿Que tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?
Citar
El array contiene cuatro datos de tipo primitivo int.
El ArrayList contiene objetos de tipo Array con los datos que contiene el array de tipo primitivo int.

Saludos  8)

13
Hola  ;)

Empezando con la unidad de la herencia CU00684B del taller de programación orientada a objetos con Java y BlueJ, expongo la resolución al primer ejercicio a través de la imagen del esquema.



Saludos  :)

14
Hola  :)

Aquí traigo la resolución al ejercicio CU00683B del manual de programación Java con BlucJ sobre los métodos de clase o estaticos y métodos de instancia.

El ejercicio es el siguiente:
Citar
Solucionar los errores de compilación de la siguiente clase

Código: [Seleccionar]
package aplicacion;

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());
}

public int getAtrib1(){
return atributo1;
}
}

Citar
¿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?

Citar
¿Qué mensaje de error se obtiene? ¿Por qué se obtiene este mensaje de error?
No es un solo error el que se obtiene, sino una serie de errores encadenados a continuación, los voy exponiendo.

Citar
Primer error:
El error literal es "no se puede usar this en un contexto estático".
La palabra reservada "this" hace referencia a una instancia del objeto de esta clase, como el objeto nunca va a ser creado no tiene sentido utilizar la palabra reservada "this" dentro de un método de clase o estático.

Este es el código tras corregir el primer error
Código: [Seleccionar]
package aplicacion;

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: "+getAtrib1());
}

public int getAtrib1(){
return atributo1;
}
}

Citar
Segundo error:
El error literal es "no se puede hacer referencia a un método no estático o de instancia desde un método estático o de clase".
Esto es debido a que desde el método main que es de clase o estático el cual no va asociado a un objeto se intenta acceder a un método de instancia que si va asociado a un objeto. Para solucionarlo la forma más rápida convertir el método getAtrib1 en estático así no hara falta instanciarlo para poder utilizarlo.

Citar
Este es el código tras corregir el segundo error
Código: [Seleccionar]
package aplicacion;

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: "+ getAtrib1());
}

public static int getAtrib1(){
return atributo1;
}
}

Citar
Último error:
El error literal es "no se puede hacer referencia a una propiedad no estática desde un método estático".
Esto es debido a que se está intentando acceder a un atributo de instancia desde un método de clase o estático, para solucionarlo hay que declarar la propiedad como estática.

Citar
Este es el código tras corregir el último error
Código: [Seleccionar]
package aplicacion;

public class Test {

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: "+ getAtrib1());
}

public static int getAtrib1(){
return atributo1;
}
}

Ejecución del programa
Citar
Mensaje 1
Atributo 1 vale: 0

Saludos  :)

15
Hola  :D

Está es la resolución al ejercicio CU00682B del taller de programación básica con Java y BlueJ de tipos enumerados que consiste en mostrar el peso de cada uno de los tipos de piedra.

Clase de Test
Código: [Seleccionar]
package aplicacion;

import piedra.TipoDePiedra;

/**
 * Esta clase prueba una clase de tipo Enum realizando distintas operaciones con ella
 * @author David
 *
 */
public class Test {

public static void main(String[] args){

System.out.println("El peso de los palets de los distintos tipos de piedra:");
for(TipoDePiedra tmp : TipoDePiedra.values()){
System.out.println(tmp.toString() + " el palet pesa "+tmp.getPeso()+" kg");
}

}
}

Clase tipo Enum de TipoDePiedra
Código: [Seleccionar]
package piedra;

/**
 * Clase que contiene los tipos de piedra y su peso específico en Kg
 * @author David
 *
 */
public enum TipoDePiedra {
CALIZA(1200),
MARMOL(1423.55),
PIZARRA(1325),
CUARZITA(1466.22);

//Campo de tipo constante
private final double peso;

/**
* Constructor. Al asignarle el valor posible a una variable del tipo enumerado el constructor asigna automaticamente el valor del campo
*/
TipoDePiedra(double peso){
this.peso = peso;
}

//Métodos de la clase tipo Enum
public double getPeso() {
return peso;
}
}

Ejecución del programa
Citar
El peso de los palets de los distintos tipos de piedra:
CALIZA el palet pesa 1200.0 kg
MARMOL el palet pesa 1423.55 kg
PIZARRA el palet pesa 1325.0 kg
CUARZITA el palet pesa 1466.22 kg

Saludos  ;)

16
Hola  ;)

Aquí expongo la resolución al ejercicio CU00681B del taller de programación orientada a objetos con Java y BlueJ, de tipos enumerados, ¿me lo podrían revisar para ver si lo he realizado correctamente?, Porque ya que el enunciado deja abierta el tema de la prueba no se hago lo que se me pide correctamente.

Clase Test
Código: [Seleccionar]
package aplicacion;

import vehiculo.Vehiculo;
import vehiculo.Vehiculo.MarcaDeVehiculo;

/**
 * Clase encargada de realizar el test de la aplicacion
 * @author David
 *
 */
public class Test {

public static void main(String[] args){

Vehiculo vehiculo = new Vehiculo();

MarcaDeVehiculo marca = vehiculo.getMarca().FORD;
vehiculo.setMatricula("0396FKX");
System.out.println("La marca del vehiculo es: "+marca.toString().toLowerCase()+" y la matricula es: "+vehiculo.getMatricula());
}
}

Clase Vehiculo
Código: [Seleccionar]
package vehiculo;

/**
 * Clase Vehiculo
 * @author David
 *
 */
public class Vehiculo {


public enum MarcaDeVehiculo {FORD,TOYOTA,SUZUKI,RENAULT,SEAT};
private String matricula;
private MarcaDeVehiculo marca;

//Método getters and setters
public String getMatricula(){
return matricula;
}

public void setMatricula(String valorMatricula){
matricula = valorMatricula;
}

public MarcaDeVehiculo getMarca(){
return marca;
}

/*public void setMarca(MarcaDeVehiculo valorMarca){
marca = valorMarca;
}*/
}

Ejecución del programa
Citar
La marca del vehiculo es: ford y la matricula es: 0396FKX

Saludos  :D

17
Buenas  :)

Aquí dejo la resolución al ejercicio CU00680B del taller de programación Java con IDE BlueJ sobre el tema de la documentación con Javadoc sobre la aplicación de una mini calculadora.

Clase de test
Código: [Seleccionar]
package aplicacion;

import calculadora.MiniCalculadora;

/**
 * Clase encargada de realizar la prueba de la clase MiniCalculadora
 * @author David
 *
 */
public class Test {

/**
* Método main donde comienza la ejecución del programa
* @param args
*/
public static void main(String[] args) {

MiniCalculadora calculadora = new MiniCalculadora();

double numero1 = -3;
double numero2 = 25;
double valorAbsoluto = calculadora.valorAbsoluto(numero1);
double raizCuadrada = calculadora.raizCuadrada(numero2);

System.out.println("El valor absoluto de "+numero1+" es: "+valorAbsoluto);
System.out.println("La raiz cuadrada de "+numero2+" es: "+raizCuadrada);
}

}

Clase MiniCalculadora con los métodos de la lógica de la aplicación.
Código: [Seleccionar]
package calculadora;

/**
 * Clase que contiene los metodos de la lógica de la calculadora
 * @author David
 *
 */
public class MiniCalculadora {

/**
* Método encargado de convertir el número que recibe por parametros a su valor absoluto
* @param numero
* @return valorAbsoluto
*/
public double valorAbsoluto(double numero){

double valorAbsoluto = Math.abs(numero);
return valorAbsoluto;
}

/**
* Método encargado de realizarle la raiz cuadrada al número que recibe por parametros
* @param numero
* @return raizCuadrada
*/
public double raizCuadrada(double numero){

double raizCuadrada = Math.sqrt(numero);
return raizCuadrada;
}
}

Ejecución del programa
Citar
El valor absoluto de -3.0 es: 3.0
La raiz cuadrada de 25.0 es: 5.0

Saludos  ;D

18
Hola a todos  :)

Expongo la resolución al ejercicio sobre el polimorfismo CU00678B del curso de iniciación a Java con BlueJ.

Código: [Seleccionar]
package aplicacion;

import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;

public class Principal {

public static void main(String[] args) {
//Creo una lista ArrayList de tipo interfaz Set
ArrayList<Set> lista = new ArrayList<Set>();
//Creo una lista HashSet de tipos String y la relleno
HashSet<String> astros = new HashSet<String>();
astros.add("sol");
astros.add("luna");
astros.add("saturno");
//Creo una lista TreeSet de tipo Integer y la relleno
TreeSet<Integer> numeros = new TreeSet<Integer>();
numeros.add(2);
numeros.add(8);
numeros.add(5);
//Relleno el ArrayList con 2 tipos diferentes, la lista los acepta porque los tipos HashSet y TreeSet implementan la interfaz Set
lista.add(astros);
lista.add(numeros);
//Creo un objeto it de tipo Iterator con objetos de interfaz Set
Iterator<Set> it = lista.iterator();
Set cursor;
//Recorro la lista para acceder a cada posición del iterador
while(it.hasNext()){
cursor = (Set) it.next();
Iterator<Set> it2 = cursor.iterator();

if(cursor instanceof HashSet){
System.out.println("Elementos de HashSet.");
}else{
System.out.println("Elementos del TreeSet.");
}
int i=0;
//Recorro el nuevo iterador y accedo a cada uno de sus elementos
while(it2.hasNext()){
//Imprimo cada valor del ArrayList
System.out.println("El elemento "+(i++)+" contiene el valor: "+it2.next());
}
}
}
}


Salida por pantalla:
Citar
Elementos de HashSet.
El elemento 0 contiene el valor: sol
El elemento 1 contiene el valor: saturno
El elemento 2 contiene el valor: luna
Elementos del TreeSet.
El elemento 0 contiene el valor: 2
El elemento 1 contiene el valor: 5
El elemento 2 contiene el valor: 8

19
Buenas  :D

Aquí dejo la resolución al ejercicio CU00675B del manual básico de programación Java con BlueJ sobre copiar el contenido de un array a un ArrayList

Código: [Seleccionar]
package aplicacion;

import java.util.ArrayList;

public class TestArray {

public static void main(String[] args) {

int[] miArray1 = { 2, -4, 3, -7 };
ArrayList<Integer> lista1 = new ArrayList<Integer>();

System.out.println("Contenido de miArray1(array): ");
for (int i = 0; i < miArray1.length; i++) {
System.out.println("miArray1[" + i + "]= " + miArray1[i] + ";");
}

// La única forma de hacerlo es ir recorriendo el array e ir añadiendo
// el valor de cada posicion a la lista de tipo ArrayList
for (int i = 0; i < miArray1.length; i++) {
lista1.add(miArray1[i]);
}

System.out.println("Resultado tras convertir array en ArrayList");
System.out.println("Contenido de lista1(ArrayList): ");
//Recorro la lista de tipo ArrayList e imprimo el valor de cada posición
int contador = 0;
for (Integer posicion : lista1) {

System.out.println("lista1 "+contador+"= " + posicion+ ";");
contador++;
}
}
}

Aquí dejo también una prueba de funcionamiento:
Citar
Contenido de miArray1(array):
miArray1[0]= 2;
miArray1[1]= -4;
miArray1[2]= 3;
miArray1[3]= -7;
Resultado tras convertir array en ArrayList
Contenido de lista1(ArrayList):
lista1 0= 2;
lista1 1= -4;
lista1 2= 3;
lista1 3= -7;

20
Buenas  ;)

Aquí dejo la resolución al ejercicio CU00673B del curso de programación Java con IDE BlueJ, de calcular el área y la longitud de un circulo a través del radio.

Clase Test donde creo un objeto Circulo y le calculo su área y longitud a través del radio introducido por el usuario.

Código: [Seleccionar]
package aplicacion;

import circulo.Circulo;
import utilidades.Utilidades;

public class Test {

public static void main(String[] args) {

Circulo circulo = new Circulo();
Utilidades utilidades = new Utilidades();
double numeroIntroducido = 0;
double area = 0.0;
double longitud = 0.0;

System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
numeroIntroducido = utilidades.pideNumero();
circulo.setRadio(numeroIntroducido);
area = circulo.calcularAreaCirculo();
longitud = circulo.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");
}

}


Clase Circulo con los métodos para calcular el área y la longitud del círculo

Código: [Seleccionar]
package circulo;

public class Circulo {

private static final double NUMEROPI = 3.1416;
private double radio;

public double getNumeroPi(){
return NUMEROPI;
}

public double getRadio() {
return radio;
}

public void setRadio(double valorRadio) {
radio = valorRadio;
}

public double calcularAreaCirculo(){
double area = 0.0;
area = Math.pow(radio,2)*NUMEROPI;
return area;
}

public double calcularLongitudCirculo(){
double longitud = 0.0;
longitud = 2*NUMEROPI*radio;
return longitud;
}

}



Clase Utilidades que contiene los métodos de entrada de datos.

Código: [Seleccionar]
package utilidades;

import java.util.Scanner;

public class Utilidades {

public int pideNumero() {

Scanner sc = new Scanner(System.in);
int entradaTeclado = sc.nextInt();

return entradaTeclado;
}

public String pideCadena() {

Scanner sc = new Scanner(System.in);
String entradaTeclado = sc.nextLine();

return entradaTeclado;
}
}

Aquí dejo también una prueba de funcionamiento:

Código: [Seleccionar]
En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio
Por favor ingrese el radio:
3
El area del circulo es: 28.2744 y la longitud es: 18.8496 metros

Saludos  :)

Páginas: [1] 2

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