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


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 43
51  Programación / Java / Re: [CURSO] Programación en Java en: 13 Mayo 2017, 09:20
Introducción a Java y la Programación Orientada a Objetos (POO)

Hola mundo que tal, soy 3n31ch y esta es el primer tutorial del curso de Java para elhacker.net: Inducción a Java y la Programación Orientada a Objetos.

Quiero indicarte antes de empezar, que para seguir este “curso” no necesitas ningún tipo de conocimiento de programación y si ya los tienes, genial, para ti será todo mucho más fácil.

Bien, entonces empecemos:

"Java es un lenguaje de programación multiplataforma que trabaja bajo el paradigma de Programación Orientada a Objetos (POO)"

Ya tan solo con ver esta frase podemos extraer tres afirmaciones/características importantes que hacen a Java lo que es:

  • Java es un lenguaje de programación
  • Java es multiplataforma
  • Java trabaja bajo el paradigma de Programación Orientada a Objetos(POO)

Si entiendes cada una de estas afirmaciones, no es necesario que sigas viendo este tutorial, puedes ir al siguiente haciendo click aquí


Java es un lenguaje de programación

Un lenguaje de programación es en palabras simples un lenguaje formal con el cual podemos indicarle a un ordenador las distintas tareas que queremos que realice. Esto lo hacemos mediante algoritmos.

Un algoritmo es simplemente una secuencia de pasos con un orden especifico que permite cumplir un objetivo, por ejemplo, una receta de cocina nos indica mediante un algoritmo que acciones tenemos que realizar para obtener un producto.

Si buscamos abstraer esta definición a un concepto más informático podemos utilizar de ejemplo un videojuego:

Imaginemos un videojuego en el que controlamos a un guerrero que tiene que salvar a una princesa perdida en el bosque.


Un algoritmo eficaz para llegar hasta ella sería el siguiente:
1.   Derecha
2.   Arriba
3.   Derecha
4.   Derecha
5.   Abajo
6.   Abajo
7.   Abajo
8.   Abajo

Otro algoritmo más eficiente de hacer lo mismo seria el siguiente:
1.   Abajo
2.   Abajo
3.   Abajo
4.   Derecha
5.   Derecha
6.   Derecha

Si te das cuenta en los ejemplos anteriores utilicé las palabras “eficaz” y “eficiente”, estas dos palabras son útiles para medir que tan bueno es un algoritmo:
  • Eficaz: Algoritmo que cumple con el objetivo propuesto.
  • Eficiente: Algoritmo que utiliza la menor cantidad de recursos posibles.

Un ejemplo de algoritmo poco eficaz es el siguiente:Un ejemplo de algoritmo poco eficiente es el siguiente:

Entonces, recapitulando: Un lenguaje de programación es un lenguaje formal con el cual podemos indicarle a un ordenador mediante un algoritmo que pasos ejecutar para cumplir un objetivo.

Es pertinente mencionar que una ejemplo de algoritmo mas adecuado seria el que se realizaria para encontrar el camino optimo y no directamente una secuencia de pasos textuales. Pero para simplificar el concepto utilice una secuencia de pasos como ejemplo.

Si quieres ahondar más en lo que es un algoritmo, distintos tipos de algoritmos, ejercicios u otros temas relacionados accede al siguiente link: Curso: Algoritmos básicos. (No disponible aun)


Java es Multiplataforma

Se dice que un lenguaje es multiplataforma cuando se tiene la capacidad de ejecutar el mismo programa en distintos sistemas operativos.

Esta fue una de las razones por la cual se creó Java, que al correr sobre la JVM tiene la capacidad de ser multiplataforma.

JVM (Java Virtual Machine) o en español Máquina Virtual de Java es como su nombre lo dice una Máquina Virtual que se ejecuta sobre el sistema operativo y que hace la función de interpretar el bytecode generado por un compilador de Java y ejecutar las instrucciones en el sistema operativo.

Puede que suene a chino todo lo que dije, pero es mucho más fácil de lo que suena, déjame que te lo explique con un diagrama:



Lo primero que pasa es que tu escribes tu código de Java el cual llamaremos código fuente, luego lo compilas, el compilador esta graficado como una caja negra ya que no nos interesa que es lo que pase dentro del mismo lo único que nos interesa es que el resultante es un Bytecode el cual llamaremos código objeto. Posteriormente la JVM alojada sobre el Sistema Operativo que ejecute el Bytecode lee dicho archivo y lo interpreta de tal forma que el Sistema Operativo pueda entenderlo adecuadamente. En resumen, el algoritmo es el siguiente:

1.   Programar Código Java (Código fuente)
2.   Compilar código Java en Bytecode (Código objeto)
3.   Ejecutar Bytecode en JVM
4.   JVM interpreta y ejecuta las tareas en el Sistema Operativo

Y lo único que nos interesa a nosotros es la primera parte, todo lo demás es automático.


Java trabaja bajo el paradigma orientado a objetos

Un paradigma de programación puede ser definido como un enfoque, filosofía, diseño o pensamiento para generar soluciones algorítmicas.

Otra vez me puse a hablar chino, así que lo traduciré: Un paradigma es básicamente un patrón o metodología utilizado como modelo para algo. Si lo aplicamos a la programación tenemos un “modelo base para programar”.

El paradigma/modelo de programación orientada a objetos es particularmente popular en la actualidad y como puedes intuir se basa en el manejo de “objetos”.

Los objetos pueden ser definidos como un conjunto de datos y funciones, los cuales son instanciados a partir de clases las cuales definen que atributos y métodos tiene un objeto.

Es más fácil entender que es un objeto y una clase a partir de un ejemplo:

Imaginemos otro videojuego que trata sobre cuidar a un animal virtual (tipo Tamagotchi) en el que tenemos un perro llamado Toby

Toby es un objeto, no importa que la idea real a la cual haga referencia este programa sea la de un perro, en la programación no se diferencia una cosa de un ser vivo ya que ambos son abstraídos como un simple conjunto de datos estructurados.

Toby tiene los siguientes atributos (datos asociados):
  • Nombre
  • Color
  • Sexo


Y tiene los siguientes métodos (funcionalidades):
  • Desplazarse
  • Comer
  • Jugar

Pero un día, Toby resulta encontrarse con otro perro llamado Body:

Toby y Body son objetos distintos ya que corresponden a entidades distintas.

Pero Body tiene exactamente los mismos atributos que Toby, la única diferencia yace en los valores de dichos atributos.

Sería ilógico tener que definir nuevamente la estructura de datos o funciones que tienen ambos, es por esto que existen las Clases.

La clase Perro define un patrón o modelo con el cual se podrán crear objetos de la misma. La forma que se crean los objetos es mediante algo que denominamos “Constructor”.

Un constructor es una “función” especial que tienen las clases para instanciar/crear objetos. Los constructores normalmente requieren de datos de entrada que serán aquellos que nos permitan personalizar nuestro objeto. En este caso los datos de entrada serian: Nombre, Color y Sexo.
Entonces se puede decir que Toby es una instancia de la clase Perro que recibe como parámetros los siguientes valores: Toby, Café, Masculino (Nombre, Color y Sexo).

Esto lo podríamos representar de la siguiente forma:

Perro1


Nombre: Toby
Color: Café
Sexo: Masculino
Perro2


Nombre: Body
Color: Gris
Sexo: Masculino

Entonces, recuerda:
 
  • Una Clase es el modelo que define los atributos y métodos que tiene un objeto.
  • Un Objeto es la instancia de una clase el cual dispone de los atributos y métodos definidos por la clase.

Este es el principio general del paradigma de programación orientada a objetos, pero existen cuatro cosas importantes que hacen este paradigma lo que es: Los 4 pilares de la programación orientada a objetos.

Si quieres saber más sobre el paradigma orientado a objetos y otros paradigmas más entra al siguiente link: Apunte: Paradigmas de programación. (No disponible aun)

Por ahora ya tenemos todas las herramientas necesarias para iniciar con este curso, así que te espero para las siguientes entregas. Y ánimo, porque esto recién empieza.


RECURSOS ASOCIADOS A ESTE TUTORIAL:


RECURSOS COMPLEMENTARIOS:

  • Curso: Algoritmos Básicos (No disponible aun)
  • Apunte: Paradigmas de programación (No disponible aun)
52  Programación / Java / [CURSO] Programación en Java en: 13 Mayo 2017, 08:24
[CURSO] Programación en Java

Introducción

En este post podrás ver todo lo que necesitas para empezar a programar desde cero con Java y todo lo que necesitas saber para desarrollarte en el mundo laboral con este lenguaje de programación.

Se abordarán temas como:

  • Fundamentos de programación
  • Algoritmos básicos y complejos
  • Crear aplicaciones de consola
  • Crear aplicaciones de escritorio
  • Crear aplicaciones web
  • Crear aplicaciones en Android
  • Crear videojuegos

Dispondrás de tutoriales, videos, ejercicios y ejemplos para mejorar tu aprendizaje.

Debido a que planeo hacer un tutorial gigantesco lo iré desarrollando día a día e intentare tener como mínimo un tutorial por semana.

Al finalizar este “curso” se espera que poseas los conocimientos para poder abordar cualquier proyecto con Java y desempeñarte tanto en el mundo académico como laboral de forma íntegra.

Índice

Introducción a Java

TutorialVideo TutorialEjerciciosSoluciones
Introducción a Java y la Programación Orientada a Objetos (POO)No DisponibleNo AplicaNo Aplica
Historia muy breve de JavaNo DisponibleNo AplicaNo Aplica

Instalación y Uso de Herramientas

TutorialVideo TutorialEjerciciosSoluciones
Instalación de herramientas para programar en JavaNo DisponibleNo AplicaNo Aplica
Proyectos en JavaNo DisponibleNo AplicaNo Aplica


Java SE Básico

TutorialVideo TutorialEjerciciosSoluciones
Impresión de mensajesNo DisponibleNo DisponibleNo Disponible
Variables y ConstantesNo DisponibleNo DisponibleNo Disponible
Operadores Aritméticos
Concatenación
Inputs por consola - Scanner
Operadores lógicos
Sentencias condicionales - if y else
Sentencias condicionales - switch y case
Input por consola - BufferedReader
Arreglos - Unidimencionales
Arreglos - Multidimencionales
Bucles - while y do while
Bucles - for y foreach
Excepciones - try y catch
Clases y objetos
Métodos
POO - Abstracción
POO - Encapsulamiento
Sobrecarga
Static
Clase String
Wrappers
POO - Herencia
POO - Polimofismo
Clases Abstractas
Interfaces
Ejemplo Practico

Java SE Intermedio

TutorialVideo TutorialEjerciciosSoluciones
Excepciones - throws and throw
Excepciones - Crear Exepciones
Thread - Thread
Thread - Synchronized
JDBC
Sockets - Servidor
Sockets - Clientes
Ejemplo Practico

Java SE GUI

TutorialVideo TutorialEjerciciosSoluciones
Hola Mundo
JFrame
JLabel
JTextField, JPasswordField y JTextArea
JButton
Listener - ActionListener
Layout - FlowLayout
Layout - GridLayout
Layout - BorderLayout
JPanel
JCheckBox
JRadioButton
JComboBox
JMenu
Ejemplo Practico

EN ESTE PUNTO YA PUEDES TOMAR EL CURSO DE COMO CREAR TU VIDEOJUEGO EN JAVA

Java EE Básico

TutorialVideo TutorialEjerciciosSoluciones
¿Qué son peticiones y respuestas HTTP?
Entendiendo como trabaja Java en web.
Introducción JSPs
Introducción Servlets
¿Qué son los objetos HttpRequest y HttpResponse?
Majenado objetos HttpRequest y HttpResponse
Pasando valores por medio de HttpRequest al JSP
¿Qué son taglibs? Usando taglibs
¿Qué es EL? usando EL con taglibs (jstl)
¿Qué es el objeto HttpSession y cómo funciona?
¿Qué son cookies y cómo funcionan?
Manejando sesiones.
Introducción AJAX
Envío y recibo de JSON entre AJAX y Servlets.
Ejemplo Practico

Java EE Intermedio

TutorialVideo TutorialEjerciciosSoluciones
JPA - introducción
JPA 2 - Mapeo de tablas
JPA 3 - Relaciones
DataSources
EJB 1 - Stateless
EJB 2 - Staeful
EJB 3 - Singleton
EJB Local y EJB Remote
Introducción a WebServices
WebService SOAP (JAX-WS)
WebService REST (JAX-RS)
Haciendo un cliente REST con Jersey
JAXB - Marshall
JAXB 2 - Unmarshall
Ejemplo Practico

Los videos se empezaran a desarrollar cuando finalice la primera parte del curso (ademas de los cursos asociados)

Este tema estará bloqueado para evitar desordenarlo por tanto cualquier pregunta que tengas puedes realizarla en este mismo foro creando un nuevo tema e intentare responderte lo antes posible.

Agradecimientos a:
  • Eleкtro (por utilizar sus poderes divinos de mod para ayudarme)
  • MCKSys Argentina (por recomendaciones)
  • NEBIRE (por recomendaciones)
53  Seguridad Informática / Seguridad / Re: ¿Como funciona la DESencriptacion masiva? en: 13 Mayo 2017, 03:05
Tengo entendido que la key solo es enviada cuando se paga el "rescate" y nunca toca la computadora de la victima como aclara engel lex.

No se puede "rastrear" el envio de la misma de forma facil a menos que el delincuente cometa errores.

Esta infección no fue realizada por novatos, no creo que los puedan rastrear tan facil.
54  Sistemas Operativos / GNU/Linux / Re: ¿Algún Linux con el mejor soporte nVidia? en: 13 Mayo 2017, 03:00
Tengo entendido que no existe ninguno:

http://www.muylinux.com/2012/06/18/linus-a-nvidia-que-te-jodan

Ya paso tiempo de esto, por lo que no se si ya cambio.
55  Programación / Java / Re: Ayuda con ejercicio de arreglos y métodos en Java en: 11 Mayo 2017, 06:22
Lo lamento amigo, pero en este foro no se hacen tareas.

Si quires pon tu codigo y te podemos ayudar, pero hacer la tarea... No.
56  Foros Generales / Foro Libre / Re: Alguien me explica así por encima que haceis por aqui? en: 11 Mayo 2017, 04:40
Elektro es evidente que Randomize se referia a ti... No intentes despistarnos!
57  Programación / Java / Re: Mi solucion a "no se ha encontrado o cargado la clase principal x" de CMD en: 11 Mayo 2017, 01:39
Ok, para complementar:
Esto de la clase principal en ocasiones no funciona cuando la version de Java que intentas ejecutar es mas antigua y no es capas de reconocer el programa que ejecutas.

En ese caso solo hay que actualizar la JVM y ya esta.

Y otra cosa, tu error es porque no lo ejecutaste correctamente, el comando es:

Código:
java -jar programa.class



Gracias por tu aporte!  ;-) ;-)
58  Programación / Java / Re: Fichero De Datos POO. en: 11 Mayo 2017, 01:36
ponlo como 1 o como 0, si es 0 es false, si es 1 es true.

Luego haces lo siguiente:

Código
  1.       String input = "1";
  2.       boolean bool = input.equals("1");

Seguramente existen mas formas, pero esa se me ocurre por le momento.
59  Informática / Hardware / Re: 2 placas de video en: 9 Mayo 2017, 19:43
Se que no importa porque ya solucionaste el problema, pero veo que tienes otra duda:

mmm no entiendo porque quieres tanto detalle de la PC.

Las respuestas son dos:
1. Mientras mas info mas facil es encontrar el problema
2. Randomize es un troll certificado por elhacker.net

2. Randomize es el usuario mas comprensivo de este foro, por diferencia.

Randomize, te hice una dedicatoria: http://foro.elhacker.net/foro_libre/juego_para_un_tutorial_ustedes_son_el_protagonista-t468801.0.html
60  Programación / Java / Re: Fichero De Datos POO. en: 9 Mayo 2017, 19:04
Muchas gracias por la ayuda, puedes explicarme qué hace esta sintaxis
Código
  1. for(Productos employee : employees) System.out.println(employee);


Saludos!

Eso es un foreach, recorre un arreglo uno por uno:

Si tienes un arrayList de productos llamado: productos y quieres recorrerlo uno por uno haces lo siguiente:

for(Producto producto : productos) {
     System.out.println(producto.getNombre());
}

El azul seria el Tipo de ArrayList o mas bien la Clase de los objetos que contiene.
El verde seria la variable temporal que tendra cada producto cuando se itere sobre el
El rojo es la lista de productos sobre la cual iteras
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 43
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines