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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
31  Programación / Java / Re: Cómo ejecutar un metodo de un arraylist en otro jFrame en: 27 Noviembre 2015, 02:17 am
Pues pasale por parámetro el arrayList a la clase que tiene el JFrame llamado "eliminar".

Salu2
32  Programación / Scripting / Re: [Duda]Es posible pasar argumentos a un Script Python de esta manera en: 22 Noviembre 2015, 04:40 am
Muchísimas gracias era exactamente lo que necesitaba  ;-)
33  Programación / Java / [Tutorial rapido]Programación orientada a objetos en Java(Para programadores) en: 19 Noviembre 2015, 09:11 am
Hola gente, bueno hoy quiero aportar mi granito de arena a esta comunidad que me ayudado bastante a resolver mis problemas  ;-) En este tutorial explicare como funciona la POO en Java.

Antes que nada quiero decir que este tutorial va dirigido a personas que ya tienen conocimientos de programación, en especial si vienes de otro lenguaje orientado a objetos. No me voy a poner a explicar a fondo para que funciona cada cosa, simplemente explicare como es la estructura de la POO en Java.

Creando clases:
NOTA: Cuando creas una clase, dicha clase tiene que ser almacenada en un archivo de texto con la extensión ".java", y ese archivo tiene que tener el mismo nombre de la clase.
Ya dentro del archivo creas la clase de la siguiente manera:

Código
  1. public class NombreDeLaClase {}

Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de las clases, empezamos con mayúsculas y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina UpperCamelCase.

Y entre las llaves de la clase definiremos, los atributos, métodos, y todas las características que queremos que tenga la clase.

Creando métodos:
La estructura de un método en Java es la siguiente:
Código
  1. public void nombreDelMetodo() {}

Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de los métodos, empezamos con minúscula y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina lowerCamelCase.

Y dentro de las llaves del método, implementaremos nuestro código.

En Java podemos tener varios métodos con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.

Recibir parámetros:
Para que un método reciba parámetros, debemos especificarlos entre los paréntesis, así:
Código
  1. public void nombreDelMetodo(String cadena) {}

Devolviendo valores:
En Java para que un método devuelva un valor, primeros debemos especificar que va devolver ese método, no podemos devolver cualquier valor que nosotros queramos, como se haría en Python por ejemplo, en Java primero se define que es lo que se va a devolver, si es un String, un entero, etc. Y eso lo definimos de la siguiente manera:
Cuando un método tiene la palabra "void", significa que no va a devolver nada:
Código
  1. public void nombreDelMetodo() {}
Si queremos que devuelva algo, simplemente cambiamos el "void", por el valor que queremos devolver, si qusieramos devolver una cadena, lo haríamos de la siguiente forma:
Código
  1. public String nombreDelMetodo() {}
También es posible devolver, arreglos y hasta objetos, solo es cuestión de especificar que devolver.

Atributos y ámbitos:
Con ámbito, me refiero al alcance que tienen las variables para que se puedan llamar unas a otras dentro de la clase.
En Java tenemos básicamente 2 ámbitos de las variables, ellas pueden ser:
Variables de clase:
Estas variables son visibles para toda la clase, es decir que pueden ser accedida por todos los métodos de la misma.
Estas se definen fuera de los métodos, es decir al mismo nivel en el que se definen los métodos de la clase:
Código
  1. public class NombreDeLaClase {
  2.     String cadena = "Hola mundo";
  3. }
Variables de método:
Estas variables, se definen dentro de los métodos, y solo pueden ser accedidas por el método en donde fueron declaradas:
Código
  1. public class NombreDeLaClase {
  2.     public void nombreDelMetodo() {
  3.          String cadena = "Hola mundo";
  4.     }
  5. }
Si quisiéramos llamar la variable cadena, desde otro método, simplemente no podremos, dará error y dirá que no se encuentra esa variable.

Constructor de la clase:
Como en todo lenguaje siempre tenemos el constructor, que es el primer método que se ejecuta cuando se instancia un objeto de la clase, para crear un constructor basta con crear un método con el mismo nombre de la clase y ya tendremos uno:
Código
  1. public class Animal {
  2.     public void Animal() {
  3.          //Código a ejecutar
  4.     }
  5. }

También podemos tener varios constructores con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.

NOTA: Los constructores no pueden devolver valores, ni siquiera se pone el "void", pero si pueden contener parámetros.

Herencia:
En Java solo podemos hacer una herencia de otra clase, no se permite la herencia múltiple.
Para heredar de otra clase, simplemente debemos poner al lado del nombre de la clase lo siguiente:
Código
  1. extends NombreDeLaClaseAHeredar
Y se vería de la siguiente forma:
Código
  1. public class Perro extends Animal{
  2. }
En este ejemplo estaríamos heredando los atributos y métodos de la clase Animal.

Llamar al constructor de la superclase:
En muchos casos necesitaremos llamar al constructor de la superclase para pasarle parámetros.
Para hacerlo, llamamos este método super() y entre los paréntesis, le pasamos los parámetros que requiere la superclase. Pero este método solo puede llamarse desde el constructor, y debe estar en la primera linea del método constructor:
Código
  1. public class Perro extends Animal{
  2.     public Animal() {
  3.          super("perro");
  4.     }
  5. }

Modificadores de acceso(Encapsulamiento):
En Java existen los modificadores de acceso, que son los permisos que le podemos poner a los atributos y métodos. Estos nos permiten determinar si los atributos o métodos, pueden ser accedidos desde un determinado lugar.
Estos modificadores se colocan al principio de la definición de un atributo o método, por ejemplo el modificador "private":
Código
  1. private String cadena = "Hola mundo";//Atributo
  2. private void metodo() {}//Metodo

Tenemos diferentes modificadores:
public:
El método o atributo podrá ser accedido desde cualquier lugar.
protected:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase o por las clases que lo hereden.
defualt:
Este "modificador" en realidad no es un modificador, y se define cuando no ponemos ningún modificador de acceso. Y el método o atributo que lo posea solo podrá ser accedido por clases que estén en el mismo paquete.
private:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase.

Creando objetos:
Para crear objetos es tan sencillo como hacer esto:
Código
  1. Perro perro1 = new Perro("Toby");
Como ven primero especificamos de que tipo sera nuestra variable, en este caso sera una clase, de tipo "Perro", luego le ponemos un nombre, y después del signo ponemos la palabra reservada "new", para indicar que estamos creando un nuevo objeto, después volvemos a escribir el nombre de la clase("Perro") y entre los paréntesis le pasamos los parámetros al constructor del objeto, si es que lo requiere.

Accediendo a los atributos y métodos del objeto:
Luego que tengamos nuestro objeto creado, podremos acceder a los atributos y métodos que posea el objeto. Para ello debemos poner el nombre del objeto y luego un punto y después podremos llamar atributos y ejecutar funciones de ese objeto:
Código
  1. Perro perro1 = new Perro("Toby");
  2. perro1.ladrar();
  3. String nombrePerro1 = perro1.getName();
  4.  


Hasta ahí lo mas básico de la programación orientada a objetos en Java, espero que sirva de ayuda para la gente que quiera aprender este maravilloso lenguaje, sobre todo para los que ya tienen experiencia en otros lenguajes y no quieran empezar un curso de cero.

Un saludo a todos!  ;D
34  Programación / Java / Re: Me ha desaparecido la paleta [Netbeans] en: 19 Noviembre 2015, 03:03 am
Te vas al menu Windows --> IDETools --> Palette

Lo mismo, pero eliges Properties.

Salu2.
35  Programación / Scripting / [Duda]Es posible pasar argumentos a un Script Python de esta manera en: 18 Noviembre 2015, 19:27 pm
Estoy haciendo un compilador en Python, para compilar archivos.java
Pero quería saber si al arrastrar un archivo.java encima de mi script.py, este ultimo tome la ruta de ese archivo.java, y después compilar el archivo y ejecutarlo. Bueno lo de compilar y ejecutar ya lo tengo controlado.

Gracias de antemano.
36  Programación / Scripting / Re: [Python-POO]Necesito ayuda con un script en: 16 Noviembre 2015, 03:29 am
Exacto, vengo de Java.
Jeje si sabia que no se usaban, pero lo uso de costumbre, igual muchas gracias por tus consejos  ;D
37  Programación / Scripting / Re: [Python-POO]Necesito ayuda con un script en: 16 Noviembre 2015, 02:43 am
Gracias era eso  ;-) ;-) ;-)
38  Programación / Scripting / [Python-POO]Necesito ayuda con un script en: 15 Noviembre 2015, 19:50 pm
Instancio 2 objetos de la clase Guerrero, uno para la PC y otro para el jugador, ambos objetos son de la misma clase.

En el constructor de esta clase, hace que la lista "guerreros" tome un valor aleatorio por cada indice.

Primero creo un objeto llamado guerreroPlayer y luego imprimo su lista con los números aleatorios que me genero. Luego lo mismo hago pero con el objeto guerreroPC, hasta ahí todo bien, cada lista con valores diferentes.

Pero el error esta en cuando vuelvo a imprimir los valores de la lista del objeto guerreroPlayer. Me muestra los mismos valores que tiene el objeto guerreroPC  :-\ y no los mismos de antes.

Alguien sabe por que sucede esto? gracias de antemano

Código
  1. import random
  2.  
  3. class Guerrero():
  4.    nombre = "";
  5.    guerreros = [0,0,0,0,0,0,0,0,0,0];
  6.  
  7.    def __init__(self, nombre):
  8.        self.nombre = nombre;
  9.        for numero in range(0, 10):
  10.            numeroRandom = random.randint(1,1000);
  11.            self.guerreros[numero] = numeroRandom;
  12.  
  13.    def imprimirNumeros(self):
  14.        for i in self.guerreros:
  15.            print(i);
  16.        print("********************");
  17.  
  18. guerreroPlayer = Guerrero("Player");
  19. guerreroPlayer.imprimirNumeros();
  20.  
  21. guerreroPc = Guerrero("PC");
  22. guerreroPc.imprimirNumeros();
  23.  
  24. guerreroPlayer.imprimirNumeros();
  25.  
39  Programación / Java / Re: Problema de generar palabras aleatorias [URGENTE] en: 12 Noviembre 2015, 16:18 pm
De nada compañero para eso estamos, para ayudarnos  ;D

El problema del espacio esta en la siguiente linea:

Código
  1. palabra += lista.charAt(i);

Para que no te tome el espacio, haces:

Código
  1. palabra += lista.charAt(i+1);
Entonces esto tomara una letra mas después del espacio, que seria donde empieza la palabra.

La variable palabra guarda una palabra de la lista según el numero aleatorio, si el valor random es 1, te guardara la primera palabra, si es 2 la segunda y así sucesivamente.

Salu2.
40  Programación / Java / Re: Problema de generar palabras aleatorias [URGENTE] en: 11 Noviembre 2015, 23:24 pm
En Java  ::)

Código
  1. public static void main(String[] args) {
  2.        String lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
  3.        int numeroAlAzar = 1 + new Random().nextInt(20);
  4.  
  5.        String palabra = "";
  6.        int contadorDePalabras = 1;
  7.  
  8.        for(int i = 0; i<lista.length(); i++){
  9.            char letra = lista.charAt(i);
  10.            if(letra == ' ') {
  11.                contadorDePalabras ++;
  12.            }
  13.            if(contadorDePalabras == numeroAlAzar) {
  14.                palabra += lista.charAt(i);
  15.            }
  16.        }
  17.  
  18.        System.out.println(palabra);
  19.    }
  20.  
No me llevo ni 5 minutos traducir de Python a Java :P
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines