elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:54  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  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 864 veces)
gxg

Desconectado Desconectado

Mensajes: 33


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

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

he vuelto :)


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

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


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


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

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

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
sapito169


Desconectado Desconectado

Mensajes: 421



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

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 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
Análisis y Diseño de Malware
Frost 5 481 Último mensaje 13 Junio 2004, 06:39
por Frost
Una duda muy básica.
Seguridad
po 14 1,117 Último mensaje 1 Septiembre 2005, 16:40
por -sagitari-
Una duda muy basica
Análisis y Diseño de Malware
Timerlux 5 457 Último mensaje 4 Octubre 2006, 07:10
por Man-In-the-Middle
duda basica de programacion en java
Java
MlcR0 4 830 Último mensaje 19 Diciembre 2006, 00:34
por MlcR0
Creación de una pila básica en Java
Java
madpitbull_99 4 833 Último mensaje 17 Octubre 2011, 07:50
por s00rk
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines