Java para todos y todas

Muy buenas. Con este blog voy a intentar explicar todos los fundamentos y utilidades de este lenguaje de programación, desde cero. Poquito a poquito, entrada a entrada, espero poder explicar y hacer accesible este lenguaje a todos/as vosotros/as.

Gracias por visitar el blog.

DukeJava01

Anuncios

34 comentarios sobre “Java para todos y todas

  1. Thank you for sharing superb informations. Your web site is very cool. I’m impressed by the details that you’ve on this blog. It reveals how nicely you understand this subject. Bookmarked this web page, will come back for more articles. You, my friend, ROCK! I found simply the info I already searched all over the place and just couldn’t come across. What a perfect site.

    Le gusta a 2 personas

  2. disculpen tengo un rato empezando a programar en java en eclipse y tengo un trabajo que no he encontrado la manera de hacerlo, me podrian ayudar con este programa:
    Escribe un programa que permita determinar la generación a la que pertenece una persona. Para ello, realiza lo siguiente:

    Especifica el algoritmo que resuelva el problema a través de un diagrama de flujo.
    Con base en el diagrama de flujo, escribe un programa en Java que pida al usuario que introduzca su edad y su género (M para masculino y F para femenino).
    Con base en el año de nacimiento determina a qué generación pertenece (apóyate en la tabla de generaciones que se describe en la parte inferior).
    Una vez realizadas las operaciones necesarias, imprime en pantalla un texto como el siguiente:

    Usted nació en el año ___, usted es un ____ que pertenece a la generación ___.

    Generación

    Inicio

    Fin

    Del Silencio

    1925

    1945

    Baby boomers

    1946

    1964

    Generación X

    1965

    1979

    Milennials

    1980

    2000

    Generación Z

    2000

    En adelante

    Le gusta a 1 persona

    1. Hola Edson. Una forma de hacerlo (ten en cuenta que se puede hacer de varias formas):

      public static void determinarGeneracion(char c, int anio) throws Exception {
      Calendar cal = Calendar.getInstance();
      int anioActual = cal.get(Calendar.YEAR);
      if (c != ‘M’ || c != ‘F’ || anio anioActual) {
      throw new Exception(“Valores no permitidos”);
      }

      String genero = null;
      if (c == ‘M’) {
      genero = “Hombre”;
      } else {
      genero = “Mujer”;
      }

      String generacion = null;

      //COMPROBAMOS EN QUE INTERVALO SE ENCUENTRA EL AÑO INTRODUCIDO
      if (anio >= 1925 && anio 1945 && anio <= 1965) {
      generacion = "Baby Boomer";
      }
      //REALIZAS TODOS LOS ELSE IF NECESARIOS, Y TRAS HACERLO, IMPRIMES El
      //MENSAJE POR PANTALLA

      System.out.println("Usted nacio en el año " + anio + ", es un/a " + genero + " y pertenece"
      + " a la generacion " + generacion);

      }

      Cuando tengas que comprobar muchos datos, te recomiendo mapearlos y acceder por su clave. Espero haberte ayudado, y gracias por leer y seguir el blog

      Me gusta

  3. me podrias colaborar con este ejercicio
    Una cadena de ADN se representa como una secuencia circular de bases
    (adenina, timina, citosina y guanina) que es única para cada ser vivo, por
    ejemplo:
    A T G
    T C
    A T G
    Dicha cadena se puede representar como un vector de caracteres recorriéndola
    en sentido horario desde la parte superior izquierda:
    A T G C G T A T
    Se pide diseñar una clase que represente una secuencia de ADN e incluya un
    método booleano que nos devuelva true si dos cadenas de ADN coinciden.
    MUY IMPORTANTE: La secuencia de ADN es cíclica, por lo que puede comenzar
    en cualquier posición. Por ejemplo, las dos secuencias siguientes coinciden:
    A T G C G T A T
    A T A T G C G T

    Le gusta a 1 persona

    1. Hola de nuevo. Aquí te dejo una posible solución. Sólo falta comprobar que los caracteres seab A T GC (y las excepciones). Espero que te resulte de ayuda en tu tarea. Alguna duda, me dices.

      public class ADN {

      public static boolean comprobarSinCambios(ArrayList lista) {

      boolean result = false;

      for (int i = 0; i < lista.size(); i++) {
      for (int j = i + 1; j < lista.size() – i; j++) {
      if (lista.get(i).equalsIgnoreCase(lista.get(j))) {
      result = true;
      }

      }

      }
      return result;
      }

      public static boolean comprobarSecuencia(ArrayList secuencia) {
      boolean result = false;
      if (secuencia != null) {
      comprobarSinCambios(secuencia);
      if (!comprobarSinCambios(secuencia)) {
      for (int i = 1; i <= secuencia.size(); i++) {

      for (int j = 0; j < secuencia.get(i – 1).length() – 1; j++) {
      String cadena_comb = secuencia.get(i – 1).substring(j)
      + secuencia.get(i – 1).substring(0, j);

      System.out.println(cadena_comb);

      System.out.println(i);
      for (int k = 0; k < secuencia.size(); k++) {

      if (k != (i – 1) && (secuencia.get(k).equalsIgnoreCase(cadena_comb))) {
      System.out.println(secuencia.get(k));
      return true;
      }
      }

      }

      }

      }
      }
      return false;

      }

      Me gusta

  4. Hello good afternoon
    I have a question, is that I work with netbeans for my project and I was compiling well but now it marks me error in the build-impl.xml
    Now try to delete and restart
    and clean the file but nothing
    and also try changing the port but it did not work. Could you help me …
    Thanks for your attention

    Me gusta

    1. Hello Carmen.
      Thank you for reading the blog, and for your comments. With to your information, I can not guess what the problem is. Just in case, I recommend you these links:
      https://netbeans.org/bugzilla/show_bug.cgi?id=197295

      https://netbeans.org/bugzilla/show_bug.cgi?id=151994

      I also recommendo you stackoverflow page. If you still have the problem, please be more specific, and I can help you in a better way.

      Thank you for your time.

      Me gusta

  5. hola buena ayudar como hacer este programa
    Crear el código en Java para:

    Crear una clase que se llame resources, con 5 métodos diferentes.
    Instanciar la clase en el programa principal y llamar a los métodos con diferentes operaciones:

    Los métodos debe retornar los siguientes tipos de valor, colocar nombres descriptivos para cada uno de ellos:

    Primer método: Retornar un mensaje que diga: “Estoy aprendiendo, pero seré el mejor programador”.

    Segundo método: Retornar un mensaje dependiendo de un parámetro de entrada entero de nota, si es mayor o igual a 70, el mensaje debe decir Aprobado, de lo contrario Reprobado.

    Tercer método: Retornar el resultado de una división de dos enteros que proporcionemos como parámetros, considerar que la división entre un denominador cero no puede ser realizado:

    Cuarto método: Debe retornar una lista de numeros del 1 al X. Donde X es un parámetro de entrada del método a crear.

    Me gusta

    1. Hola Paola.
      En primer lugar, debes crear un paquete.
      En este paquete, creas la clase Resources, así:

      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class Resources {

      public String primerMetodo() {

      return “Estoy aprendiendo, pero seré el mejor programador”.”;
      }

      public String segundoMetodo(int nota) {

      if (nota > 70) {
      return “Aprobado”;
      } else {
      return “Reprobado”;
      }

      }

      public double tercerMetodo(int dividendo, int divisor) {
      try {
      if (divisor != 0) {
      return dividendo / divisor;
      }
      } catch (ArithmeticException e) {
      System.out.println(“No se puede dividir entre 0”);
      }
      return 0;
      }

      public void cuartoMetodo(int num){
      int[] listaNumeros = null;
      if(num>0){
      listaNumeros = new int[num + 1];
      for(int i = 1; i <listaNumeros.length; i++){
      listaNumeros[i] = i;
      System.out.println(listaNumeros[i]);
      }
      }

      }
      }

      Y en este mismo paquete, creas la clase principal para llamar a Resources:

      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class PaolaEjer {

      public static void main(String[] args) {
      Resources r = new Resources();
      r.cuartoMetodo(7);
      r.tercerMetodo(9, 3);
      }

      }

      Recuerda que en programación, las cosas se pueden hacer de muchas maneras. Gracias por seguir el blog y tus comentarios. Un saludo

      Me gusta

  6. Hola buenas noches
    crear una clase que defina un tipo de trabajo, por ejemplo: Clase llamada Ingeniero
    Indicaciones:

    1. Crear un archivo de la clase del trabajador y agregar los métodos necesarios para obtener los atributos del objeto desde la clase que contiene el método principal de la aplicación

    2. Crear el código necesario en la clase del método principal para instanciar el objeto y obtener valores.

    Me gusta

    1. Hola de nuevo. Me alegro que te haya servido. La clase del trabajador podría ser:
      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class Trabajador {

      private String nombre;
      private String apellidos;
      private String categoría;
      private double sueldo;

      public Trabajador(String nombre, String apellidos, String categoría, double sueldo) {
      this.nombre = nombre;
      this.apellidos = apellidos;
      this.categoría = categoría;
      this.sueldo = sueldo;
      }

      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 String getCategoría() {
      return categoría;
      }

      public void setCategoría(String categoría) {
      this.categoría = categoría;
      }

      public double getSueldo() {
      return sueldo;
      }

      public void setSueldo(double sueldo) {
      this.sueldo = sueldo;
      }

      }

      Y el apartado 2:

      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class PaolaEjer {

      public static void main(String[] args) {

      Trabajador trabajador = new Trabajador(“Juan”,”Gonzalez”,
      “Ingeniero”,9000);
      trabajador.setNombre(“Pepito”);
      trabajador.setCategoría(“Ingeniero”);
      }

      }

      Recuerda que puedes usar excepciones, comprobaciones… Un saludo

      Me gusta

  7. hola
    Parte1:

    1. Crear una clase de nombre Estudiante en el que se declaren y protejan sus métodos y propiedades utilizando encapsulamiento, desde la clase que contiene el método principal, establecer y obtener su edad, nombre y años de experiencia (Métodos set y get).

    Parte2:
    1. Cree una clase abstracta llamada Universidad, que contenga los siguientes métodos abstractos:
    getUniversidad

    getRector

    2. Declare 3 clases con diferentes universidades extendiendo de la clase Universidad, por ejemplo:unitec, UNAH, etc.

    En la clase que contiene el método principal (main), imprimir el nombre de las universidades y su presidente.

    Me gusta

    1. Hola Kenia.
      Parte 1:
      SE trata simplemete de declarar los atributos como private, e implementar los métodos get y set correspondientes.
      A ver si puedo contestarte hoy la parte 2. Gracias por seguir el blog. Un saludo

      Me gusta

    2. Parte 2:
      Una clase abstracta contiene métodos abstractos. Un método abstracto es un método declarado pero no implementado.
      public abstract getUniversidad(){}
      public abstract getRector(){}

      Un método se declara como abstracto porque no sabemos como va a ser su implementación.

      Una clase abstracta NO SE PUEDE INSTANCIAR, pero si puede ser superclase de otras clases (como en el ejemplo que me has dado)

      public class UNAH extends Universidad{}

      Gracias de nuevo por seguir el blog. Un saludo

      Me gusta

  8. Hola,
    Crear el código de la estructura de Herencia de clases para el diagrama siguiente:
    la imagen que esta el video

    Se necesita:

    Escribir una Superclase llamada Formas y 4 subclases según el diagrama.
    Crear las herencias necesarias para las subclases
    Escribir los métodos en la clase padre los métodos en cada subclase (El recuadro con el texto en negrita representa los métodos).
    Explicar el funcionamiento y estructura de todo su código en un documento de 2 páginas (Documentación de código).
    Los métodos Dibujar de las subclases imprimen una salida con el nombre de la figura.

    Me gusta

    1. Hola Paola. Una posible solución podría ser:

      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public abstract class Formas {
      protected String color;

      public String getColor() {
      return color;
      }
      /**
      *
      * @param color
      */
      public void setColor(String color) {
      this.color = color;
      }

      protected abstract void dibujar();

      }

      Y luego creas estas otra 4 clases, subclases de Formas:

      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class Circulo extends Formas {

      private double radio;
      private static final double PI = Math.PI;
      private double area;
      private double contorno;

      @Override
      protected void dibujar() {
      throw new UnsupportedOperationException(“Not supported yet.”); //To change body of generated methods, choose Tools | Templates.
      }

      public double getRadio() {
      return radio;
      }

      public void setRadio(double radio) {
      this.radio = radio;
      }

      public double getArea() {
      return area;
      }

      public void setArea(double area) {
      this.area = area;
      }

      public double getContorno() {
      return contorno;
      }

      public void setContorno(double contorno) {
      this.contorno = contorno;
      }

      public double calcularArea(double radio) {
      this.area = 0;
      this.radio = radio;
      if (this.radio > 0) {
      area = PI * this.radio * this.radio;
      }
      return this.area;
      }
      }

      /*
      * To change this license header, choose License Headers in Project Properties.
      * To change this template file, choose Tools | Templates
      * and open the template in the editor.
      */
      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class Linea extends Formas {

      private double largo;

      public double getLargo() {
      return largo;
      }

      public void setLargo(double largo) {
      this.largo = largo;
      }

      @Override
      protected void dibujar() {
      throw new UnsupportedOperationException(“Not supported yet.”); //To change body of generated methods, choose Tools | Templates.
      }

      }
      package paolaejer;

      /**
      *
      * @author usuario
      */
      public class Triangulo extends Formas {

      private double base;
      private double altura;
      private double angulo;

      public double getBase() {
      return base;
      }

      public void setBase(double base) {
      this.base = base;
      }

      public double getAltura() {
      return altura;
      }

      public void setAltura(double altura) {
      this.altura = altura;
      }

      public double getAngulo() {
      return angulo;
      }

      public void setAngulo(double angulo) {
      this.angulo = angulo;
      }

      public double calcularArea(double base, double altura) {
      double area = 0;
      this.base = base;
      this.altura = altura;

      if (this.base > 0 && this.altura > 0) {
      area = (this.base * this.altura) / 2;
      }
      return area;
      }

      @Override
      protected void dibujar() {
      throw new UnsupportedOperationException(“Not supported yet.”); //To change body of generated methods, choose Tools | Templates.
      }

      }
      package paolaejer;

      /**
      *
      * @author Gorka Elorduy
      */
      public class Cuadrado extends Formas {

      private double lado;

      public double getLado() {
      return lado;
      }

      public void setLado(double lado) {
      this.lado = lado;
      }

      @Override
      protected void dibujar() {
      throw new UnsupportedOperationException(“Not supported yet.”); //To change body of generated methods, choose Tools | Templates.
      }

      public double area(double lado) {
      double area = 0;
      this.lado = lado;
      if (this.lado > 0) {
      area = Math.pow(lado, 2);
      }
      return area;
      }
      }

      Bueno, más o menos. Recuerda que para un código más robusto debes hacer uso de excepciones. La explicación del funcionamiento de la herencia y clases abstractas la puedes encontrar en mi blog, o en tus apuntes, o en cualquier lugar de internet sobre java.
      Gracias por seguir el blog

      Me gusta

  9. Crear una superclase llamada Persona y 2 Subclases llamadas Estudiante y Deportista. (Cada integrante debe tener asignado ya sea la superclase o una de las subclases.)

    Crear los métodos necesarios para establecer y obtener su información personal aplicando todos los conceptos estudiados y practicados hasta el momento. (herencia, abstracción, encapsulamiento y polimorfismo).

    Me gusta

    1. Hola Pedro. No tienes más que crear la clase Persona, con los atributos protected. No olvides crear los getters y setters. Luego, creas las otras dos clases, y haces que sean subclases con la palabra extends.
      Espero haberte ayudado. Gracias por tus comentarios y por seguir el blog.
      Un saludo.

      Me gusta

  10. crear una subclase llamada Deportista y Crear los métodos necesarios para establecer y obtener su información personal de individuo aplicando herencia,abstracción, encapsulamiento y polimorfismo.

    soy nuevo en esto de la programación no entiendo muy bien

    Me gusta

    1. Hola Josue.
      Para crear una subclase, es necesario tener una super-clase. La super-clase debe contener todos los elementos comunes a las subclases (atributos y métodos). Estos elementos comunes deben ser declarados protected, para poder ser heredados por las subclases. Para la herencia, es necesaria la palabra clave extends.
      La encapsulación consiste consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto..
      La abstracción es como se pueden representar los objetos en modo de código.
      Tienes más información al respecto en este blog, por si quieres profundizar.
      Gracias por leer el blog.

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s