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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  clase abstracta y herencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: clase abstracta y herencia  (Leído 1,275 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
clase abstracta y herencia
« en: 27 Mayo 2012, 18:25 pm »

Saludos estoy haciendo este programa para aprender de clases abstractas,herencia y polimorfismo

Código
  1. abstract class Persona{
  2. private String nombre;
  3. private String direccion;
  4. private String telefono;
  5. private String rfc;
  6.  
  7. public Persona(String nombrex,String direccionx,String telefonox,
  8. String rfcx){
  9. fijaNombre(nombrex);
  10. fijaDireccion(direccionx);
  11. fijaTelefono(telefonox);
  12. fijaRFC(rfcx);
  13. }
  14.  
  15. public void fijaNombre(String nombrex){
  16. nombre=nombrex;
  17. }
  18.  
  19. public void fijaDireccion(String direccionx){
  20. direccion=direccionx;
  21. }
  22.  
  23. public void fijaTelefono(String telefonox){
  24. telefono=telefonox;
  25. }
  26.  
  27. public void fijaRFC(String rfcx){
  28. rfc=rfcx;
  29. }
  30.  
  31. public String dameNombre(){
  32. return nombre;
  33. }
  34.  
  35. public String dameDireccion(){
  36. return direccion;
  37. }
  38.  
  39. public String dameTelefono(){
  40. return telefono;
  41. }
  42.  
  43. public String dameRFC(){
  44. return rfc;
  45. }
  46.  
  47. public String concatenaInfo(){
  48. return dameNombre()+" "+dameDireccion()+" "+dameTelefono()+" "+dameRFC();
  49. }
  50. }
  51.  
  52. class PersonaFisica extends Persona{
  53. private String claveIFE;
  54.  
  55. public PersonaFisica(String nombrex,String direccionx,String telefonox,
  56. String rfcx,String claveIFEx){
  57. super(nombrex,direccionx,telefonox,rfcx);
  58. fijaClaveIFE(claveIFEx);
  59. }
  60.  
  61. public void fijaClaveIFE(String claveIFEx){
  62. claveIFE=claveIFEx;
  63. }
  64.  
  65. public String dameClaveIFE(){
  66. return claveIFE;
  67. }
  68.  
  69. public String concatenaInfo(){
  70. return super.concatenaInfo()+" "+dameClaveIFE();
  71. }
  72. }
  73.  
  74. class PersonaMoral extends Persona{
  75. private PersonaFisica representante;
  76.  
  77. public PersonaMoral(String nombrex,String direccionx,String telefonox,
  78. String rfcx,PersonaFisica representantex){
  79. super(nombrex,direccionx,telefonox,rfcx);
  80. fijaRepresentante(representantex);
  81. }
  82.  
  83. public void fijaRepresentante(PersonaFisica representantex){
  84. representante=representantex;
  85. }
  86.  
  87. public PersonaFisica dameRepresentante(){
  88. return representante;
  89. }
  90.  
  91. public String concatenaInfo(){
  92. return super.concatenaInfo()+" "+dameRepresentante();
  93. }
  94. }
  95.  
  96. public class PolimorfismoRelaciones {
  97.  
  98. public static void main(String[] args) {
  99. PersonaFisica pf=new PersonaFisica("Juan","Huanatos #2502","36789765","AMA36","457AB");
  100. PersonaMoral pm=new PersonaMoral("Ana","Rio Altar #4562","36895764",
  101. "SA2347",new PersonaFisica("Juan","Huanatos #2502","36356736","XH89NT","489H"));
  102. System.out.println(pf);
  103. System.out.println(pm);
  104. }
  105.  
  106. }
  107.  

Lo tuve que hacer siguiendo unos requerimientos obligatorios que me puso mi profesor que son los siguientes:

Entregar un archivo fuente PolimorfirmoRelaciones.java para aplicación de consola
que cumpla con los siguientes requerimientos
2. Codificación de la clase PolimorfirmoRelaciones conteniendo al método main
3. Codificación de la clases Persona, PersonaFisica y PersonaMoral en el mismo
archivo
4. Solo declarar los atributos de cada clase (no definirlos en la misma línea que sean
declarados)
5. Inicializar todos los atributos de las clases por medio de un constructor con
parámetros
6. Declarar y definir los métodos dame() para las clases
7. Declarar y definir los métodos fija() para las clases
8. La inicialización de los atributos haga uso de los métodos fija()
9. La clase Persona no sea instanciable
10. Codificar en el ámbito del método main lo siguiente:
a) Declarar y definir una variable de instancia del tipo PersonaFisica
b) Declarar y definir una variable de instancia del tipo PersonaMoral
c) Mediante un sólo método del objeto de tipo PersonaFisica que devuelva un
String, imprimir en la consola toda su información
d) Mediante un sólo método del objeto de tipo PersonaMoral que devuelva un
String, imprimir en la consola toda su información.

No me marca errores pero a la hora de compilarlo solo me imprime esto
y no se por qué, debería imprimirme toda la información concatenada


PersonaFisica@12dacd1
PersonaMoral@1ad086a

de antemano gracias


En línea

adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: clase abstracta y herencia
« Respuesta #1 en: 27 Mayo 2012, 18:43 pm »

Te imprime las direcciones de memoria del objeto, es normal, ya que en las lineas
Código:
System.out.println(pf);
System.out.println(pm);

Tienes estas enviando los objetos. Para la clase PersonaFisica y PersonaMoral debes sobreescribir el método toString()



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[TUTORIAL]Arte abstracto: espiral abstracta
Diseño Gráfico
H4RR13R 7 11,032 Último mensaje 31 Agosto 2007, 05:29 am
por asssssssssssssassasas
se puede dar herencia de una clase anidada a una clase normal.
Java
kev4142 0 2,586 Último mensaje 7 Agosto 2009, 20:46 pm
por kev4142
Problema de interacion entre una clase Interfaz y la clase que la llama
Java
yeah69 4 3,058 Último mensaje 21 Mayo 2010, 06:30 am
por we4rt
Unificar código en clase abstracta « 1 2 »
Java
CaTZ 11 3,300 Último mensaje 16 Enero 2015, 10:33 am
por CaTZ
Crear puntero a clase abstracta y problema usando vector
Programación C/C++
cNoob 6 1,316 Último mensaje 9 Enero 2018, 20:39 pm
por ThunderCls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines