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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda basica java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda basica java  (Leído 4,028 veces)
gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Duda basica java
« en: 15 Marzo 2011, 19:21 pm »

Supongamos que tengo 2 clases A y B.

La clase A tiene un metodo: public void numero(int n){N=n}

La clase A crea un nuevo objeto de la clase B

y ese objeto creado de la clase B tiene que llamar a el metodo numero¿Como lo hago?



Nota:La clase A hereda de otra clase diferente, como en java no hay herencia multiple la clase B no puede heredar a la A.


En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Duda basica java
« Respuesta #1 en: 15 Marzo 2011, 19:32 pm »

a menos que numero sea static no podras :P que el objeto B a su vez tenga un objeto A seria ilogico xD


En línea

Ojo por ojo, y el mundo acabará ciego.
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda basica java
« Respuesta #2 en: 15 Marzo 2011, 20:59 pm »

Nota:La clase A hereda de otra clase diferente, como en java no hay herencia multiple la clase B no puede heredar a la A.

Eso no es del todo cierto  :xD

A ver si entendí, deste A quieres llamar a un método (contenido en mismo A) pero utilizando un objeto de B  :xD :huh:

El objeto de B solo podrá acceder a los mismos métodos y atributos de la clase B a excepcion de que extienda a otra clase.
En línea

abc
sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Duda basica java
« Respuesta #3 en: 16 Marzo 2011, 02:09 am »

Citar
y ese objeto creado de la clase B tiene que llamar a el metodo numero¿Como lo hago?
Respuesta corta
- lo más probable es que estés confundido y que estés volteando las relaciones es decir que b contenga a y no al revés pero es difícil saber si eso es correcto si no pones el ejemplo concreto que estas usando
-si realmente se debes ejecutar código después de otra cosa eso lo puedes a mano (muy poco recomendado) o usando el patrón observador

Para el flame
-siempre me confundo cuando hablan de un a que dentro de una b que llama a un no sé que habla en cosas concretas con código (clase carro factura persona empleado servicio de impresion etc)

Código:
La clase A hereda de otra clase diferente, como en java no hay herencia múltiple la clase B no puede heredar a la A

cuando eso pasa lo más probable es que hay un mal diseño(no siempre a veces no tiene opción) y la sospecha es que a y b deban heredar de una clase abstracta(no entiendo porque nunca la usan si les han enseñado como se hace) esa clase abstracta tiene que tener el código común que deben tener todos sus hijos es recomendable que una clase abstracta implemente una interface(para definir un contrato y reducir al máximo el acoplamiento) y que la clase abstracta implemente esa interface y que escriba la implementación por defecto(para que los hijos no tengan código repetido) de la mayoría de los métodos de la interface ejemplo tablemodel abstracttablemodel y defaultablemodel

Ejemplo de la pesadilla del mal uso de herencia son las versiones antiguas de ejb(eso fue un fiasco y existimos muchos haters de ejb) cada objeto de negocio(casi nunca son pocas) tenían que heredar de abstractnisiquieralopuedopronunciarlo y luego implementar sus todos sus métodos creo que son 4 es decir que si tienes 25 objetos de negocio(facutra carro persona,etc) tenias que implementar 100 métodos al estilo copy paste
existen librerías que las denomina poco intrusivas (sin comillas) jpa jdo hibernate ultima versión de ejb que usan muy pocas clases y herencia (me gustan mucho) por la misma razón que sitas "para evitar la necesidad de atorarse con herencia múltiple" ellas usan principalmente anotaciones y programación orientada a aspectos(sin que el programador lo sepa)

-eso de que java no tiene herencia múltiple si friega y muy raras veces te encuentras con ese tipo de problemas y después de mucho pensarlo la solución es simple no uses herencia a menos que tengas una buena razón para hacer es recomendable usar herencia cuando es tu propio código y puedas cambiarlo como se te da la gana
Solo usa herencia cuando algo tenga relación de "es un" (un perro es un mamífero) además si es posible que la relación entre clases sea "tiene un" (una persona tiene una cabeza) es mejor no usar herencia no usar herencia solo por el pretexto "es que se parecen mucho y quiero ahorrar código"

-en caso de que la fregaste usaste herencia o la usaste mal(le malograste el diseño a los futuros programadores) te queda pocas opciones usar aspectos(forzando "herencia múltiple" a la mala) o hacer que los clientes tengan que implementar una interface(generalmente la solución es miserable teniendo 100 de clases con implementación repetitiva y que se tiene que mantener) otra opción la mejor pero de lejos la más compleja es que otra clase cree un objeto te implemente una interface ejemplo tu le pasas una factura y te crea un objeto de tipo observable

Observable facutraObserVable = new CreadorObservable(new Factura()).obtener();
Persistible productoPerisitible = new CreadorPersistible(new Producto()).obtener();
Disculpa que escriba mucho pero es que tengo demonios que exorcizar  y es mejor escribir que andar golpeando a todos los programadores con los que no comparto mis puntos de vista
« Última modificación: 16 Marzo 2011, 02:27 am por sapito169 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda basica de programacion en java
Java
MlcR0 4 3,122 Último mensaje 19 Diciembre 2006, 00:34 am
por MlcR0
duda basica
PHP
cuerty 3 2,373 Último mensaje 17 Agosto 2008, 05:53 am
por coolfrog
Creación de una pila básica en Java
Java
madpitbull_99 4 21,428 Último mensaje 17 Octubre 2011, 07:50 am
por s00rk
duda basica seguramente en java
Java
arts 7 4,131 Último mensaje 24 Octubre 2013, 16:30 pm
por arts
Duda basica java web con Spring framework
Java
alfrosende 0 1,867 Último mensaje 14 Mayo 2017, 16:48 pm
por alfrosende
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines