lunes, 30 de noviembre de 2015
GREENFOOT
Programar en Greenfoot ha sido un experiencia muy agradable, ya que cada que programábamos podíamos saber si es lo que queríamos lograr al hacer dicho código, esta herramienta permite crear simulaciones y juegos, en dos dimensiones que nos permiten relacionarnos con Java y los conceptos básicos de una Programación Orienta a Objetos asiéndolo así de forma práctica y divertida.
Información Básica :
Greenfoot es un proyecto de software libre y gratuito, desarrollado en la Universidad de Kent (UK), enfocado en principio a jóvenes estudiantes que quieren iniciarse en el mundo de la programación. Existen otras herramientas con objetivos similares, como Scratch o Alice, pero Greenfoot tiene características más avanzadas, como la edición de código fuente en Java, que lo hace más potente e incluso interesante para personas que tienen ya conocimientos en programación. Greenfoot se distribuye gratuitamente con licencia GNU GPL y está disponible para Windows, Mac OS X y Linux.
Aqui les dejo un video Sobre Nuestro Proyecto en este IDE y el enlace al Informe:
https://docs.google.com/document/d/1_g4bsvnTz_Bbg1esYezHIXkurmPPzgDoHtXyyebYbOk/edit
domingo, 22 de noviembre de 2015
INTERFACES GRÁFICAS DE USUARIO.
Las interfaces gráficas de usuario (GUI) ofrecen al usuario ventanas, cuadros de diálogo, barras de herramientas, botones, listas desplegables y muchos otros elementos con los que ya estamos muy acostumbrados a tratar. Las aplicaciones son conducidas por eventos y se desarrollan haciendo uso de las clases que para ello nos ofrece la API de Java.
La interfaz de usuario es la parte del programa que permite al usuario interaccionar con él.
Se pueden ejecutar directamente en un entorno Java
Aplicaciones
Tipos
- Modo de consola
- Interacción mediante teclado
- Interfaz basado en texto
Aplicaciones con interfaz gráfica (GUI)
- Ventanas gráficas para entrada y salida de datos
- Iconos
- Dispositivos de entrada (p.ej. ratón, teclado)
- Interacción directa
Applets
Pequeñas aplicaciones que se ejecutan dentro de un navegador (o en el visualizador de applets - Appletviewer)
- Interfaz gráfica
- Limitaciones por motivos de seguridad
Componentes GUI (widgets)
Objetos visuales del interfaz.
Un programa grafico es un conjunto de componentes anidados.
- Ventanas, contenedores, menús, barras, botones, campos de textos, etc.
Disposición (layout)
como se colocan los componentes para lograr un GUI cómodo de utilizar.Layaout managers: gestionan la organización de los componentes gráficos
de la interfaz.
Eventos: Interactividad, respuesta a la entrada del usuario
Desplazamiento del ratón, selección en un menú, botón pulsado, etc.
Creación de gráficos y texto – Clase Graphics
- Define fuentes, pinta textos.
- Para dibujo de líneas, figuras, coloreado
Abstract windowing toolkit (AWT)
“Look & Feel” dependiente de la plataforma
- La apariencia de ventanas menúes, etc. Es distinta en Windows, Mac, Motif, y otros sistemas.
Funcionalidad independiente de la plataforma
Básico y experimental.
Estándar hasta la versión JDK 1.1.5
Swing / Java Foundation Class (desde JDK 1.1.5)
Look & Feel y funcionalidad independiente de la plataforma.
Desarrollado 100% en Java.
Portable: si se elige un look&feel soportado por Swing (o se programa uno)
puede asegurarse que la GUI se verá igual en cualquier plataforma.
Mucho más completo que AWT
Contenedores.
Contienen otros componentes (u otros contenedores).
- Estos componentes se tienen que añadir al contenedor y para ciertas operaciones se pueden tratar como un todo.
- Mediante un gestor de diseño controlan la disposición (layout) de estos componentes en la pantalla. • Ejemplo: Panel, Frame, Applet.
Lienzo (clase Canvas)
Superficie simple de dibujo.
Componentes de interfaz de usuario.
Botones, listas, menús, casillas de verificación, campos de texto, etc.
Componentes de construcción de ventanas.
Ventanas, marcos, barras de menús, cuadros de diálogo
Panel.
Sirve para colocar botones, etiquetas, etc.
No existe sin una ventana que lo albergue
Un applet es un panel
Window.
Sirve para crear nuevas ventanas independientes.
Ventanas gestionadas por el administrador de ventanas de la plataforma (Windows, Motif, Mac, etc.).
Normalmente se usan dos tipos de ventanas:
- Frame: ventana donde se pueden colocar menús
- Dialog: ventana para comunicarse con el usuario
- Se usan para colocar botones, etiquetas, etc.
- Cumple la misma función que un panel, pero en una ventana independiente
miércoles, 18 de noviembre de 2015
EXCEPCIONES
EXCEPCIONES
A veces al momento de compilar un programa, el compilador nos muestra este tipo
de mensaje como el que vamos a mostrar en la siguiente imagen.
Descuiden que este tipo de mensaje quiere decir que hay un error de sintaxis o lógico.
Para que no nos salgan este tipo de mensajes lo que vamos a utilizar son EXCEPCIONES.
Las Excepciones son como un tipo de controlador de errores, es decir, van a controlar
los errores que contienen un programa, pero para ello vamos a necesitar la estructura “try - catch” quien va a ser el que controle nuestros errores.
A continuación mostraremos los tipos de errores que hay:
<>br
A continuación veremos un ejemplo de EXCEPCIONES.
package practica8;
import javax.swing.JOptionPane;
/**
*
* @author Jhosep A. Cerna S
*/
public class Error
{
public static void main(String[] args)
{
String cad_num;
int numero;
boolean val;
//hacemos un do-while para que vuelva a ingresar un numero
do{
try{
cad_num=JOptionPane.showInputDialog(null,"Ingrese un numero para ser sumado con 6","Manejo del try-catch",JOptionPane.QUESTION_MESSAGE);
numero=Integer.parseInt(cad_num);
numero+=6;
JOptionPane.showMessageDialog(null,"Bien, el reusltado de 6 + "+cad_num+" = "+numero,"Mensaje",JOptionPane.INFORMATION_MESSAGE);
val=false;
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(null,"Ha ingresado una letra\npor favor ingrese un numero","Error",JOptionPane.ERROR_MESSAGE);
val=true;
}
}while(val);
}
}
ARCHIVO DE TEXTO
Son formatos exclusivamente por texto, es decir caracteres. Su extensión .TXT , no requieren ser interpretados para leerse.
Para crear un archivo se instancia File, nos permite crear un ruta especifica.
El FileReader, nos permite leer el archivo.
El FileWriter, se usa para escribir en el archivo.
El BufferReader, permite leer línea por línea todos los elementos.
Bueno aquí pueden ver el siguiente código:
Para crear un archivo se instancia File, nos permite crear un ruta especifica.
El FileReader, nos permite leer el archivo.
El FileWriter, se usa para escribir en el archivo.
El BufferReader, permite leer línea por línea todos los elementos.
Bueno aquí pueden ver el siguiente código:
import java.io.*;
public class Archivo_Plano {
private File f;
public void crear_archivo(){
try {
f=new File("archivos/Secretitos.txt");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void escribir_archivo(){
try {
FileWriter fr = new FileWriter(f);
fr.write("Este es mi archivo plano");
fr.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void leer_archivo(){
try {
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);//lo que hace el buffer el llere los datos uno por uno
String linea=null;//va leer las lineas d emi archivo
while ((linea=br.readLine())!=null) {
System.out.println(linea);
}
br.close();
fr.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
CLASES, OBJETOS Y MAS . . .
Es un estilo de programación en que
cada programa es visto como un objeto, se forma por una serie de componentes,
auto contenidos que cooperan para realizar las acciones de la aplicación
completa.
La programación orientada a objetos (P.O.O) es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo de proyectos de software.
- OBJETO: Es la entidad provista de un conjunto de propiedades o atributos
(datos) y de comportamiento o funcionalidad (métodos). Corresponden a los
objetos reales del mundo que nos rodea, o a objetos internos del sistema
(del programa). Es una instancia a una clase.
- CLASES: Son definiciones de las propiedades y comportamiento de un tipo de
objeto concreto. La instanciación es la lectura de estas definiciones y la
creación de un objeto a partir de ellas.
- MÉTODOS: Es un algoritmo asociado a un objeto (o a una clase de objetos),
cuya ejecución se desencadena tras la recepción de un "mensaje".
Desde el punto de vista del comportamiento, es lo que el objeto puede
hacer. Un método puede producir un cambio en las propiedades del objeto, o
la generación de un "evento" con un nuevo mensaje para otro
objeto del sistema.
- ATRIBUTOS: Es contenedor de un tipo de datos asociados a un objeto (o a una
clase de objetos), que hace los datos visibles desde fuera del objeto y
esto se define como sus características predeterminadas, y cuyo valor puede
ser alterado por la ejecución de algún método.
PROPIEDADES
O CARACTERÍSTICAS DE LA P.O.O
- HERENCIA: Es una propiedad esencial de la Programación Orientada a Objetos que
consiste en la creación de nuevas clases a partir de otras ya existentes.
Este término ha sido prestado de la Biología donde afirmamos que un niño
tiene la cara de su padre, que ha heredado ciertas facetas físicas o del
comportamiento de sus progenitores. La herencia permite crear una
clase (clase derivada) a partir de otras ya existentes, y ésta tendrá
todos los atributos y los métodos de su “superclase” (clase base), y
además se le podrán añadir otros atributos y métodos propios.
- POLIMORFISMO: Es la capacidad de
tener métodos con el mismo nombre, con comportamientos diferentes
conocidos como la sobre escritura de métodos y la sobrecarga de
operadores.
- ENCAPSULAMIENTO: Es
una característica de la programación orientada a objetos. Cada objeto
está aislado del exterior, es un módulo natural, y la aplicación entera se
reduce a un agregado o rompecabezas de objetos. El aislamiento protege a
los datos asociados a un objeto contra su modificación por quien no tenga
derecho a acceder a ellos.
- ABSTRACCIÓN: Definamos como la "acción de aislar mentalmente o considerar por separado las
cualidades de un objeto, considerar un objeto en su esencia, es decir,
a través de la abstracción conseguimos extraer las cualidades
principales sin detenernos en los detalles. La
abstracción es una herramienta muy potente en programación, pues reduce
considerablemente el trabajo de implementación y aumenta la portabilidad
del código.
martes, 17 de noviembre de 2015
BUCLES
Existen cuatro tipos de bucles (Loop) en Java:
Ejemplo de uso de del bucle wile:
Un ejemplo claro de un bucle que no sabemos cuántas veces se va a ejecutar es cuando le pedimos al usuario que introduzca algo por teclado, porque se puede equivocar o introducirlo mal porque le apetezca.
Ejemplo de uso del do…while.
El bucle for sirve para ejecutar un código un número conocido de veces, por ejemplo recorrer un array o cualquier otro tipo de colección o simplemente ejecutar el código un número concreto de veces. En java hay dos posibles tipos de bucle for: El más habitual es en el que se establece el numero desde el que va a empezar el bucle, hasta cuándo se va a seguir ejecutando el bucle y finalmente el modo en el que se actualiza el contador del bucle, que aunque habitualmente lo que se hace es incrementar en una unidad el contador esto no tiene que ser obligatoriamente así.
Este bucle se introdujo con la llegada de java 5 este se utiliza para el manejo de arrays.
Expresión: Esta se evalúa como el array que se tiene que recorrer. La expresión puede ser una variable de tipo array o una llamada al método que devuelve un array.
Ejemplo.
- El bucle while.
- El bucle do...while.
- El bucle for.
- El bucle for mejorado.
El bucle While
Un bucle while es una estructura de control que le permite repetir una tarea un número determinado de veces. while(expresion_booleana) while(expresion_booleana)
{
//Bloque de código
}
Cuando se ejecuta, si el resultado expresión booleana es cierto, entonces se ejecutarán las acciones dentro del bucle. Esto continuará siempre y cuando el resultado de la expresión es verdadera. Cuando la expresión se prueba y el resultado es falso, el cuerpo del bucle se omitirá y la primera sentencia después del bucle while se ejecutará.Ejemplo de uso de del bucle wile:
Un ejemplo claro de un bucle que no sabemos cuántas veces se va a ejecutar es cuando le pedimos al usuario que introduzca algo por teclado, porque se puede equivocar o introducirlo mal porque le apetezca.
Public int leeNumero()
{
Scanner sc= new Scanner(System.in);
int numero = -1;
while(numero<=0)
{
System.out.print(“introduce el numero positivo”);
Numero= sc nextInt();
}
Sc.close();
Return numero;
}
Un bucle do...while es similar a un bucle while, excepto que este está garantizando ejecutar al menos una vez el bloque de código.
do{
//Bloque de código
} while(expresion_booleana)
Aquí se observa que la expresion_booleana aparece al final del bucle, por lo que las instrucciones del bucle ejecutar una vez antes de que el booleano es probado. Si la expresión booleana es verdadera, el flujo de control vuelve al do, y las instrucciones del bucle se vuelven a ejecutar. Este proceso se repite hasta que la expresión booleana es falsa.Ejemplo de uso del do…while.
public class Bucles{
public static void main(String args[]){
int x = 20;
do{
System.out.print("valor de x : " + x );
x++;
System.out.print("\n");
}while( x < 30 );
}
}
Si ejecutamos el código anterior obtenemos el siguiente resultado:
valor de x : 20 valor de x : 21 valor de x : 22 valor de x : 23 valor de x : 24 valor de x : 25 valor de x : 26 valor de x : 27 valor de x : 28 valor de x : 29
El bucle for.
El bucle for sirve para ejecutar un código un número conocido de veces, por ejemplo recorrer un array o cualquier otro tipo de colección o simplemente ejecutar el código un número concreto de veces. En java hay dos posibles tipos de bucle for: El más habitual es en el que se establece el numero desde el que va a empezar el bucle, hasta cuándo se va a seguir ejecutando el bucle y finalmente el modo en el que se actualiza el contador del bucle, que aunque habitualmente lo que se hace es incrementar en una unidad el contador esto no tiene que ser obligatoriamente así.
for(inicializacion; expresion_booleana; actualizacion){
//Bloque de código
}
Un ejemplo.
public class Bucles {
public static void main(String args[]) {
for(int x = 20; x < 30; x++) {
System.out.print("valor de x : " + x );
System.out.print("\n");
}
}
}
Si ejecutamos nos debe de salir lo siguiente:
valor de x : 20 valor de x : 21 valor de x : 22 valor de x : 23 valor de x : 24 valor de x : 25 valor de x : 26 valor de x : 27 valor de x : 28 valor de x : 29La etapa de inicialización se ejecuta en primer lugar, y sólo una vez. Este paso le permite declarar e inicializar las variables de control del bucle. A continuación, se evalúa la expresion_booleana. Si bien es cierto, se ejecuta el cuerpo del bucle. Si es falsa, el cuerpo del bucle no se ejecuta y el flujo de control salta a la siguiente instrucción más allá del bucle for. Después de que el cuerpo del bucle se ejecuta para el flujo de control salta de nuevo a la instrucción de actualización. Esta declaración le permite actualizar las variables de control del bucle.
El for mejorado.
Este bucle se introdujo con la llegada de java 5 este se utiliza para el manejo de arrays.
for(declaracion : expresion)
{
//Bloque de código
}
Declaración: La variable de bloque recién declarado, que es de un tipo compatible con los elementos del array que está accediendo. La variable estará disponible dentro del bloque para y su valor sería el mismo que el elemento dentro del array.Expresión: Esta se evalúa como el array que se tiene que recorrer. La expresión puede ser una variable de tipo array o una llamada al método que devuelve un array.
Ejemplo.
public class Bucles {
public static void main(String args[]){
String [] empleados = {"Carlos", "Oscar", "Jony", “Alberto”, “Ramses”};
for(String nombre : empleados) {
System.out.print(nombre);
System.out.print(",");
}
}
}
Si ejecutamos nos debe de salir lo siguiente:
Carlos, Oscar, Jony, Alberto, Ramses,
Etiquetas:
Bucles,
Bucles Java,
Loops,
Loops Basic
POLIMORFISMO
Sobre-Carga
Es una parte del concepto de Polimorfismo, esto permite declarar métodos que se llamen igual pero que
reciban parámetros diferentes (no pueden haber 2 métodos con el mismo nombre y los mismos parámetros),
por esta razón lo que define a que método se ingresa, son los argumentos que se envían como parámetros.
public class Hijo
{
//Esto es Sobrecarga de Métodos
public void sumar(int a,int b)
{
int suma;
suma=a+b;
System.out.println("La suma es: "+suma);
}
public void sumar(int a,int b,int c)
{
int suma;
suma=a+b+c;
System.out.println("La suma es: "+suma);
}
public void sumar(double a,double b)
{
double suma;
suma=a+b;
System.out.println("La suma es: "+suma);
}
public static void main(String[] args)
{
Hijo h1=new Hijo();
h1.sumar(3.2, 5.1);
h1.sumar(5, 1);
h1.sumar(4, 5, 6);
}
}
Sobre-Escritura
Es la forma por la cual una clase que hereda puede re-definir los métodos de su clase Padre, de esta manera
puede crear nuevos métodos con el mismo nombre de su superClase, es decir, si tengo una clase Padre con el
método "ingresar()" yo puedo crear en la clase Hija un método que también se llame "ingresar()" pero implementándolo
según lo que necesite.
public class Instrumento
{
public String tipo;
public void tocar()
{
System.out.println("Tocar un Instrumento");
}
}
class Guitarra extends Instrumento
{
@Override
public void tocar()
{
//aca llamo al metodo de la clase Instrumento
super.tocar();
System.out.println("Tocar La Guitarra");
}
public static void main(String[] args)
{
Guitarra g1=new Guitarra();
g1.tocar();
}
}
HERENCIA
Es una de las propiedades mas importantes en Programación Orientada a Objetos por
que permite a una clase Padre compartir la misma estructura de datos (Variables) y
comportamiento (Métodos) a otra clase Hija.
La herencia minimiza la necesidad de duplicar código.
class Papito
{
private String color,tipcabello,ojos;
public Papito(String color, String tipcabello, String ojos) {
this.color = color;
this.tipcabello = tipcabello;
this.ojos = ojos;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getTipcabello() {
return tipcabello;
}
public void setTipcabello(String tipcabello) {
this.tipcabello = tipcabello;
}
public String getOjos() {
return ojos;
}
public void setOjos(String ojos) {
this.ojos = ojos;
}
}
public class Hijo extends Papito
{
String name;
public Hijo(String color, String tipcabello, String ojos,String name)
{
super(color,tipcabello,ojos);
this.name = name;
}
public void mostrar()
{
System.out.println(name+"= A heredado lo sgte:"+"\n"+getColor()+"\n"+getOjos()+"\n"+getTipcabello());
}
public static void main(String[] args)
{
Hijo h1=new Hijo("Moreno","Crespo","Gato","Lucho");
h1.mostrar();
}
}
miércoles, 11 de noviembre de 2015
IF-ELSE,Switch
Las sentencia if nos permite elegir si se ejecuta o no las instrucciones dadas, es una expresión que debe ser evaluada.
if(expresión)
sentencia
Pero,y si queremos ejecutar la sentensia falsa, para esto usamos la sentencia else
por ejemplo: Dependiendo de que el usuario pulse el boton de OK o el botón de Cancelar en una ventana de alarma. De esta forma se capturaria todo.
/*Respuesta dependiente del boton que haya pulsado el usuario
Ok o Cancel*/
if(respuesta == Ok){
. . .
//Codigo para la accion Ok
. . .
}else{
. . .
//Codigo para la acción Cancel
. . .
}
La sentencia Switch permite seleccionar entre multiples alternativas posibles, la expresión del switch es una variable int o char, puede tomar los valores , entre otros.
switch (opcion)
{
caso 1:
descuento = 10;
break;
caso 2:
te descuento = 5;
break;
default:
descuento = 0;
break;
}
Suscribirse a:
Comentarios (Atom)




