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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
[Duda] Clases abstractas
« en: 28 Julio 2016, 07:37 am »

Buenas a todos! Estoy aprendiendo Java y tengo un problemita

Tengo un proyecto en Java que estoy desarrollando, este es mi código:

Código
  1. public class Estudiante_Postgrado extends Estudiante {
  2.  
  3.  
  4.  
  5.    public void postgrado(){
  6.        System.out.println("Ingrese sus datos de Estudiante de Post-Grado: ");
  7.    }
  8.    public void nombre(){
  9.        String nombre = "";
  10.        System.out.println("Ingrese su nombre: ");
  11.        Scanner entrada = new Scanner(System.in);  
  12.        nombre = entrada.nextLine();
  13.  
  14.    }
  15.  
  16.    public void matricula() {
  17.        int matricula = 0;
  18.        System.out.println("Ingrese su matricula: ");
  19.        Scanner entrada = new Scanner(System.in);  
  20.        matricula = entrada.nextInt();
  21.    }
  22.  
  23.    public void tituloDeGrado() {
  24.        String titulo = "";
  25.        System.out.println("Titulo de grado: ");
  26.        Scanner entrada = new Scanner(System.in);  
  27.        titulo = entrada.nextLine();
  28.    }
  29.  
  30.    public void universidad() {
  31.        String universidad = "";
  32.        System.out.println("Ingrese su universidad: ");
  33.        Scanner entrada = new Scanner(System.in);  
  34.        universidad = entrada.nextLine();
  35.    }
  36.  
  37.    public void maestria() {
  38.        String maestria = "";
  39.        System.out.println("Ingrese la Maestria o Doctorado cursando: ");
  40.        Scanner entrada = new Scanner(System.in);  
  41.        maestria = entrada.nextLine();
  42.    }
  43.  
  44.    public void imprimir (){
  45.  
  46.       System.out.println("Nombre: ");
  47.  
  48.    }

El programa me corre perfectamente, pero el problema, como pueden ver, es que public void imprimir () no tiene prácticamente nada, es porque todo lo que he hecho allí me esta dando error. Mi pregunta es: ¿Es posible poder llamar los resultados de otros métodos para poder meterlos en imprimir y mostrarlos en main.java? osea, si yo coloco System.out.println("Nombre: "+nombre) me da error, dice como que si la variable no existiera. Espero que me haya explicado bien y me puedan haber entendido. Si necesitan más de mi código me dicen!

¿Esta correcta la estructura que lleva este código?

Pasen buenas!

 


« Última modificación: 28 Julio 2016, 07:39 am por ElChulon » En línea

Octsam

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: [Duda] Clases abstractas
« Respuesta #1 en: 28 Julio 2016, 12:53 pm »


Una variable encerrada entre dos llaves cualesquiera, son locales, y fuera de tales llaves no existirá. Incluso si escribo:
Código:
    {
        int i;
    }
   
    i = 0;

Tendré un error, porque la variable 'i' existe solamente dentro de las llaves, y no fuera.

En tu caso particular, la variable 'nombre' está en el cuerpo de una función, por lo que será local a tal función. No podrás usarla fuera de ella. Así que si quieres hacerlo, tendrás que poner tal variable fuera de la función, y ponerle su valor llamando a tal función. Y para que quede más claro; yo pondría:



Código:
    public class Estudiante_Postgrado extends Estudiante {
       
        String nombre;
       
        public void postgrado(){
            System.out.println("Ingrese sus datos de Estudiante de Post-Grado: ");
        }
   
        ...
    }
   



En línea

duvancg

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [Duda] Clases abstractas
« Respuesta #2 en: 29 Julio 2016, 01:14 am »

En tu caso quedaría así:
Código
  1. public class Estudiante_Postgrado extends Estudiante {
  2.  
  3. private String nombre = "";
  4.  
  5.  
  6.    public void postgrado(){
  7.        System.out.println("Ingrese sus datos de Estudiante de Post-Grado: ");
  8.    }
  9.    public void nombre(){
  10.  
  11.        System.out.println("Ingrese su nombre: ");
  12.        Scanner entrada = new Scanner(System.in);  
  13.        nombre = entrada.nextLine();
  14.  
  15.    }
  16.  
  17.    public void matricula() {
  18.        int matricula = 0;
  19.        System.out.println("Ingrese su matricula: ");
  20.        Scanner entrada = new Scanner(System.in);  
  21.        matricula = entrada.nextInt();
  22.    }
  23.  
  24.    public void tituloDeGrado() {
  25.        String titulo = "";
  26.        System.out.println("Titulo de grado: ");
  27.        Scanner entrada = new Scanner(System.in);  
  28.        titulo = entrada.nextLine();
  29.    }
  30.  
  31.    public void universidad() {
  32.        String universidad = "";
  33.        System.out.println("Ingrese su universidad: ");
  34.        Scanner entrada = new Scanner(System.in);  
  35.        universidad = entrada.nextLine();
  36.    }
  37.  
  38.    public void maestria() {
  39.        String maestria = "";
  40.        System.out.println("Ingrese la Maestria o Doctorado cursando: ");
  41.        Scanner entrada = new Scanner(System.in);  
  42.        maestria = entrada.nextLine();
  43.    }
  44.  
  45.    public void imprimir (){
  46.  
  47.       System.out.println("Nombre: "+nombre);
  48.  
  49.    }
  50.  
Saludos.
En línea

hectornunezrivas

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: [Duda] Clases abstractas
« Respuesta #3 en: 31 Julio 2016, 16:36 pm »

Hola.
Bueno como mencionan los compañeros anteriores. tus variables están encerradas en un método lo cual las hace locales. Debes de ponerlas globales para que cualquier parte del programa las reconozca. Entonces si quieres hacer tus variables globales hazlo de la siguiente manera.

Código:
public class Estudiante_Postgrado extends Estudiante {
 
private String nombre = "", titulo = "", universidad = "", maestria = "";
private int matricula = 0;
 
 
    public void postgrado(){
        System.out.println("Ingrese sus datos de Estudiante de Post-Grado: ");
    }
    public void nombre(){
        System.out.println("Ingrese su nombre: ");
        Scanner entrada = new Scanner(System.in); 
        nombre = entrada.nextLine();
    }
 
    public void matricula() {
        System.out.println("Ingrese su matricula: ");
        Scanner entrada = new Scanner(System.in); 
        matricula = entrada.nextInt();
    }
 
    public void tituloDeGrado() {
        System.out.println("Titulo de grado: ");
        Scanner entrada = new Scanner(System.in); 
        titulo = entrada.nextLine();
    }
 
    public void universidad() {
        System.out.println("Ingrese su universidad: ");
        Scanner entrada = new Scanner(System.in); 
        universidad = entrada.nextLine();
    }
 
    public void maestria() {
        System.out.println("Ingrese la Maestria o Doctorado cursando: ");
        Scanner entrada = new Scanner(System.in); 
        maestria = entrada.nextLine();
    }
 
    public void imprimir (){
 
       System.out.println("Nombre: "+nombre);
 
    }

De esta forma ya se pueden reconocer tus variables en imprimir y las puedes mandar a llamar.
Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Imagenes Abstractas
Diseño Gráfico
madalenas 2 1,939 Último mensaje 25 Enero 2006, 14:51 pm
por Toxico
Duda con Clases
.NET (C#, VB.NET, ASP)
Senior++ 6 3,007 Último mensaje 24 Febrero 2012, 10:48 am
por Senior++
Duda con las clases [c++] « 1 2 »
Programación C/C++
Lotux5 11 5,140 Último mensaje 20 Abril 2013, 02:29 am
por rir3760
Duda con clases « 1 2 »
Java
robertito_prado 12 6,114 Último mensaje 1 Agosto 2013, 18:13 pm
por robertito_prado
clases abstractas en java
Java
mmga 6 3,677 Último mensaje 7 Abril 2014, 18:36 pm
por mmga
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines