elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 [63] 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 ... 139
621  Programación / Java / Re: Mejor diseño para implementacion en Java. en: 17 Abril 2019, 08:24 am
Tal cual tus dos afirmaciónes son válidas
  
No hay una clave para crear una herencia perfecta.

Con el uso de super y override puedes hacer lo que estás pidiendo tranquilamente.

Eso de que si te devuelve un objeto de tipo contacto o contactoEmpresarial , puedes comprobarlo por ti mismo tranquilamente, simple y tan llanamente probando

Si tienes un método en tu interface, clase abstract base, o clase, ejemplo, getConexion, las clases que implementa a ese método , es decir que hereden a una de esas clases, tanto por simple herencia, o herencia múltiple, tendrán su propia  implementación y conectarán  a la tabla, o procedimiento almacenado correspondiente, claro está que cada implementación debe apuntar a la tabla correcta.

No te vuelvas loco enredándote, que lo que quieres hacer si que se puede.

Las 2 maneras son validas

 * Eso de la interface que te vuelve objetos de tipo contacto en ves de empresarial? Es Bull shit o algo parecido

Tu clase Contacto, debería ser más bien la clase abstracta base de la cual van a heredar las clases hijas, Contacto Empresarial y otros tipos de contactos y ya. No te vuelvas loco, y esa clase abstracta puede a la vez, implementar una interface, que contenga los métodos que quieres que implementen a las clases hijas de diferentes tipos de contactos, o la misma clase abstracta dar implementacion a ellos y las hijas usarlos con dicha implementacion, empresarial,personal, u otros dog.

Añadiendo Generics se puede ahorrar mas código,  pero ahí se complica solo un poco más eso es todo.pero ni tanto, y sobre los Generics hace poco implemente algo parecido, y totalmente funcional, vía herencia múltiple usando una interface de servicio genérico para un log de una db.

Código
  1. public interface ServicioXXX<T extends ServicioBean>


y ese servicio dentro retorna parámetros genéricos tipo T , en cada método. Al heredar de ahí, osea  

Código
  1. public class ServicioXXXImpl implements ServicioXXX<ServicioBean>

ese parámetro específico dentro del operador diamante indica lo que retornará cada método en ServicioXXXImpl o parámetros en dichos métodos, teniendo un solo servicio, ahorrando tener múltiples ServixioXXXA, ServicioXXXB, y casting innecesarios en la mayoría de los casos.

622  Programación / Java / Re: Incompatible types en: 16 Abril 2019, 19:31 pm
Código
  1. final String sPrecio = String.valueOf(modelotabla.getValueAt(filaseleccionada,4));

Código
  1. final String sStock = String.valueOf(modelotabla.getValueAt(filaseleccionada,5));

Usa geshi hommie me imagino que debes de formatear esos floats a pocos decimales no?
623  Seguridad Informática / Wireless en Windows / Re: ¿Como y donde puedo aprender a usar Wireshark? en: 16 Abril 2019, 14:10 pm
Tal cual como te dice el popular Shaka de virgo

https://www.incibe.es/extfrontinteco/img/File/intecocert/EstudiosInformes/cert_inf_seguridad_analisis_trafico_wireshark.pdf
624  Seguridad Informática / Análisis y Diseño de Malware / Re: Infección LiveUSB en: 16 Abril 2019, 01:39 am
Coño... tu siempre tienes cosas que sirven para cualquier cosa... ojala y fueras mi papá o yo tu hijo para que me enseñaras todo eso que sabes... grrrrrrr... jejejejejeeee...

 :rolleyes: :o :rolleyes:

Saludos.


machacador siemmmmpre con sus ciberchorradas ajjajajja estoy cagado de la ris@...
625  Comunicaciones / Hacking Mobile / Re: Programar archivos "booteables"? en: 16 Abril 2019, 00:58 am
Y cómo realizaría esta ingeniería inversa?

buscate el curso de ricardo narvaja de cracking. y cero flojera, puro corazón.


También Odin recuerda que trabaja con hardware externo, leete sobre puerto serial aka rs232.
626  Comunicaciones / Hacking Mobile / Re: Programar archivos "booteables"? en: 15 Abril 2019, 22:46 pm
Hola! :D
Hace un tiempo me surgió una duda sobre los archivos "booteables"; a esto me refiero por ejemplo, a twrp, que se instala vía ODIN en los samsungs con un formato de archivo variable (ej.:md5).
Mi intención es programar algo :P, pero no he encontrado información sobre como se programa este tipo de archivos (más concretamente, archivos booteables de samsung)
Gracias
Salu3  :silbar:


hazle ingeniería inversa a Odin y sacas la mayorías de las rutinas importantes, nada fácil claro esta.
627  Seguridad Informática / Wireless en Windows / Re: ¿Como capturar el trafico de una red Wifi Si uso Windows? en: 14 Abril 2019, 08:22 am
Te toca leer mucho.

https://www.incibe.es/extfrontinteco/img/File/intecocert/EstudiosInformes/cert_inf_seguridad_analisis_trafico_wireshark.pdf
628  Seguridad Informática / Seguridad / Re: Como eliminar la propaganda en: 14 Abril 2019, 07:38 am
Hace una semana estuve viendo peliculas y ahora sale varios anuncion abajo





como elimino esas propagandas molestosas?



pasate por

    * chrome://settings/content?search=notificaciones

    * chrome://settings/content/notifications y bloqueas /añades lo que quieras

pense que estas bromeando con la pregunta, pero que mas da dog
629  Programación / Java / Re: bubblesort arraylist en: 14 Abril 2019, 07:28 am
Estoy muy confundida con tu codigo, tendre que leer mas  :o

Pero en que? se siempre mas explicita, te comente un codigo que esta en el método ordenar.

por eso ahora veo que no es bueno editartelo mucho, pero recuerda que afuera, te econtraras tannntas maneras de hacer lo mismo, bueno eso si, unas mejores que otras XD
630  Programación / Java / Re: bubblesort arraylist en: 14 Abril 2019, 04:27 am
Hola como puedo hacer para ordenar un arraylist de objetos por nombre? Intente el metodo de la burbuja pero no pasa nada  :huh:

Código
  1. public void ordenar() {
  2.        Persona cambio;
  3.        boolean ordenado = true;
  4.        while (ordenado == true) {
  5.            ordenado = false;
  6.            for (int i = 0; i < personas.size() - 1; i++) {
  7.                if (personas.get(i).getNombre().compareTo(personas.get(i + 1).getNombre()) > 0) {
  8.                    cambio = personas.get(i);
  9.                    personas.set(i, personas.get(i + 1));
  10.                    personas.set(i + 1, cambio);
  11.                    ordenado = true;
  12.                }
  13.            }
  14.        }
  15.    }

Tu algoritmo funciona, ordena de manera ascendente que estarás haciendo cuando lo invocas?

hagamosle caso a NEBIRE

Bean Persona

Código
  1. import java.util.Objects;
  2.  
  3. public class Persona {
  4.  
  5.    private String nombre;
  6.    private int edad;
  7.    private String apellido;
  8.    private boolean esAlto;
  9.    private double peso;
  10.  
  11.    public String getNombre() {
  12.        return nombre;
  13.    }
  14.  
  15.    public void setNombre(String nombre) {
  16.        this.nombre = nombre;
  17.    }
  18.  
  19.    public int getEdad() {
  20.        return edad;
  21.    }
  22.  
  23.    public void setEdad(int edad) {
  24.        this.edad = edad;
  25.    }
  26.  
  27.    public String getApellido() {
  28.        return apellido;
  29.    }
  30.  
  31.    public void setApellido(String apellido) {
  32.        this.apellido = apellido;
  33.    }
  34.  
  35.    public boolean isEsAlto() {
  36.        return esAlto;
  37.    }
  38.  
  39.    public void setEsAlto(boolean esAlto) {
  40.        this.esAlto = esAlto;
  41.    }
  42.  
  43.    public double getPeso() {
  44.        return peso;
  45.    }
  46.  
  47.    public void setPeso(double peso) {
  48.        this.peso = peso;
  49.    }
  50.  
  51.    @Override
  52.    public boolean equals(Object o) {
  53.        if (this == o) return true;
  54.        if (!(o instanceof Persona)) return false;
  55.        Persona persona = (Persona) o;
  56.        return edad == persona.edad &&
  57.                esAlto == persona.esAlto &&
  58.                Double.compare(persona.peso, peso) == 0 &&
  59.                Objects.equals(nombre, persona.nombre) &&
  60.                Objects.equals(apellido, persona.apellido);
  61.    }
  62.  
  63.    @Override
  64.    public int hashCode() {
  65.        return Objects.hash(nombre, edad, apellido, esAlto, peso);
  66.    }
  67.  
  68.    @Override
  69.    public String toString() {
  70.        final StringBuilder sb = new StringBuilder("\nPersona");
  71.        sb.append("\nnombre='").append(nombre).append("\n");
  72.        sb.append(", edad=").append(edad);
  73.        sb.append(", apellido='").append(apellido).append("\n");
  74.        sb.append(", esAlto=").append(esAlto);
  75.        sb.append(", peso=").append(peso);
  76.        sb.append("]");
  77.        return sb.toString();
  78.    }
  79. }
  80.  

Código
  1. import java.util.*;
  2.  
  3. /**
  4.  * @rubn ,@NEBIRE, @Ana XD
  5.  */
  6. public class OrdenarPersonaPorNombre {
  7.  
  8.    private List<Persona> personaList = new ArrayList<>();
  9.    private static final String TITLE = "Personas Ordenadas Alfabeticamente...";
  10.  
  11.   OrdenarPersonaPorNombre () {
  12.        fillList();
  13.        ordenar();
  14.    }
  15.  
  16.    private void fillList() {
  17.        final Persona persona = new Persona();
  18.        persona.setNombre("Raul");
  19.        persona.setEdad(30);
  20.        persona.setApellido("Gonzales");
  21.        persona.setPeso(56);
  22.        persona.setEsAlto(Boolean.TRUE);
  23.  
  24.        final Persona persona2 = new Persona();
  25.        persona2.setNombre("Josefina");
  26.        persona2.setEdad(40);
  27.        persona2.setApellido("Sinforoza");
  28.        persona2.setPeso(60);
  29.        persona2.setEsAlto(Boolean.FALSE);
  30.  
  31.        final Persona persona3 = new Persona();
  32.        persona3.setNombre("Ana");
  33.        persona3.setEdad(14);
  34.        persona3.setApellido("Begginer  Web");
  35.        persona3.setPeso(45);
  36.        persona3.setEsAlto(Boolean.FALSE);
  37.  
  38.        final Persona persona4 = new Persona();
  39.        persona4.setNombre("Babel");
  40.        persona4.setEdad(23);
  41.        persona4.setApellido("Bhahal");
  42.        persona4.setPeso(55);
  43.        persona4.setEsAlto(Boolean.TRUE);
  44.  
  45.        final Persona persona5 = new Persona();
  46.        persona5.setNombre("Mega");
  47.        persona5.setEdad(100);
  48.        persona5.setApellido("Man");
  49.        persona5.setPeso(200);
  50.        persona5.setEsAlto(Boolean.TRUE);
  51.  
  52.        personaList.add(persona);
  53.        personaList.add(persona2);
  54.        personaList.add(persona3);
  55.        personaList.add(persona4);
  56.        personaList.add(persona5);
  57.    }
  58.  
  59.    //con java 7
  60.    private void ordenar() {
  61.       /* for(int f=0; f<personaList.size();f++) {
  62.             for(int c=0; c<(personaList.size() - 1) - f; c++) {
  63.                 //personaList.size() -1, para evitar IndexOutBoundException
  64.                 //que es una exception que se produce en tiempo de ejecucion por index fuera de rango
  65.                     if(personaList.get(c).getNombre().compareTo( personaList.get(c+1).getNombre()) > 0) {
  66.                         final String auxiliar = personaList.get(c).getNombre();
  67.                         personaList.get(c).setNombre(personaList.get(c+1).getNombre());
  68.                         personaList.get(c+1).setNombre(auxiliar);
  69.                     }
  70.             }
  71.         }*/
  72.  
  73.       Collections.sort(personaList);
  74.  
  75.       System.out.println(TITLE);
  76.       for (int f=0; f<personaList.size(); f++) {
  77.           System.out.println(personaList.get(f));
  78.       }
  79.  
  80.    }
  81.  
  82.    //con java.util.Stream
  83.    private void ordenarConStreams() {
  84.  
  85.        System.out.println(TITLE);
  86.        personaList.stream()
  87.                .sorted(Comparator.comparing(Persona::getNombre))
  88.                .forEach(System.out::println);
  89.  
  90.    }
  91.  
  92.    public static void main(String ...blablabla) {
  93.        new OrdenarPersonaPorNombre ();
  94.    }
  95. }
  96.  

Output_
Código
  1. Personas Ordenadas Alfabeticamente...
  2.  
  3. Persona
  4. nombre='Ana
  5. , edad=14, apellido='Begginer  Web
  6. , esAlto=false, peso=45.0]
  7.  
  8. Persona
  9. nombre='Babel
  10. , edad=23, apellido='Bhahal
  11. , esAlto=true, peso=55.0]
  12.  
  13. Persona
  14. nombre='Josefina
  15. , edad=40, apellido='Sinforoza
  16. , esAlto=false, peso=60.0]
  17.  
  18. Persona
  19. nombre='Raul
  20. , edad=30, apellido='Gonzales
  21. , esAlto=true, peso=56.0]
  22.  
  23. Process finished with exit code 0
  24.  

Te he añadido en la linea 73 como hacer también con la clase Collections y su método sort

pero debemos implementar la interface Comparable<T>

cambiando a Persona



Código
  1.  
  2. public class Persona implements Comparable<Persona> {
  3.  
  4.  

implementando al método

Código
  1. public int compareTo(T o);

Código
  1.  
  2. @Override
  3. public int compareTo(Persona o) {
  4.    final Persona p1 = o;
  5.    return this.getNombre().compareTo(p1.getNombre());
  6. }

Quedando
Código
  1. import java.util.Objects;
  2.  
  3. public class Persona implements Comparable<Persona> {
  4.  
  5.    private String nombre;
  6.    private int edad;
  7.    private String apellido;
  8.    private boolean esAlto;
  9.    private double peso;
  10.  
  11.    public String getNombre() {
  12.        return nombre;
  13.    }
  14.  
  15.    public void setNombre(String nombre) {
  16.        this.nombre = nombre;
  17.    }
  18.  
  19.    public int getEdad() {
  20.        return edad;
  21.    }
  22.  
  23.    public void setEdad(int edad) {
  24.        this.edad = edad;
  25.    }
  26.  
  27.    public String getApellido() {
  28.        return apellido;
  29.    }
  30.  
  31.    public void setApellido(String apellido) {
  32.        this.apellido = apellido;
  33.    }
  34.  
  35.    public boolean isEsAlto() {
  36.        return esAlto;
  37.    }
  38.  
  39.    public void setEsAlto(boolean esAlto) {
  40.        this.esAlto = esAlto;
  41.    }
  42.  
  43.    public double getPeso() {
  44.        return peso;
  45.    }
  46.  
  47.    public void setPeso(double peso) {
  48.        this.peso = peso;
  49.    }
  50.  
  51.  
  52.    @Override
  53.    public boolean equals(Object o) {
  54.        if (this == o) return true;
  55.        if (!(o instanceof Persona)) return false;
  56.        Persona persona = (Persona) o;
  57.        return edad == persona.edad &&
  58.                esAlto == persona.esAlto &&
  59.                Double.compare(persona.peso, peso) == 0 &&
  60.                Objects.equals(nombre, persona.nombre) &&
  61.                Objects.equals(apellido, persona.apellido);
  62.    }
  63.  
  64.    @Override
  65.    public int hashCode() {
  66.        return Objects.hash(nombre, edad, apellido, esAlto, peso);
  67.    }
  68.  
  69.    @Override
  70.    public String toString() {
  71.        final StringBuilder sb = new StringBuilder("\nPersona");
  72.        sb.append("\nnombre='").append(nombre).append("\n");
  73.        sb.append(", edad=").append(edad);
  74.        sb.append(", apellido='").append(apellido).append("\n");
  75.        sb.append(", esAlto=").append(esAlto);
  76.        sb.append(", peso=").append(peso);
  77.        sb.append("]");
  78.        return sb.toString();
  79.    }
  80.  
  81.    @Override
  82.    public int compareTo(Persona o) {
  83.        final Persona p1 = o;
  84.        return this.getNombre().compareTo(p1.getNombre());
  85.    }
  86. }
  87.  

Sino implementas a Comparable, no podrías usar la linea 73 en el bean OrdenarPersonaPorNombre
Páginas: 1 ... 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 [63] 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 ... 139
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines