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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema al momento de crear metodo static
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al momento de crear metodo static  (Leído 4,707 veces)
HARUDAY

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Problema al momento de crear metodo static
« en: 22 Febrero 2022, 01:01 am »

Buenas tardes, espero alguien me pueda dar una solución para este problema indicandome que estoy haciendo mal. El problema es que no me permite usar static en un metodo porque sino aparece un programa cuando uso add();

La cuestion es que tengo que usar static para llamar el metodo a la otra clase y usarlo en la interfaz.

Uso programacion en 3 capas y Apache NeatBeans 12.0.

Clase Lista pertenece al paquete Data

Código
  1. package Data;
  2.  
  3. import java.util.List;
  4. import java.util.ArrayList;
  5.  
  6. public class Lista {
  7.  
  8.    List<Integer> listaP = new ArrayList<>();
  9.  
  10.    public static void agregar(int dni) {
  11.        listaP.add(dni);
  12.    }
  13.  
  14.    //sin static si permite pero no puedo llamarlo en Persona
  15.    public void eliminar(int dni) {
  16.        listaP.remove(dni);
  17.  
  18.    }
  19. }
  20.  
  21.  
  22. Clase Persona pertenece al paquete Logica
  23.  
  24. package Logica;
  25. import Data.Lista;
  26.  
  27. public class Persona {
  28.    private int dni;
  29.  
  30.    public Persona(int dni) {
  31.        this.dni = dni;
  32.    }
  33.    public Persona() {
  34.    }
  35.  
  36.    public int getDni() {
  37.        return dni;
  38.    }
  39.  
  40.    public void setDni(int dni) {
  41.        this.dni = dni;
  42.    }
  43.  
  44.    //tiene que ser static para llamarlo
  45.    public void agregar(int dni) {
  46.        Lista.agregar(dni);
  47.    }
  48.  
  49.    //no aparece eliminar de la clase Lista porque no es static
  50.    public void eliminar (int dni) {
  51.        Lista.(dni);
  52.    }
  53. }


y el Formulario Interfaz pertenece a otro paquete


Espero puedan ayudarme lo antes posible, porfavor.

MOD: Etiqueta GeSHi


« Última modificación: 22 Febrero 2022, 12:45 pm por MCKSys Argentina » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Problema al momento de crear metodo static
« Respuesta #1 en: 24 Febrero 2022, 18:54 pm »

hola que tal
mira

la regla basica es simple
cuando usas un metodo static solo lo puedes llamar desde otro metodo static

para solucionar la clase lista debe usar el patron singleton
Código
  1. public class Lista {
  2.  
  3.    List<Integer> listaP = new ArrayList<>();
  4. Lista instance;
  5.    private Lista(){}
  6.  
  7.  
  8. public static Lista instance(){
  9. if(instance==null){
  10. instance=new Lista();
  11. }
  12. return instance;
  13. }
  14.  
  15.    public  void agregar(int dni) {
  16.        listaP.add(dni);
  17.    }
  18.  
  19.  
  20.    public void eliminar(int dni) {
  21.        listaP.remove(dni);
  22.  
  23.    }
  24. }
  25.  

y para llamarlo usa

Código
  1. Lista milistita = Lista.instance();
  2.  


no recomiendo para nada que la clase persona use la clase lista XD


« Última modificación: 24 Febrero 2022, 19:51 pm por sapito169 » En línea

HARUDAY

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Problema al momento de crear metodo static
« Respuesta #2 en: 25 Febrero 2022, 01:00 am »

Vale! gracias
¿Me podrias decir porque no se recomienda?
Es que a mi me estan enseñando de esa forma
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Problema al momento de crear metodo static
« Respuesta #3 en: 25 Febrero 2022, 15:30 pm »

respuesta corta
cada clase debe hacer una sola cosa para lo cual fue designada y la debe hacer bien


es algo de lo que hay escuelas de pensamiento que estan en desacuerdo obiviamente mi escuela  esta en lo correcto y la otra los llamamos los equivocados

es solo seguir un orden si no sigues un orden es dificil programar cuando tengas un sistema muy complejo

la clase persona Persona solo debe ser responsable de manejar la logica de una sola persona
puede tener metodos como getNombreCompleto o getEdadEnAños

y la clase Lista solo puede tener metodos para manejar a un grupo de personas puede tener metodos como

ejecutaAumentoSalarioMasivo(CodigoSeccionAdministrativa codigoSeccion)
agrega(Persona persona)
modifica(Persona persona)
despidePersona(int codigoPersona)
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Problema al momento de crear metodo static
« Respuesta #4 en: 25 Febrero 2022, 15:37 pm »

Vale! gracias
¿Me podrias decir porque no se recomienda?
Es que a mi me estan enseñando de esa forma

tu profesor es noob y no sabe programar no le creeas nada pero no le digas lo que te dije que el cojudo crea lo que quiere

yo soy bien chingon y he hecho varios programas complejos todos funcionando (que es lo unico que cuenta) y he estado participando y explicando a gente grande (no como tu profe) la mejor manera de diseñar software
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema, ruta de los recursos. non-static method... No puedo poner una imagen.
Java
kinos 3 6,224 Último mensaje 27 Octubre 2009, 20:39 pm
por kinos
Problema con control STATIC
Programación C/C++
Riki_89D 6 2,787 Último mensaje 22 Septiembre 2011, 18:14 pm
por naderST
Problema con std::vector y static
Programación C/C++
anonimo12121 0 1,578 Último mensaje 10 Junio 2013, 23:59 pm
por anonimo12121
Problema al crear objetos con método switch
Java
Finishim 3 3,739 Último mensaje 14 Junio 2015, 11:57 am
por robertofd1995
Mientro static dentro de clase static, simbolo externo sin resolver
Programación C/C++
patilanz 3 3,303 Último mensaje 8 Septiembre 2016, 16:15 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines