TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: CompSystems en 24 de Agosto de 2015, 12:18:09

Título: Mi tutorial de JAVA
Publicado por: CompSystems en 24 de Agosto de 2015, 12:18:09
Hola, inicie con mi autoaprendizaje de JAVA, la primer razón es crear interfaces graficas para el RASPBERRYPI, y como este puede cargar en LINUX Y WINDOWS entonces no tener que preocuparme por compilarlo para cada sistema operativo, un código en JAVA es multiplataforma y el lenguaje JAVA se esta convirtiendo el #1 entre todos los lenguajes, entonces porque no darle un espacio independiente en este foro (algún moderador por favor que lo realice), además deseo subir mi tutorial de JAVA en este nuevo espacio independiente a C, C++

Gracias

PD: Iniciando mi tutorial de JAVA, aportes etc todo es bienvenido

Programación informática en JAVA un enfoque matemático

El fin de la programación orientada a objetos es emular objetos de la vida real, se creó este tipo de lenguajes para dar solución a los nuevos desafíos de la programación informática.

Los lenguajes de alto nivel como C, operan sobre datos individuales,  y compuestos, pensar en objetos implica codificar siempre conjunto de datos agrupados, de ahora en adelante ya no pensamos en tipos de datos sino en conjunto de tipos de datos u objetos.

Un ejercicio de la vida real, graficar una función.

Sea la función lineal y = m*x+b, la gráfica de esta función es una línea recta, donde m  y b son parámetros (pendiente, e intersecto sobre el eje y) respectivamente, x es la variable independiente, y es la variable dependiente, la anterior función se puede expresar como y(x)= m*x+b o f(x)= m*x+b

Recordemos la definición de un parámetro y variable en algebra.
Parámetro, es un valor numérico o simbólico que para un caso particular de un problema no varía, podemos decir que es una constante.
Variable, también es un valor numérico o simbólico que aplicado en el mismo caso particular de un problema, difiere de un parámetro por que toma determinados valores en un dominio.

Ejercicio 1:
Graficar líneas rectas para los siguiente casos
1.A: pendiente 0, intersecto 2, x entre [0 5]
1.B: pendiente 4, intersecto 2 y -2, x entre [0 5]


Solución para el problema 1.A

Paso 1: definir identificadores para los parametros
m = 0
b = 2

Paso 2: Evaluar función y = m*x+b para obtener los puntos de graficacion
Tomando algunos valores entre 0 y 5

y= 0*1+2 -> 2
y= 0*2+2 -> 2
...

y= 0*5+2 -> 2

el resultado es
x   -5   -3   0   1   2   3   5
f1(x)   2   2   2   2   2   2   2

Según la tabla anterior los puntos resultantes son
p1 = (0,2)
p2 = (1,2)
p3 = (2,2)
p4 = (3,2)
p5 = (4,2)

Note que para todo valor de x, la función f(x) toma el valor de 2, es decir una línea recta paralela al eje x, y que se intersecta en y=2

Solución para el problema 1.B

Paso 1: definir identificadores para los parametros
m = 4
b = 2

Paso 2: Evaluar función y = m*x+b para obtener los puntos de graficacion
Tomando algunos valores entre 0 y 5

y= 4*0+2 -> 2
y= 4*1+2 -> 6
y= 4*2+2 -> 10
...
y= 4*5+2 -> 22

se obtienen los puntos
P1=(0,2)
P2=(1,6)
P3=(2,10)
P4=(3,14)
P5=(4,18)
P6=(5,22)

Ahora el ejercicio anterior codificado en JAVA, en JAVA aplicamos también los conceptos del algebra como función pero se denominan METODOS,
Un Método es similar a una función, requiere de un nombre identificador seguido de un paréntesis para contener los parámetros

Algebraicamente una función se expresa como f1(x)= expresionAlgebraica en JAVA
f1(x) { … } pero además requiere de unos prefijos, tipo de dato a retornar (entero, cadena, etc), acceso público, privado que se explicaran posteriormente
Entonces la función o mejor método se convierte en

public int f1(x) { … }

los objetos se deben plantear sobre una estructura llamada CLASE (class), requiere de un nombre identificador class y prefijos similar a la definición de un metodo

public class graficacion { ...  }


Continuara

Título: Re: Crear Subforo JAVA, ... Mi tutorial de JAVA
Publicado por: CompSystems en 24 de Agosto de 2015, 12:50:17
//Codigo del primer ejercicio
//
Código: Java
  1. package graficacion_linea_recta;
  2.  
  3. /**
  4.  *
  5.  * @author Compsystems Actualizado 25 Agosto del 2015
  6.  */
  7. public class graficacion_linea_recta {
  8.  
  9.     // 1: CAMPOS
  10.     // Identificadores instancia de la clase
  11.     int m; // parametro pendiente
  12.     int b; // parametro intersecto
  13.  
  14.     // 2: CONSTRUCTOR
  15.     // Función o método CONSTRUCTOR para inicializar los parámetros m y b
  16.     graficacion_linea_recta(int pendiente, int intersecto) {
  17.         m = pendiente;
  18.         b = intersecto;
  19.     }// fin de la función CONSTRUCTOR
  20.  
  21.     // 3: METODOS
  22.     // para obtener las coordenadas de graficacion
  23.     public void coordenadas() {
  24.         int y; // variable dependiente de x, obtiene la coordenada Y para cada valor de x
  25.         int x; // variable independiente x para contener un dominio por medio de un ciclo FOR
  26.         System.out.println("Coordenadas Funcion f(x) = " + m + "* x + " + b );
  27.         for (x = 0; x <= 5; x = x + 1) { // genera valores entre 0 y 5 en pasos de 1 para la variable x
  28.             y = m * x + b; // calcula el valor de y
  29.             System.out.println("P" + (x + 1) + "=(" + x + "," + y + ")"); // imprime la coordenada
  30.         }
  31.         System.out.println();
  32.     } // fin de la función coordenadas
  33.  
  34.     // el metodo principal (MAIN) es llamado por el inteprete de JAVA, toma argumentos para almacenarlos en una STRING (cadena) de nombre args,
  35.     // pero en este caso no se usan
  36.     public static void main(String args[]) {
  37.         // objeto 1
  38.         graficacion_linea_recta y1 = new graficacion_linea_recta(0, 2); // crea un objeto y1 e inicializa los parámetros m y b
  39.         // con pendiente m = 0, intersecto b=2
  40.  
  41.         y1.coordenadas();  // ejecuta el método coordenadas para el objeto y1, y muestra las coordenadas de graficacion
  42.  
  43.         // objeto 2
  44.         graficacion_linea_recta y2 = new graficacion_linea_recta(4, 2);
  45.         // con pendiente m = 4, intersecto b=2
  46.  
  47.         y2.coordenadas();
  48.  
  49.         // objeto 3
  50.         graficacion_linea_recta y3 = new graficacion_linea_recta(4, -2);
  51.         // con pendiente m = 4, intersecto b=-2
  52.  
  53.         y3.coordenadas();
  54.  
  55.     } // fin de la función principal MAIN
  56.  
  57. }// fin de la clase graficacion_linea_recta
  58. //


Salida

run:
Coordenadas Funcion f(x) = 0* x + 2
P1=(0,2)
P2=(1,2)
P3=(2,2)
P4=(3,2)
P5=(4,2)
P6=(5,2)

Coordenadas Funcion f(x) = 4* x + 2
P1=(0,2)
P2=(1,6)
P3=(2,10)
P4=(3,14)
P5=(4,18)
P6=(5,22)

Coordenadas Funcion f(x) = 4* x + -2
P1=(0,-2)
P2=(1,2)
P3=(2,6)
P4=(3,10)
P5=(4,14)
P6=(5,18)

BUILD SUCCESSFUL (total time: 1 second)
Título: Re: Crear Subforo JAVA, ... Mi tutorial de JAVA
Publicado por: KILLERJC en 24 de Agosto de 2015, 17:48:58
Yo jamas toque JAVA, por no tener la necesidad. Pero como todo lenguaje me interesa.
No se si un subforo de JAVA, pero si estaria bueno tener un espacio, y no que quede en ningun lugar, como ya hay otros subforos y este es el primer mensaje de JAVA que veo, podria moverse al de python y cambiarle el nombre al subforo para que entren ambos.
Título: Re: Crear Subforo JAVA, ... Mi tutorial de JAVA
Publicado por: CompSystems en 24 de Agosto de 2015, 20:15:59
Estoy de acuerdo Python & JAVA como un solo foro, por favor mover este post a Python y renombrarlo, Gracias

Sobre el código anterior, Que os parece? trivial, difícil, es interesante el enfoque algebraico que les estoy dando?. casi todos los libros de programación y tutoriales inician con HOLA Mundo, clase que ni siquiera crea un objeto, solo hace uso del objeto STRING

PD: yo uso el compilador NetBeans https://netbeans.org/downloads/
Título: Re: Crear Subforo JAVA, ... Mi tutorial de JAVA
Publicado por: KILLERJC en 24 de Agosto de 2015, 20:30:48
No me parece complejo a mi en la parte matematica por que estoy un poco acostumbrado. Aunque la explicacion al leerla no me parecio facil de interpretar, en el que uno que esta un poco perdido cuando vea tantos numeros se vuelva loco.

Con repecto a la programacion
Lo que si no se por que el crear "graficacion_linea_recta" que solo esa una asignacion de valores cuando podria haberlo realizado coordenadas().
Imagino que lo haces por que es un class, y no hacer una funcion simple y llamarla, y en este caso tampoco se por que hacer un class para esto xD. De todas formas es muy parecido al C/JS. Crei que iba a ser muy distinto.

Tal ves me estoy perdiendo algo. Y no se pueda hacer una funcion simple y llamarla como yo creo.

Tambien lo que noto es :

graficacion_linea_recta y2 = new graficacion_linea_recta(4, 2)

pense que podria hacerse sin esa parte en negrita.

Y bueno por ultimo no se el por que del package. Pero bueno esto desde afuera sin saber JAVA.
Título: Mi tutorial de JAVA
Publicado por: CompSystems en 24 de Agosto de 2015, 21:19:34
Hola KillerJC

La siguiente sentencia parece redundante a simple vista, PORQUE se muestra 2 veces la palabra graficacion_linea_recta . Esta una sentencia especial de DOBLE PROPOSITO creación del objeto Y1 y ejecución del constructor

Código: Java
  1. graficacion_linea_recta y1 = new graficacion_linea_recta(0, 2);

LA PRIMERA palabra graficacion_linea_recta osea la que esta en el  lado izquierdo o antes del operador IGUAL es el tipo de dato para Y1, la segunda que esta en lado DERECHO es el constructor de la clase, que se debe llamar igual a ella de ahí la confusion

Resumen:
EL LADO IZQUIERDO debe tener un tipo de dato, en este caso seria OBJETO, al igual como lo hace C o C++
por ejemplo no podemos definir un dato solo con i = 6 requiere un prefijo int i=6,

También se observa que la parte derecha, después del operador de asignación = se necesita colocar NEW (NUEVO), además graficacion_linea_recta(0, 2) tiene dos parámetros, por esta razón hay que definir dentro de la clase un método o función extra que se llama CONSTRUCTOR con el mismo nombre de la clase, este tiene como fin inicializar de manera segura las variables de calculo que se desean GLOBALES,  podrían haberse definido dentro de coordenadas(),  pero es mejor separar la inicialización del algoritmo de calculo, además si estuvieran dentro de coordenadas(), no se las podría volver a llamar por que serian LOCALES dentro de este método o función

para ejecutar coordenadas() del objeto 1, 2 y 3 simplemente se usa el operador PUNTO

NombreDelOBJETO.coordenadas()

Código: Java
  1. y1.coordenadas()
para el objeto llamado Y1

Código: Java
  1. y2.coordenadas()
para el objeto Y2

Código: Java
  1. y3.coordenadas()
para el objeto Y3
...

lo de package, lo agrega el compilador, aun no he llegado a esa parte

compilen el primer código y cualquier duda no duden en escribir

Nos vemos
Título: Re: Crear Subforo JAVA, ... Mi tutorial de JAVA
Publicado por: KILLERJC en 24 de Agosto de 2015, 22:18:36
Yo un poco me confundi con JS, en el que recuerdo haber realizado:

Código: Javascript
  1. var x5 = new Array();     // A new Array object

En C++, directamente

Nombre_de_clase Nombre_de_objeto;
Ejemplo clase rectangulo

Código: C++
  1. Rectangulo Rect;
  2. Rect.largo=10;

Y en python:

Código: Python
  1. class Complex:
  2.      def __init__(self, realpart, imagpart):
  3.          self.r = realpart
  4.          self.i = imagpart
  5.  
  6. x = Complex(3.0, -4.5)

Por eso me sorprendi al verlo asi.
Título: Mi tutorial de JAVA
Publicado por: CompSystems en 25 de Agosto de 2015, 16:10:25
Mejore la explicación anterior y continuo con el tutorial,
Para KILLERJC o algún forero, deseo por favor ver los códigos que escribo aca portados a C++, C# y Phython, claro esta en post paralelos para comparar tipos de codificación de lenguajes
Gracias


El código de la mayoría de las clases puede descomponerse en 2 partes principales
La parte externa de la clase tiene la forma
//
Código: Java
  1. Public class NombreDeLaClase{
  2. }
  3. //
En la parte interna de la clase se definen tres partes principales, que por lo general siguen el siguiente orden
CAMPOS, CONSTRUCTORES luego METODOS
//
Código: Java
  1. Public class NombreDeLaClase{
  2. //CAMPOS
  3. //CONSTRUCTORES
  4. //METODOS
  5. }
  6. //

Los CAMPOS o también llamados identificadores instancia de la clase, almacenan datos para que cada objeto creado los use
Los CONSTRUCTORES hacen que los campos se asignen o tomen un ESTADO adecuado o razonable (inicialización), una vez haya sido creado el objeto
Los METODOS implementan el comportamiento de los objetos

Del ejemplo anterior seccionando cada parte
//  CAMPOS
//
Código: Java
  1. public class graficacion_linea_recta {
  2.  
  3.     // 1: CAMPOS
  4.     // Identificadores instancia de la clase
  5.     int m; // parámetro: pendiente
  6.     int b; // parámetro: intersecto
  7.   // … se omite el resto del código
  8. }// fin de la clase graficacion_linea_recta
  9. //


Para CONSTRUCTORES
//
Código: Java
  1. public class graficacion_linea_recta {
  2.  
  3.   // … se omite el código CAMPOS
  4.     // 2: CONSTRUCTOR
  5.     // Función o método CONSTRUCTOR para inicializar los parámetros m y b
  6.     graficacion_linea_recta(int pendiente, int intersecto) {
  7.         m = pendiente;
  8.         b = intersecto;
  9.     }// fin de la función CONSTRUCTOR  // … se omite el resto del código
  10.  
  11. }// fin de la clase graficacion_linea_recta
  12. //

Para Funciones o METODOS
//
Código: Java
  1. public class graficacion_linea_recta {
  2.  
  3.   // … se omite el código CAMPOS, y CONSTRUCTOR
  4.  
  5.     // 3: METODOS
  6.     // para obtener las coordenadas de graficacion
  7.     public void coordenadas() {
  8.         int y; // variable dependiente de x, obtiene la coordenada Y para cada valor de x
  9.         int x; // variable independiente x para contener un dominio por medio de un ciclo FOR
  10.         System.out.println("Coordenadas Funcion f(x) = " + m + "* x + " + b );
  11.         for (x = 0; x <= 5; x = x + 1) { // genera valores entre 0 y 5 en pasos de 1 para la variable x
  12.             y = m * x + b; // calcula el valor de y
  13.             System.out.println("P" + (x + 1) + "=(" + x + "," + y + ")"); // imprime la coordenada
  14.         }
  15.         System.out.println();
  16.     } // fin de la función coordenadas
  17.  
  18.     public static void main(String args[]) {
  19.         // objeto 1
  20.         graficacion_linea_recta y1 = new graficacion_linea_recta(0, 2); // crea un objeto y1 e inicializa los parámetros m y b
  21.         // con pendiente m = 0, intersecto b=2
  22.  
  23.         y1.coordenadas();  // ejecuta el método coordenadas para el objeto y1, y muestra las coordenadas de graficacion
  24.  
  25.         // objeto 2
  26.         graficacion_linea_recta y2 = new graficacion_linea_recta(4, 2);
  27.         // con pendiente m = 4, intersecto b=2
  28.  
  29.         y2.coordenadas();
  30.  
  31.         // objeto 3
  32.         graficacion_linea_recta y3 = new graficacion_linea_recta(4, -2);
  33.         // con pendiente m = 4, intersecto b=-2
  34.  
  35.         y3.coordenadas();
  36.  
  37.     } // fin de la función principal MAIN
  38.  
  39.  
  40. }// fin de la clase graficacion_linea_recta
  41. //
Título: Mi tutorial de JAVA
Publicado por: CompSystems en 25 de Agosto de 2015, 16:47:59
INICIALIZACION AUTOMATICA DE LOS CONSTRUCTORES

Si no se define una función o método CONSTRUCTOR, JAVA automáticamente asigna valores por defecto, 0 para el caso de los enteros, “” cadena vacia para STRING, etc


Comente del ejercicio 1 el METODO CONSTRUCTOR y dentro del METODO PRINCIPAL MAIN agregue un 4to objeto de la siguiente manera, (sin parametros)
//
Código: Java
  1. // objeto 4
  2.         graficacion_linea_recta y4 = new graficacion_linea_recta(); // sin parametros
  3.         y4.coordenadas();//


la salida es

run:
Coordenadas Funcion f(x) = 0 * x + 0
P1=(0,0)
P2=(1,0)
P3=(2,0)
P4=(3,0)
P5=(4,0)
P6=(5,0)


note que m & b se inicializan en 0

Título: Mi tutorial de JAVA
Publicado por: CompSystems en 26 de Agosto de 2015, 09:11:42
OPERADOR THIS

veamos la siguiente porción de código del ejercicio1

Código: Java
  1. // 1: CAMPOS
  2.     // Identificadores instancia de la clase
  3.     int m; // parametro pendiente
  4.     int b; // parametro intersecto
  5.  
  6.  // 2: CONSTRUCTOR
  7.     // Función o método CONSTRUCTOR para inicializar los parámetros m y b
  8.     graficacion_linea_recta(int m, int b) {
  9.         m = m;
  10.         b = b;
  11. }// fin de la función CONSTRUCTOR

Los parametrso del método graficacion_linea_recta(...) son m & b
para modificar o inicializar los CAMPOS m & b, habría un conflicto por que el compilador no podría decidir o interpretar la siguientes sentencias

        m = m;
        b = b;

para resolver este problema si se desea usar los mismos nombres ente CAMPOS y PARAMETROS, se antepone al identificador el operador .THIS a los identificadores que están el cuerpo del METODO

pruden comprobar cambiando la definicion del CONSTRUCTOR por la siguiente
Código: Java
  1. // 2: CONSTRUCTOR
  2.     // Función o método CONSTRUCTOR para inicializar los parámetros m y b
  3.     graficacion_linea_recta(int m, int b) {
  4.         this.m = m;
  5.         this.b = b;
  6. }// fin de la función CONSTRUCTOR


próximamente métodos GET (OBTENER) y SET (FIJAR, ASIGNAR)
Título: Re: Mi tutorial de JAVA
Publicado por: CompSystems en 26 de Agosto de 2015, 09:45:30
La meta del ejercicio#1 es llegar a mostrar una ventana y graficar las funciones

Voy a colocar un 2do ejercicio donde solo se usa el METODO MAIN,, pero se llama a los OBJETOS y METODOS DE SISTEMA: IMPRESION DE SALIDA out.println(), LECTURA DE DATOS Scanner

Ejercicio#2 IMPRIMIR en pantalla la secuencia o sucesión FIBONACCI 1

1
2
3
5
8
13
21
34
...

https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci

//Codigo del 2do ejercicio
//
Código: Java
  1. package sucesionfibonacci;
  2.  
  3. import java.util.*; // Para usar el flujo de entrada estándar System.in
  4.  
  5. /**
  6.  *
  7.  * @author Compsystems Actualizado 26 Agosto del 2015
  8.  */
  9. public class SucesionFibonacci {
  10.     // 1: CAMPOS
  11.  
  12.     // 2: CONSTRUCTOR
  13.     // 3: METODOS
  14.     // METODO MAIN
  15.     public static void main(String args[]) {
  16.         // Definicion de variables Locales
  17.         int numInferior = 1;
  18.         int numSuperior = 1;
  19.         int limSuperior; // el valor limite lo puede modificar el usuario
  20.  
  21.  
  22.         // Se crea el objeto entrada, usando métodos de sistema
  23.         Scanner entradaTeclado = new Scanner(System.in);
  24.  
  25.         // Obtiene por medio del teclado el valor superior limite de calculo
  26.         System.out.println("Entre Valor limite aproximado: ");
  27.         limSuperior = entradaTeclado.nextInt();  // la invocación nextInt espera un numero entero
  28.  
  29.         // Muestra el primer elemento de la sucesión
  30.         System.out.println(numInferior);
  31.  
  32.         while (numSuperior <= limSuperior) {
  33.             // Muestra el siguiente elemento de la sucesión
  34.             System.out.println(numSuperior);
  35.             // calculo del numero Superior
  36.             numSuperior = numInferior + numSuperior;
  37.             // calculo del numero Inferior
  38.             numInferior = numSuperior - numInferior;
  39.         } // fin While
  40.         //
  41.     } // fin de la función principal MAIN
  42. }// fin de la clase SucesionFibonacci
  43. //




//Entrada
Si el usuario digita 56
//Salida

run:
1
1
2
3
5
8
13
21
34
55
BUILD SUCCESSFUL (total time: 0.001 seconds)

si el usuario entra una expresión solo se toma el primer numero
ejemplo 56 60 70

la entrada se toma como 56

si el usuario entra una expresión que no sea un numero entero, se genera una excepción en tiempo de ejecución
ejemplo 56.1

Exception in thread "main" java.util.InputMismatchException

próximamente veremos que hacer cuando esto ocurra
Título: Re: Mi tutorial de JAVA
Publicado por: CompSystems en 26 de Agosto de 2015, 14:05:20
Codigo con detección de error: entrada no valida por parte del usuario

//Codigo del 2do ejercicio
//
Código: Java
  1. package sucesionfibonacci;
  2.  
  3. import java.util.*; // Para usar el flujo de entrada estándar System.in
  4.  
  5. /**
  6.  *
  7.  * @author Compsystems Actualizado 26 Agosto del 2015
  8.  */
  9. public class SucesionFibonacci {
  10.     // 1: CAMPOS
  11.  
  12.     // 2: CONSTRUCTOR
  13.     // 3: METODOS
  14.     // METODO MAIN
  15.     public static void main(String args[]) {
  16.         // Definicion de variables Locales
  17.         int numInferior = 1;
  18.         int numSuperior = 1;
  19.         int limSuperior = 1; // el valor limite lo puede modificar el usuario
  20.         int ind_entradaValida = 0;
  21.  
  22.         // Se crea el objeto entrada, usando métodos de sistema
  23.         Scanner entradaTeclado = new Scanner(System.in);
  24.  
  25.         // Obtiene por medio del teclado el valor superior limite de calculo
  26.         System.out.println("Entre Valor limite aproximado: ");
  27.         while (ind_entradaValida == 0) {
  28.             try {
  29.                 Thread.currentThread(); Thread.sleep(1000);//  PAUSA DE 1000ms
  30.                 System.out.println("Entre Valor limite aproximado: ");
  31.                 limSuperior = entradaTeclado.nextInt();  // la invocación nextInt espera un numero entero
  32.                 ind_entradaValida = 1;
  33.             } catch (Exception MensajeDeError) {
  34.                 ind_entradaValida = 0;
  35.             }
  36.         }
  37.         // Muestra el primer elemento de la sucesión
  38.         System.out.println(numInferior);
  39.  
  40.         while (numSuperior <= limSuperior) {
  41.             // Muestra el siguiente elemento de la sucesión
  42.             System.out.println(numSuperior);
  43.             // calculo del numero Superior
  44.             numSuperior = numInferior + numSuperior;
  45.             // calculo del numero Inferior
  46.             numInferior = numSuperior - numInferior;
  47.         } // fin While
  48.         //
  49.     } // fin de la función principal MAIN
  50. }// fin de la clase SucesionFibonacci
  51. //

El código anterior tiene una pequeña falla no se pausa para pedir un nuevo dato, creo que hay que replantear la solución para volver a pedir el dato, alguna sugerencia de como hacerlo?
Título: Re: Mi tutorial de JAVA
Publicado por: KILLERJC en 26 de Agosto de 2015, 17:15:22
a que te referis con que no se pausa a pedir un nuevo dato ?

Código: Java
  1. while (ind_entradaValida == 0) {
  2.             try {
  3.                 System.out.println("Entre Valor limite aproximado: ");
  4.                 limSuperior = entradaTeclado.nextInt();
  5.                 ind_entradaValida = 1;
  6.                 entradaTeclado.next()
  7.             }
  8.             catch (Exception MensajeDeError) {
  9.                 ind_entradaValida = 0;
  10.             }
  11.         }

Tal ves agregando esa linea ayude, aunque no estoy muy convencido de como se esta haciendo eso xD
Título: Re: Mi tutorial de JAVA
Publicado por: juaperser1 en 26 de Agosto de 2015, 18:16:15
No estoy siguiendo el hilo por no tener mucho tiempo, y este lo requiere, pero c# es uno de mis lenguajes que mejor manejo y java es muy parecido, es mas tuvieron un comienzo junto hasta que se separaron y microsoft lo llamo c#.

Por lo tanto de unirlo a algún foro lo dejaría en el de "c# y java", antes que "phyton y java" a no ser que los separemos en interpretados y compilados

Dicho esto, que excepción intentas capturar con ese try catch?

Yo creo que en la variable int se guardara el valor numérico de la tabla ASCII y no dará excepción, pero no estoy seguro de ello. Cual es la excepción que quieres capturar?

Un saludo
Título: Re: Mi tutorial de JAVA
Publicado por: KILLERJC en 26 de Agosto de 2015, 18:42:19
Citar
Dicho esto, que excepción intentas capturar con ese try catch?

Yo creo que en la variable int se guardara el valor numérico de la tabla ASCII y no dará excepción, pero no estoy seguro de ello. Cual es la excepción que quieres capturar?

Te lo respondo yo.
Tu primer pregunta y segunda pregunta:

Throws:
InputMismatchException - if the next token does not match the Integer regular expression, or is out of range
NoSuchElementException - if input is exhausted
IllegalStateException - if this scanner is closed

Esta mas que claro el por que del try catch. aunque como dije yo lo hubiera realizado de otra forma con un while(!Scanner.hasNext()) De esa forma se pausa el programa por el Scanner.hasNext().

Código: [Seleccionar]
public boolean hasNext():

Finds and returns the next complete token from this scanner. A complete token is preceded and followed by input that matches the delimiter pattern. This method may block while waiting for input to scan, even if a previous invocation of hasNext() returned true.

Y luego preguntando si hay un entero

Código: [Seleccionar]
public boolean hasNextInt()
Returns true if the next token in this scanner's input can be interpreted as an int value in the default radix using the nextInt() method. The scanner does not advance past any input.


Con respecto a los problemas es como se maneja el buffer de entrada. Tenes que pensarlo como en un buffer FIFO.
Casi todos los del Scanner como .next() .nexLine() utilizan el demarcador de salto de linea \n (Enter)
Mientras que el .nextInt() no lo hace.

Por eso mismo si uno escribe

"10 20 35 80 \n pepito no hizo nada etc"

Si a esa entrada le haces un .nextInt creo que deberia salir:
10
el proximo nextInt
20
y cuando tire el 80 quedaria algo asi:
" \n pepito no hizo nada etc"
Ya no hay mas int por lo cual tiraria una excepcion.
Distinto es un next() que te devuelve TODO lo ingresado y un nextLine el cual te devolveria "10 20 35 80 " y dejaria en el buffer " pepito no hizo nada etc"

Entonces el trata primero de leer un .nextInt() con las siguientes posibilidades:
Buffer vacio - Excepcion
No hay un entero - Excepcion

Cuando podria preguntar primero si es que llego algo. o si es un entero para luego tambien poder agregar la opcion de "salir" del programa.
Por otro parte el nextInt como bien puse arriba no se bloquea para esperar un dato. Si no que intenta indefinidamente.

Ahora que veo crei que agregando el next() seria suficiente como para limpiar el buffer, y evitar esto pero no fue asi.

En fin. Esto es lo que entendi yo de como funciona el Scanner y la entrada de system
Con respecto al subforo, no lo pense en "compilado e interpretados" sino en popular el foro. ya que el foro de python tiene pocos hilos y si alguien mas aporta sobre JAVA va a auemntar y no tener miles de subforos con 5/6 hilos.
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 15 de Septiembre de 2015, 16:33:44
para resolver problemas tan simples como ese no hay programa que supere a matlab en matlab eso seria muy facil mas o menos seria asi:
syms x;
b=input('inserte el valor de b')
m=input('inserte el valor de m')
funcion=m*x+b;
plot(x,y), faltaria especificar el intervalo eso mas tarde lo pongo porque ahorita no tengo acceso a matlab, ves lo facil que es en matlab yo no lo usaria para
resolver algo tan simple como eso, deberian abrir un subforo de matlab y yo podria ser moderador matlab es muy facil yo hice un programa en matlab que
resuelve todos los casos de factorizacion exepto factor comun y por agrupacion, fue muy facil, reto a alguien a que lo haga en java para comparar cuantas lineas
le salen en java resolviendo los casos de factorizacion haber si java lo hace mas rapido que matlab no creo
Título: Re: Mi tutorial de JAVA
Publicado por: KILLERJC en 15 de Septiembre de 2015, 18:30:55
Citar
ves lo facil que es en matlab yo no lo usaria para
resolver algo tan simple como eso, deberian abrir un subforo de matlab y yo podria ser moderador matlab es muy facil yo hice un programa en matlab que
resuelve todos los casos de factorizacion exepto factor comun y por agrupacion, fue muy facil, reto a alguien a que lo haga en java para comparar cuantas lineas
le salen en java resolviendo los casos de factorizacion haber si java lo hace mas rapido que matlab no creo

Yo tambien trabaje en matlab, asi por encima pero si es bastante util, el tema pasa no por que es mas facil, sino por que es otro lenguaje y aprenderlo.
Es lo mismo que decirle a los usuarios de Basic "No uses BASIC" cuando todos lso fabricantes eligen C para sus compiladores. Pero sobre gustos no hay nada escrito. Hasta en python hubiera sido mas facil.
Son distintas herramientas, en matlab no te vas a poner a programar un servidor por ejemplo.

Como hizo el creador del post es un tutorial. comienza por lo mas basico, no vas a empezar a trabajar con sockets/multi-thread/etc/etc si ni siquiera sabes hacer un 1+1 en ese lenguaje, es lo mismo con los microcontroladores, no comenzas haciendo una aparato que va a ir al espacio exterior, comenzas encendiendo un led, tomando los datos de un pulsador y luego vas creciendo y agregando a medida que vas avanzando.
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 15 de Septiembre de 2015, 18:50:30
oye killer pero a mi me parece que matlab es un lenguaje muy poderoso y sigue en evolucion continua, por ejemplo investigando un poco sobre robots humanoides me di cuenta que todos se pueden programar con matlab, ademas matlab se comunica con raspberry pi, con arduino y para todo lo de matematicas y control matlab es excelente y me parace que habiendo un foro de robotica deberia haber uno de matlab ya que es un software poderoso y bastante util
Título: Re: Mi tutorial de JAVA
Publicado por: CompSystems en 17 de Septiembre de 2015, 23:31:46
Si no me equivoco MATLAB esta programado en JAVA, MATLAB es un software para el campo científico y educativo, a diferencia de JAVA, MATLAB posee un super poderoso motor de calculo numérico, ideal para la investigación y proyectos universitarios, con JAVA creas cualquier cosa, matlab apenas soporta programacion orientada a objetos, también espero crear un tuto de matlab  :)

en estos días continuo con el tuto de JAVA
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 18 de Septiembre de 2015, 10:10:56
con matlab tambien se pueden hacer aplicaciones graficas y es muy util, si crees que con java se puede hacer caulquier cosa intenta sacar todos los casos de factorizacion en java hasta los que aparecen en wikipedia, intenta sacar factorizacion por division sintetica y el caso de pitagoras yo lo hice en matlab y fue muy facil
Título: Re: Mi tutorial de JAVA
Publicado por: juaperser1 en 18 de Septiembre de 2015, 10:34:52
Citar
con matlab tambien se pueden hacer aplicaciones graficas y es muy util, si crees que con java se puede hacer caulquier cosa intenta sacar todos los casos de factorizacion en java hasta los que aparecen en wikipedia, intenta sacar factorizacion por division sintetica y el caso de pitagoras yo lo hice en matlab y fue muy facil 

Matlab es un lenguaje matemático, que se apoya en otros lenguajes para ejecutar los calculos, es decir el lenguaje matlab no "existe" como tal, matlab es un software matemático, cuya interfaz gráfica esta realizada en java, para hacerlo portable en los distintos sistemas operativos, y las operaciones están contenidas en DLL en c++. Así utilizan la portabilidad de java mas la potencia de operación de c++. Lo que quiero decir que lo que usas con matlab es fácil porque es como una gran librería de matematicas, pero por debajo tiene rutinas muy complicadas de c.



Un saludo
Título: Re: Mi tutorial de JAVA
Publicado por: KILLERJC en 18 de Septiembre de 2015, 10:55:22
con matlab tambien se pueden hacer aplicaciones graficas y es muy util, si crees que con java se puede hacer caulquier cosa intenta sacar todos los casos de factorizacion en java hasta los que aparecen en wikipedia, intenta sacar factorizacion por division sintetica y el caso de pitagoras yo lo hice en matlab y fue muy facil

Te voy a contestar.

No se trata de que MATLAB no lo pueda hacer, sabemos que lo puede hacer, y que es mucho mas facil de hacerlo por que esta diseñado para eso, hasta te hace el grafico con un comando. Pero no se trata de eso el tutorial, Se trata de hacerlo en JAVA.
Es mas son cosas totalmente disintintas una de otra. Por ejemplo si estoy programando todo en C. No voy a ponerle al microcontrolador Linux + Matlab (suponiendo que ande todo) para solo hacer un array como el que hicimos. Lo puedo hacer en C, es insensato.

Si necesitas hacer un applet o un servlet, no vas a instalar MATLAB, tratar que se conecten con JAVA, ejecutar y que salgan los valores a donde sea. vas y lo haces en JAVA. Es mas largo? Si es mas largo. Pero no es lo mismo.

Para aportar al hilo, aca encontre esto para factorizar en JAVA
Código: Java
  1. import java.util.Vector;
  2.  
  3. public class Factorizar
  4. {
  5.     public int[] factorizar(int numero) {
  6.         Vector listaPrimos = new Vector();
  7.        
  8.         if (numero <= 1) {
  9.             throw new IllegalArgumentException("El número debe ser >= 2");
  10.         }
  11.        
  12.         int aux = numero;
  13.         int i = 2;
  14.        
  15.         while (aux != 1) {
  16.             if (esPrimo(i)) {                
  17.                 while ( aux % i == 0)) {
  18.                     listaPrimos.add(new Integer(i));
  19.                     aux = aux / i;
  20.                 }
  21.             }
  22.             i++;
  23.         }
  24.        
  25.         int[] resultado = new int[listaPrimos.size()];
  26.         for (int j = 0; j < listaPrimos.size(); j++) {
  27.             resultado[j] = ((Integer)listaPrimos.get(j)).intValue();
  28.         }
  29.        
  30.         return resultado;
  31.     }
  32.  
  33.    
  34.    
  35.     private boolean esPrimo(int p) {
  36.        
  37.         boolean res = true;
  38.         for (int i = 2; i < p; i++) {
  39.             if ( p % i == 0)) {
  40.                 res = false;
  41.             }
  42.         }
  43.        
  44.         return res;
  45.     }
  46.  
  47. }


Citar
por ejemplo investigando un poco sobre robots humanoides me di cuenta que todos se pueden programar con matlab

Entonces investigaste mal. MATLAB no programa el microcontrolador 'per se' . Si puede comunicarse con el mismo, ejemplo como por un PORT serial. Esto te lleva a hacerle un programita al microcontrolador que supongamos cuando reciba la letra 'a' por UART te envie la informacion de los sensores. Luego en MATLAB tomas esos datos, y puede o no calcularlo y enviarselo o no al microcontrolador.

Esto podes pensarlo de 2 formas.

1- Tu microcontrolador es un "puente" a datos al plano fisico, esto si es de una via, es decir Solo de Microntrolador -> PC
2- MATLAB es el cerebro de tu microcontrolador. Esto si es Full-Duplex la comunicacion, un ida y vuelta

En si, si miras todo el conjunto en el caso 2, PC(con matlab) + microntrolador, al cambiarle la configuracion del matlab, estarias "cambiando el programa" del robot, entre comillas por que realmente el robot no hace nada mas que enviar datos, recibirlos y actuar segun los datos.
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 18 de Septiembre de 2015, 23:28:47
hola amigos ahora si voy a aportar a este tutorial de java sin salirme del tema voy a poner unos cuantos programas que hice en java por alla en segundo semestre en el 2010 cuando era un monstruo para java era tan pasado que tenia un mal profesor en lab de programacion y el me ponia a mi a dar la clase por eso el tercer corte de lab me quedo en 4.8 sin mas preambulos les dejo un programa un applet en java calculadora con muchos botones
Código: [Seleccionar]
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class BotonesApplet extends Applet implements ActionListener{
Label l1, l2, l3;
   TextField t1,t2, t3;
   Button b1,b2, b3, b4, b5, b6, b7, b8, b9;
   private double Integer;
   
   
   public BotonesApplet(){
   l1= new Label("Numero 1");
   t1= new TextField (8);
   l2= new Label ("Numero 2");
   t2= new TextField(8);
   b1= new Button ("Suma");
   b2= new Button ("Resta");
   b3= new Button ("Multiplica");
   b4= new Button ("Divide");
   b5= new Button ("Raiz de 1");
   b6= new Button ("Raiz de 2");
   b7= new Button ("Mayor");
   b8= new Button ("Limpia");
   b9= new Button ("Menor");
   l3= new Label ("Resultado");
   t3= new TextField (8);
   add(l1);
   add(t1);
   add(l2);
   add(t2);
   add(b1);
   add(b2);
   add(b3);
   add(b4);
   add(b5);
   add(b6);
   add(b7);
   add(b8);
   add(b9);
   add(l3);
   add(t3);
   b1. addActionListener(this);
   b2. addActionListener(this);
   b3. addActionListener(this);
   b4. addActionListener(this);
   b5. addActionListener(this);
   b6. addActionListener(this);
   b7. addActionListener(this);
   b8. addActionListener(this);
   b9. addActionListener(this);
   }
   public void actionPerformed(ActionEvent ae) {
   if (ae.getSource() == b1) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   t3.setText(""+Math.abs(Numero1+Numero2));
   }
   if (ae.getSource() == b2) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   if (Numero1<Numero2)
   t3.setText(""+-Math.abs(Numero1-Numero2));
   else
   t3.setText(""+Math.abs(Numero1-Numero2));
   }
   
   if (ae.getSource() == b3) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   t3.setText(""+Math.abs(Numero1*Numero2));
   }
   if (ae.getSource() == b4) {
   float Numero1 = Float.parseFloat(t1.getText());
   float Numero2 = Float.parseFloat(t2.getText());
   t3.setText(""+Math.abs(Numero1/Numero2));
   }
   if (ae.getSource() == b5) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   t3.setText(""+Math.sqrt(Numero1));
   }
   if (ae.getSource() == b6) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   t3.setText(""+Math.sqrt(Numero2));
   }
   if (ae.getSource() == b7) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   if (Numero1>Numero2)
   t3.setText(""+Numero1);
   if (Numero2>Numero1)
   t3.setText(""+Numero2);
   }
   if (ae.getSource() == b9) {
   double Numero1 = Double.parseDouble(t1.getText());
   double Numero2 = Double.parseDouble(t2.getText());
   if (Numero1<Numero2)
   t3.setText(""+Numero1);
   if (Numero2<Numero1)
   t3.setText(""+Numero2);
   }
   if (ae.getSource() == b8) {
   t1.setText("");
         t2.setText("");
         t3.setText("");
   }}}
espero le sirva a alguien
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 18 de Septiembre de 2015, 23:58:39
hola aqui les dejo dos programas mas parecidos pero no se cual es la dieferencia entre ellos porque no toco java desde el 2011 pero enserio era muy pasado si alguno de ustedes pudiera probar estos dos programas y decirme cual es la diferencia se los agradeceria muchisimo
Código: [Seleccionar]
package trinomio;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class trinomio extends Applet implements ActionListener{
    Label l1, l2, l3, l4, l5;
    TextField t1,t2, t3, t4, t5;
    Button b1;
    private double Integer;
   
    public trinomio(){
    l1= new Label("a");
    t1= new TextField (4);
    l2= new Label("b");
    t2= new TextField (4);
    l3= new Label("c");
    t3= new TextField (4);
    b1= new Button ("calcula");
    l4= new Label("Raiz 1");
    t4= new TextField (8);
    l5= new Label("Raiz 2");
    t5= new TextField (8);
    add(l1);
   add(t1);
   add(l2);
   add(t2);
   add(l3);
   add(t3);
   add(b1);
   add(l4);
   add(t4);
   add(l5);
   add(t5);
b1. addActionListener(this);
}
    public void actionPerformed(ActionEvent ae) {
   if (ae.getSource() == b1) {
   double a = Double.parseDouble(t1.getText());
   double b = Double.parseDouble(t2.getText());
   double c = Double.parseDouble(t3.getText());
   int d = (int) (b*b-4*a*c);
   int e = (int) Math.sqrt(d);
   int f= (int) (2*a);
   int g = (int) (-b+e);
   int h = -g/f;
   int i = (int) (-b-e);
   int j = -i/f;
t4.setText(""+Math.abs(+h));
   t5.setText(""+-Math.abs(+j));
   
}
}
private int sqrt(double d) {
// TODO Auto-generated method stub
return 0;
}}




y el segundo y no vayan a decir que es el mismo porque los tengo en carpetas diferentes alguna cosa deben tener distinta pero no me acuerdo
Código: [Seleccionar]
package trinomio2;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class trinomio extends Applet implements ActionListener{
    Label l1, l2, l3, l4, l5;
    TextField t1,t2, t3, t4, t5;
    Button b1;
    private double Integer;
   
    public trinomio(){
    l1= new Label("a");
    t1= new TextField (4);
    l2= new Label("b");
    t2= new TextField (4);
    l3= new Label("c");
    t3= new TextField (4);
    b1= new Button ("calcula");
    l4= new Label("Raiz 1");
    t4= new TextField (8);
    l5= new Label("Raiz 2");
    t5= new TextField (8);
    add(l1);
   add(t1);
   add(l2);
   add(t2);
   add(l3);
   add(t3);
   add(b1);
   add(l4);
   add(t4);
   add(l5);
   add(t5);
b1. addActionListener(this);
}
    public void actionPerformed(ActionEvent ae) {
   if (ae.getSource() == b1) {
   double a = Double.parseDouble(t1.getText());
   double b = Double.parseDouble(t2.getText());
   double c = Double.parseDouble(t3.getText());
   int d = (int) (b*b-4*a*c);
   int e = (int) Math.sqrt(d);
   int f= (int) (2*a);
   int g = (int) (-b+e);
   int h = -g/f;
   int i = (int) (-b-e);
   int j = -i/f;
t4.setText(""+Math.abs(+h));
   t5.setText(""+-Math.abs(+j));
   
}
}
private int sqrt(double d) {
// TODO Auto-generated method stub
return 0;
}}




aunque les va a parecer que es el mismo si son dos dieferentes que hice para aprobar un curso online la diferencia debe ser pequeñisima pero yo se que deben tener alguna diferencia
Título: Re: Mi tutorial de JAVA
Publicado por: KILLERJC en 19 de Septiembre de 2015, 00:08:23
Son iguales los 2 codigos, solo le cambio el nombre de trinomio a trinomio2.

A simple vista parecian iguales. De todas formas busque un comparador online por si las dudas, y cuando copias y pegas el codigo, lo unico que cambia es eso que dije.

https://www.diffchecker.com/diff

Por si las dudas que no funciona bien eso, use el fc de windows.

Código: [Seleccionar]
C:\Users\XXXXXXXXX\Desktop>fc a.txt b.txt
Comparando archivos a.txt y B.TXT
***** a.txt
package trinomio2;
import java.awt.*;
***** B.TXT
package trinomio;
import java.awt.*;
*****

Tal ves intentaste hacer una copia y luego modificarla, y quedo como algo pendiente. Me suele pasar

PD: Gracias por los codigos
Título: Re: Mi tutorial de JAVA
Publicado por: yair_xiox en 19 de Septiembre de 2015, 00:10:50
killler debes tener razon ademas hace mucho tiempo no toco java
Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 27 de Diciembre de 2015, 18:27:01
De tantos videotutos, lo importante es la capacidad de enseñar, y que con menos duración se alcance mas,
Uno de ellos es el siguiente curso video tutorial

Tutorial Java #1 - Introducción

Tutorial Java #2 - Clases Objetos e Instancia


Cual es su apreciación de este video tutorial Excelente, bueno, regular, malo?

Resumen de los 2 primeros videotutos
//
Código: Java
  1. // PROYECTO
  2. // Nombre Identificador: Ejemplo_1 /!\ Debe iniciar mejor en mayúsculas
  3. // Info: primer ejemplo
  4.  
  5. // ARCHIVO#1
  6. // Nombre Identificador: Ejemplo_1 Extensión .java (Ejemplo_1.java) /!\ Debe iniciar mejor en mayúsculas
  7.  
  8. // PAQUETE#1
  9. // Palabra de codificación: package
  10. // Nombre Identificador: paquete_1
  11. // Info: contiene todas las clases para el archivo Ejemplo_1.java
  12. // Sintaxis: package NombreIdentificador;
  13. package paquete_1;
  14.  
  15. // CLASE#1
  16. // Palabra de codificación: class
  17. // Nombre Identificador: Ejemplo_1, /!\ debe tener el mismo nombre del archivo pero sin extensión. Debe iniciar mejor en mayúsculas
  18. // Tipo de Acceso: Publica, Palabra de codificación: public,
  19. // Info: debe ser publica la clase principal, porque ?
  20. // Sintaxis: TipoDeAcceso class NombreIdentificador{ bloqueDeInstrucciones }
  21. public class Ejemplo_1 {
  22.  
  23.         // Métodos o funciones pertenecientes a la clase Ejemplo_1
  24.         // MÉTODO#1 (PRINCIPAL)
  25.         // Nombre Identificador: main()
  26.         // Parámetros: 1 arreglo de datos.
  27.         // Nombre Identificador del parámetro: args_entrada.
  28.         // Retorno del método: Ningún valor, Palabra de codificación: void.
  29.         // Instancia: Estática, Palabra de codificación: static.
  30.         // Info: toda clase ESTATICA no requiere de un objeto para ser llamada
  31.         // Tipo de Acceso: Publica, Palabra de codificación: public.
  32.         // Info: ...
  33.         // Sintaxis: TipoDeAcceso ?? RetornoDelMetodo NombreIdentificador(
  34.         // parámetros ){ bloqueDeInstrucciones }
  35.         public static void main(String args_entrada[]) {
  36.                 // Referencia de clase: NombreDeLaClase.MetodoEstatico(parámetros);
  37.                 // no requiere de un objeto para ser llamado el metodo saludar()
  38.                 Persona.saludar();
  39.  
  40.                 // Creando un objeto u intancia de clase:
  41.                 // Sintaxis: NombreDeLaClase NombreIdentificadorDelObjeto = new NombreIdentificadorDelMetodoConstructor(parámetros);
  42.                 Persona juan = new Persona();
  43.                
  44.                 // llamada del método
  45.                 // Sintaxis:
  46.                 // NombreIdentificadorDelObjeto.NombreIdentificadorDelMetodo(parámetros);
  47.                 juan.saludar();
  48.                 // la sentencia anterior se marca como ADVERTENCIA, pues se debe usar Referencia de clase ya que saludar es un metodo estatico
  49.         }
  50. }
  51.  
  52. // CLASE#2
  53. // Nombre Identificador: Persona
  54. class Persona {
  55.         // Métodos o funciones pertenecientes a la clase
  56.         // METODO_CONSTRUCTOR
  57.         // Nombre Identificador: Persona(), Debe ser igual al nombre de la clase
  58.         // Parámetros: none o ninguno (void)
  59.         // Sintaxis: TipoDeAcceso NombreDeLaClase( parametros ){
  60.         // bloqueDeInstrucciones }
  61.         public Persona() {
  62.         }
  63.  
  64.         // Métodos o funciones pertenecientes a la clase
  65.         // METODO#1
  66.         // Nombre Identificador: Persona()
  67.         // Parametros: none o ninguno (void)
  68.         // Retorno del método: Ningún valor, Palabra de codificación: void.
  69.         // Instancia: Estática, Palabra de codificación: static.
  70.         // Tipo de Acceso: Publica
  71.         public static void saludar() {
  72.                 // Uso de la clase SYSTEM, objeto OUT, metodo PRINTLN
  73.                 System.out.println("Hola mundo");
  74.                
  75.                 //retorna desde la posicion donde lo llamo.
  76.                 return;
  77.         }
  78.  
  79. }
  80.  
  81. // Salida
  82. // Hola mundo
  83. // Hola mundo
Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 29 de Diciembre de 2015, 02:05:36
Tutorial Java #3 - Tipos de datos



código completando el videotuto anterior
Código: Java
  1. package paquete_1;
  2.  
  3. public class TiposDeDatos {
  4.  
  5.         public static void main(String args_entrada[]) {
  6.                 // Tipos Primitivos o tipos de datos simples, inician con minúscula:
  7.                 // void, boolean, char, byte, short, int, long, float, double
  8.                 // Tipos complejos o estructuras u objetos en si, denominados Wrappers,
  9.                 // inician con mayúscula, CARÁCTER Y ENTERO son palabras completas :
  10.                 // Void, Boolean, Character, Byte, Short, Integer, Long, Float, Double
  11.  
  12.                 // BOOLEAN: Boleano
  13.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  14.                 // | boolean         | -      | false       | true        | false        | Boolean   |
  15.                 boolean bolmin = Boolean.FALSE;
  16.                 boolean bolmax = Boolean.TRUE;
  17.                 boolean bol1 = false;
  18.                 boolean bol2 = true;
  19.                 System.out.println("Boolean mínimo: " + bolmin);
  20.                 System.out.println("Boolean máximo: " + bolmax);
  21.                 System.out.println("b1: " + bol1);
  22.                 System.out.println("b2: " + bol2);
  23.                 System.out.println("");
  24.                 System.out.println("");
  25.                
  26.                 // CHAR:
  27.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo    | ValorDefault   |"Wrapper"|
  28.                 // | char            | 16-bit | Unicode 0   | Unicode 2^16-1 | `\u0000' (null)|Character|
  29.                 char cmin = Character.MIN_VALUE;
  30.                 char cmax = Character.MAX_VALUE;
  31.                 char c1 = '\u0000';
  32.                 char c2 = 65535;
  33.                 char char_n74 = 74;
  34.                 char char_n65 = 65;
  35.                 char char_n86 = 86;
  36.                 char char_A = 'A';
  37.                 System.out.println("# mínimo: -2^16 = " + cmin);
  38.                 System.out.println("# máximo: +2^16-1 = " + cmax);
  39.                 System.out.println("c1: " + c1);
  40.                 System.out.println("c2: " + c2);
  41.                 System.out.println("JAVA = " + char_n74 + char_n65 + char_n86 + char_A );
  42.                 System.out.println("");
  43.  
  44.                 // BYTE:
  45.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  46.                 // | byte            | 8-bit  | -128        | +127        | (byte)0      | Byte      |
  47.  
  48.                 //  valores mínimo y máximo
  49.                 byte bmin = Byte.MIN_VALUE;
  50.                 byte bmax = Byte.MAX_VALUE;
  51.                 byte b1 = -128;
  52.                 byte b2 = 127;
  53.                 // byte b3 = 128; el lado derecho se desborda
  54.                 System.out.println("# mínimo: -2^7 = " + bmin);
  55.                 System.out.println("# máximo: +2^7-1 = " + bmax);
  56.                 System.out.println("b1: " + b1);
  57.                 System.out.println("b2: " + b2);
  58.                 System.out.println("");
  59.  
  60.                 // SHORT: Entero Corto
  61.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  62.                 // | short           | 16-bit | -2^15       | +2^15-1     | (short)0     | Short     |
  63.  
  64.                 //  valores mínimo y máximo
  65.                 short smin = Short.MIN_VALUE;
  66.                 short smax = Short.MAX_VALUE;
  67.                 short s1 = -32768;
  68.                 short s2 = 32767;
  69.                 System.out.println("# Entero Corto mínimo: -2^15 = " + smin);
  70.                 System.out.println("# Entero Corto máximo: +2^15-1 = " + smax);
  71.                 System.out.println("s1: " + s1);
  72.                 System.out.println("s2: " + s2);
  73.                 System.out.println("");
  74.  
  75.                 // INTEGER: Entero
  76.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  77.                 // | int             | 32-bit | -2^31       | +2^31-1     | 0            | Integer   |
  78.  
  79.  
  80.                 //  valores mínimo y máximo
  81.                 int imin = Integer.MIN_VALUE;
  82.                 int imax = Integer.MAX_VALUE;
  83.                 // En la asignación de números no requieren sufijos
  84.                 int i1 = -2147483648;
  85.                 int i2 = 2147483647;
  86.                 //int i3 = -2^31;
  87.                 //int i4 = +2^31-1;
  88.  
  89.                 System.out.println("# Entero mínimo: -2^31 = " + imin);
  90.                 System.out.println("# Entero máximo: +2^31-1 = " + imax);
  91.                 System.out.println("i1: " + i1);
  92.                 System.out.println("i2: " + i2);
  93.                 System.out.println("");
  94.  
  95.                 // LONG: Entero largo
  96.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  97.                 // | long            | 64-bit | -2^63       | +2^63-1     | 0L           | Long      |
  98.  
  99.                 // se requiere sufijo, L mayúscula o l minúscula
  100.                 // se puede obviar el sufijo si esta en el rango de ENTERO o menor
  101.                 long lmin = Long.MIN_VALUE;
  102.                 long lmax = Long.MAX_VALUE;
  103.  
  104.                 long l1 = -9223372036854775808L;
  105.                 long l2 = 9223372036854775807l;
  106.                 long l3 = 2147483648L;
  107.                 long l4 = 2147483647;
  108.                 // long l5 = 2147483648; // genera un error
  109.  
  110.                 System.out.println("# Entero largo mínimo: -2^63 = " + lmin);
  111.                 System.out.println("# Entero largo máximo: +2^63 = " + lmax);
  112.                 System.out.println("l1: " + l1);
  113.                 System.out.println("l4: " + l4);
  114.                 System.out.println("");
  115.  
  116.                 // LONG: Numero en punto flotante
  117.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  118.                 // | float           | 32-bit | IEEE754     | IEEE754     | 0.0f         | Float     |
  119.                 // Se requiere el sufijo, F mayúscula o f minúscula
  120.                 float fmin = Float.MIN_VALUE;
  121.                 float fmax = Float.MAX_VALUE;
  122.                 float f1 = 1.4E-45F;
  123.                 float f2 = 3.4028235E38f;
  124.                 float f3 = 1f;
  125.                 float f4 = 1.0f;
  126.                 System.out.println("# foltante mínimo: " + fmin);
  127.                 System.out.println("# foltante máximo: " + fmax);
  128.                 System.out.println("f1: " + f1);
  129.                 System.out.println("f2: " + f2);
  130.                 System.out.println("f3: " + f3);
  131.                 System.out.println("f4: " + f4);
  132.                 System.out.println("");
  133.                 // Los numeros float se imprimen con punto, comparar f3 y f4
  134.  
  135.                 // DOUBLE: Numero en doble presicion flotante
  136.                 // | TipoDePrimitivo | Tamaño | ValorMínimo | ValorMáximo | ValorDefault | "Wrapper" |
  137.                 // | double          | 64-bit | IEEE754     | IEEE754     | 0.0d         | Double    |
  138.  
  139.                 // sufijo, D mayuscula o d
  140.                 double dmin = Double.MIN_VALUE;
  141.                 double dmax = Double.MAX_VALUE;
  142.                 double d1 = 4.9E-324d;
  143.                 double d2 = 1.7976931348623157E308d;
  144.                 double d3 = 1.7976931348623157E308; // sufijo ???
  145.                 System.out.println("# double mínimo: " + dmin);
  146.                 System.out.println("# double máximo: " + dmax);
  147.                 System.out.println("d1: " + d1);
  148.                 System.out.println("d2: " + d2);
  149.                 System.out.println("d3: " + d3);
  150.                 System.out.println("");redactando ...
Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 31 de Diciembre de 2015, 02:39:39
 Se muestra el uso de métodos GET y SET

Video 5, 6




//
Código: Java
  1. // Archivo Main.java
  2.  
  3. // Se muestra el uso de métodos GET y SET
  4. // las personas creadas como persona_1 y persona_2 usan la clase PERSONA dentro del mismo archivo (INTERNO)
  5. // mientras que las personas creadas como persona_3 y persona_4 usan la clase PERSONA en archivo EXTERNO
  6. // Como el constructor de la clase PERSONA (Archivo interno) no define los campos o variables instancia, por defecto JAVA  asigna a las cadena
  7. // como NULL, enteros como 0, etc
  8.  
  9. // Se definen 2 constructores de la clase PERSONA (Archivo Externo) el primero define el campo NOMBRE, el 2do no realiza nada
  10. // el campo o atributo EDAD se definió como estático, entonces permanece igual entre diferentes objetos
  11.  
  12. package paquete_1;
  13.  
  14. public class Main {
  15.         public static void main(String args_entrada[]) {
  16.  
  17.                 Persona_archivo_Interno persona_1 = new Persona_archivo_Interno();
  18.                 persona_1.setNombre("Juan");
  19.                 persona_1.setEdad(38);
  20.                 persona_1.mostrarDatos();
  21.                 System.out.println("\n");
  22.  
  23.                 Persona_archivo_Interno persona_2 = new Persona_archivo_Interno();
  24.                 // persona_2.setNombre("Jaime");
  25.                 // persona_2.setEdad(39);
  26.                 persona_2.mostrarDatos();
  27.                 System.out.println("\n");
  28.  
  29.                 Persona_archivo_Externo persona_3 = new Persona_archivo_Externo("Carla");
  30.                 // persona2.setNombre("Carla");
  31.                 persona_3.setEdad(14);
  32.                 persona_3.mostrarDatos();
  33.                 System.out.println(Persona_archivo_Externo.getEdad() + "\n");
  34.  
  35.                 Persona_archivo_Externo persona_4 = new Persona_archivo_Externo();
  36.                 persona_4.setNombre("Jorge");
  37.                 // persona_4.setEdad(55);
  38.                 persona_4.mostrarDatos();
  39.                 System.out.println(Persona_archivo_Externo.getEdad() + "\n");
  40.  
  41.                 Persona_archivo_Externo persona_5 = new Persona_archivo_Externo("Lucas", 12);
  42.                 // persona_5.setNombre("Lucas");
  43.                 // persona_5.setEdad(10);
  44.                 persona_5.mostrarDatos();
  45.         }
  46. }
  47.  
  48. class Persona_archivo_Interno {
  49.         // 1: CAMPOS
  50.         // Identificadores instancia de la clase
  51.         private String nombre;
  52.         private int edad;
  53.         int b;
  54.  
  55.         // 2: CONSTRUCTOR
  56.         // Función o método CONSTRUCTOR para inicializar los identificadores
  57.         // instancia de la clase
  58.         public Persona_archivo_Interno() {
  59.                 // No hace nada
  60.         }
  61.  
  62.         // 3: METODOS
  63.         public void setNombre(String nombre) {
  64.                 // this.nombre es el campo y no parametro
  65.                 // se usa THIS para diferenciar PARAMETRO de VARIABLE cuando tienen el
  66.                 // mismo nombre
  67.                 this.nombre = nombre;
  68.                 // retorna desde la posición donde lo llamo.
  69.                 return;
  70.         }
  71.  
  72.         public void setEdad(int edad_) {
  73.                 // como el parámetro es diferente a la variable de campo, no se requiere
  74.                 // THIS
  75.                 edad = edad_;
  76.                 // retorna desde la posición donde lo llamo.
  77.                 return;
  78.         }
  79.  
  80.         public int getEdad() {
  81.                 return edad;
  82.         }
  83.  
  84.         public String getNombre() {
  85.                 return nombre;
  86.         }
  87.  
  88.         public void mostrarDatos() {
  89.                 // this.nombre es el campo y no parámetro
  90.                 System.out.println("El nombre de la persona es: " + nombre);
  91.                 System.out.println("La edad de " + nombre + " es: " + edad + " años");
  92.                 // retorna desde la posición donde lo llamo.
  93.                 return;
  94.         }
  95. }
  96.  
  97. //

//
Código: Java
  1. // Archivo Persona_archivo_Externo.java
  2.  
  3. package paquete_1;
  4.  
  5. class Persona_archivo_Externo {
  6.         // 1: CAMPOS
  7.         // Identificadores instancia de la clase
  8.         private String nombre;
  9.         public static int edad;
  10.         int b;
  11.  
  12.         // 2: CONSTRUCTOR
  13.         // Función o método CONSTRUCTOR para inicializar los identificadores
  14.         // instancia de la clase
  15.         public Persona_archivo_Externo(String nombre) {
  16.                 this.nombre = nombre;
  17.         }
  18.  
  19.         public Persona_archivo_Externo(String nombre, int edad) {
  20.                 this.nombre = nombre;
  21.                 this.edad = edad;
  22.         }
  23.  
  24.         public Persona_archivo_Externo() {
  25.         }
  26.  
  27.         // 3: METODOS clase Persona_archivo_Externo
  28.         public void setNombre(String nombre) {
  29.                 // this.nombre es el campo y no parámetro
  30.                 this.nombre = nombre;
  31.         }
  32.  
  33.         public void setEdad(int edad_) {
  34.                 // this.nombre es el campo y no parámetro
  35.                 edad = edad_;
  36.         }
  37.  
  38.         public static int getEdad() {
  39.                 return edad;
  40.         }
  41.  
  42.         public String getNombre() {
  43.                 return nombre;
  44.         }
  45.  
  46.         public void mostrarDatos() {
  47.                 // this.nombre es el campo y no parámetro
  48.                 System.out.println("El nombre de la persona es: " + nombre);
  49.                 System.out.println("la edad de " + nombre + " es: " + edad + " años");
  50.                 // retorna desde la posición donde lo llamo.
  51.                 return;
  52.         }
  53. }
  54. //

Salida

El nombre de la persona es: Juan
La edad de Juan es: 38 años


El nombre de la persona es: null
La edad de null es: 0 años


El nombre de la persona es: Carla
la edad de Carla es: 14 años
14

El nombre de la persona es: Jorge
la edad de Jorge es: 14 años
14

El nombre de la persona es: Lucas
la edad de Lucas es: 12 años
Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 05 de Enero de 2016, 23:27:19
Tutorial Java # 8 Leer Datos Desde La Consola

//
Código: Java
  1. package paquete_1;
  2. //import java.util.*;
  3. import java.util.Scanner;
  4. // uso de la clase Scanner que se encuentra en el paquete JAVA que a su vez usa el paquete UTIL para capturar datos por teclado
  5.  
  6. public class Entrada_de_datos {
  7.         private static Scanner inputKeyBoard;
  8.  
  9.         public static void main(String args_entrada[]) {
  10.  
  11.                 // Se crea una instancia llamada inputKeyBoard
  12.                 // para especificar el escaneo de captura de datos por lo general es una
  13.                 // cadena que se encuantra en la clase SYSTEM, Objeto IN
  14.                 inputKeyBoard = new Scanner(System.in);
  15.  
  16.                 System.out.println("Entre un texto");
  17.                 String capturaDeTexto = inputKeyBoard.nextLine();
  18.                 System.out.println("El texto es " + capturaDeTexto);
  19.  
  20.                 System.out.println("Entre un numero");
  21.                 int capturaEntero = inputKeyBoard.nextInt();
  22.                 System.out.println("El numero es " + capturaEntero);
  23.                
  24.                 System.out.println("Entre un numero entero");
  25.                 int capturaEntero2 = Integer.parseInt(inputKeyBoard.nextLine());
  26.                 System.out.println("El numero es " + capturaEntero2);
  27.         }
  28. }
  29. //


Video #9 & 10 ENCAPSULAMIENTO
//
Código: Java
  1. //Archivo Main.java
  2. package paquete_1;
  3. //[youtube]https://www.youtube.com/watch?v=pxsEpHxzF_g[/youtube]
  4. // paquete paquete_2, Clase Bank
  5. import paquete_2.Bank;
  6.  
  7. public class Main {
  8.         public static void main(String args_entrada[]) {
  9.                
  10.                 // usuario del banco
  11.                 Bank usuario_jaime = new Bank();
  12.                 usuario_jaime.showCash();
  13.                
  14.                 // Para proteger la cuenta el identificador CASH debe ser privado de los contrario la siguiente sentencia se podría ejecutar
  15.                 // y agregar el saldo que quiera
  16.                 // usuario_jaime.cash(60000);
  17.                 // Mientras que con setCash protejo el código y verifica el tope máximo a consignar
  18.                 // usuario_jaime.setCash(6000);
  19.                 usuario_jaime.setCash(4900);
  20.                 usuario_jaime.getCash(4000);
  21.                 usuario_jaime.showCash();
  22.                
  23.                 // Método DEFAULT y PROTECTED no pueden ser llamados desde este paquete
  24.                 // usuario_jaime.metodoDefault();
  25.                 // usuario_jaime.metodoProtected();
  26.         }
  27. }
  28. //
//
Código: Java
  1. //Archivo Bank.java
  2. package paquete_2;
  3.  
  4. public class Bank {
  5.         private String nameAccount;
  6.         private double cash;
  7.         // Como generar código mas rápido
  8.         // [CTRL]+[SPC] nos genera un menu de opciones para agregar GET & SET
  9.        
  10.         public void getCash(double cash ) {
  11.                 if (this.cash >= cash) {
  12.                         System.out.println("Se ha retirado la cantidad de " + cash);
  13.                         // Se resta el retiro
  14.                         this.cash = this.cash - cash;
  15.                         // this.cash -= - cash;
  16.                        
  17.                 } else {
  18.                         System.out.println("No es posible retirar la cantidad, Saldo insuficiente" + cash);
  19.                        
  20.                 }
  21.         }
  22.        
  23.         public void showCash() {
  24.                 System.out.println("Tu saldo actual es " + cash );
  25.         }
  26.        
  27.         public void setNameAccount(String nameAccount) {
  28.                 this.nameAccount = nameAccount;
  29.         }
  30.        
  31.         public String getNameAccount() {
  32.                 return nameAccount;
  33.         }
  34.        
  35.         public void setCash(double cash) {
  36.                 // Limite maximo a agregar
  37.                 if (cash > 5000) {
  38.                         System.out.println("No fue posible agregar saldo de " + cash);
  39.                 } else {
  40.                         System.out.println("Se agrego al saldo un valor de " + cash);
  41.                         this.cash = cash;
  42.                 }
  43.         }
  44.        
  45.         // Método tipo DEFAULT
  46.         // Solo se puede acceder dentro del mismo paquete, la misma clase y clases que sean
  47.         // heredadas
  48.         void metodoDefault() {
  49.  
  50.         }
  51.  
  52.         // Método tipo PROTECTED
  53.         protected void metodoProtected() {
  54.  
  55.         }
  56.  
  57.        
  58.        
  59. }
  60. //


//
Código: Java
  1. //Archivo Employee.java
  2. package paquete_2;
  3.  
  4. public class Employee {
  5.         // se crea una instancia de la clase BANK
  6.         private Bank empleado_1;
  7.  
  8.         // Constructor
  9.         public Employee() {
  10.                 empleado_1 = new Bank();
  11.         }
  12.  
  13.         public void funcion_1() {
  14.                 // uso de los Método DEFAULT y PROTECTED
  15.                 empleado_1.metodoDefault();
  16.                 empleado_1.metodoProtected();
  17.         }
  18.  
  19. }
  20. //
Salida



Tu saldo actual es 0.0
Se agrego al saldo un valor de 4900.0
Se ha retirado la cantidad de 4000.0
Tu saldo actual es 900.0
Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 08 de Enero de 2016, 12:09:07
Video #11 Arreglos


//
Código: Java
  1. //[youtube]https://www.youtube.com/watch?v=w602-Mr_WNY[/youtube]
  2.  
  3. package package_1;
  4.  
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.         private static Scanner inputKeyBoard;
  9.  
  10.         public static void main(String args_entrada[]) {
  11.  
  12.                 inputKeyBoard = new Scanner(System.in);
  13.  
  14.                 // Sintaxis
  15.                 // tipoDeDatoPrimitivo[] nombreDelArreglo = new tipoDeDatoPrimitivo[dimensionOnumeroDeElementos]
  16.                 // Sintaxis aternativa
  17.                 // tipoDeDatoPrimitivo nombreDelArreglo[] = new tipoDeDatoPrimitivo[dimensionOnumeroDeElementos]
  18.                
  19.                 int[] arreglo_1 = new int[3];
  20.                 int arreglo_2[] = new int[3];
  21.  
  22.                 for (int posicion = 0; posicion < arreglo_1.length; posicion++) {
  23.                         System.out.println("ingrese un numero para la posición " + posicion);
  24.                         int capturaDeNumero = inputKeyBoard.nextInt();
  25.                         arreglo_1[posicion] = capturaDeNumero;
  26.                 }
  27.                
  28.                
  29.                 for (int posicion = 0; posicion < arreglo_1.length; posicion++) {
  30.                         System.out.println("el valor de la posición " + posicion + " es " + arreglo_1[posicion]);
  31.                 }
  32.         }
  33. }
  34. //

Título: Re:Mi tutorial de JAVA
Publicado por: CompSystems en 08 de Enero de 2016, 15:19:25
Video #12 Herencia

//
Código: Java
  1. // Archivo Main.java
  2. //[youtube]https://www.youtube.com/watch?v=GjUZoxZ7jp4[/youtube]
  3. package paquete_1;
  4.  
  5. public class Main {
  6.  
  7.         public static void main(String[] args) {
  8.                 Gato gato_1 = new Gato();
  9.                 gato_1.comer();
  10.  
  11.                 Perro perro_1 = new Perro();
  12.                 perro_1.comer();
  13.  
  14.         }
  15.  
  16. }
  17. //

//
Código: Java
  1. // Archivo Animal.java
  2.  
  3. package paquete_1;
  4.  
  5. public class Animal {
  6.  
  7.         private String nombre;
  8.        
  9.         // Constructor
  10.         //public Animal(String nombre){ this.setNombre(nombre); }
  11.        
  12.         public void comer() {
  13.                 System.out.println("El animal esta comiendo ->");
  14.         }
  15.        
  16.         protected void saludar(){
  17.                 System.out.println("Saludo...");
  18.         }
  19.  
  20.         public String getNombre() {
  21.                 return nombre;
  22.         }
  23.  
  24.         public void setNombre(String nombre) {
  25.                 this.nombre = nombre;
  26.         }
  27.  
  28.  
  29.        
  30.         public void dormir() {
  31.                 System.out.println("El animal esta durmiendo ->");
  32.         }
  33. }
  34.  
  35. //


//
Código: Java
  1. // Archivo Gato.java
  2. package paquete_1;
  3. // se hereda todas las propiedades y métodos de la clase Animal
  4. public class Gato extends Animal {
  5.         // especializacion
  6.        
  7.         //public Gato(){ super("Mi gato"); }
  8.        
  9.         public void comer() {
  10.                 // para acceder al método comer de la clase que esta heredando
  11.                 // se debe anteponer el prefijo SUPER
  12.                 // super.comer();
  13.                
  14.                 // Si no se quiere iniciar el método de la clase padre, se dice que se sobrescribe el método COMER de la clase padre o esta método se especializa o es exclusivo de GATO
  15.                 System.out.println("El gato esta comiendo arañas");
  16.         }
  17.        
  18. }
  19. //

//
Código: Java
  1. // Archivo Perro.java
  2. package paquete_1;
  3.  
  4. public class Perro extends Animal{
  5.  
  6.         //Constructor
  7.         public Perro(){
  8.                 saludar();
  9.         }
  10.        
  11.         protected void saludar(){
  12.                 System.out.println("Gua gua");
  13.         }
  14.        
  15. }
  16. //