I ANTECEDENTES 1.1 En la Programación Estructurada y la

Anuncio
I ANTECEDENTES
1.1 En la Programación Estructurada y la Programación
Procedural lo mas importante es el procedimiento que se esta
desarrollando a través de un lenguaje de programación.
1.2 En Programación Orientada a Objetos, se hace un gran
énfasis a los datos, y todo gira alrededor de ellos.
1.3 El resultado es un lenguaje que se ha mostrado ideal para
desarrollar aplicaciones de usuario final seguras, distribuidas y
basadas en red en un amplio rango de entornos desde los
dispositivos de red embebidos hasta su uso para soluciones en
Internet.
1.4 Características en el Diseño de Java :
- Sencillo, orientado a objetos y familiar
- Robusto y seguro
- Independiente de la arquitertura y portable
- Alto rendimiento:
- Interpretado, multi-hilo y dinámico
1.5 Características del Lenguaje
- Lenguaje de propósito general
- Lenguaje Orientado a Objetos.
- Sintaxis inspirada en la de C/C++.
- Lenguaje multiplataforma: Los programas Java se ejecutan sin
variación (sin recompilar) en cualquier plataforma soportada (Windows,
UNIX, Mac, etc.)
-- Lenguaje interpretado: El intérprete a código máquina (dependiente
de la plataforma) se llama Java Virtual Machine (JVM). El compilador
produce un código intermedio independiente del sistema denominado
bytecode ó código byte.
-- Lenguaje gratuito: Creado por SUN Microsystems, que distribuye
gratuitamente el producto base, denominado JDK (Java Development
Toolkit) o actualmente J2SE (Java 2 Standard Edition).
-- API distribuida con el J2SE muy amplia. Código fuente de la API
disponible.
Explique los siguientes términos, haciendo hincapié en las dif erencias:
Java 2 Estándar Edition (J2SE) vs Ja va Runtime Environment
(JRE)
Explicar los siguiente conceptos:
- Independiente de la arquitertura y portable:
II Utilizando Clases Definidas en Java
Una aplicación es una clase de Java que corre como una específica
aplicación en cualquier ambiente operativo, puede tener referencias a
archiv os, interfaz gráfica (si se desea), etc.
Un applet es una clase de Java que corre dentro de un navegador y que
no puede hacer referencias a archivos, también posee su interfaz
gráfica.
Aplicación
public class Hola
{
public static void main(String args[])
{
System.out.println("Hola a todos");
}
}
Esto sería una aplicación con interfaz modo texto para desplegar
un Hola.
- La aplicación anterior utiliza un método llamado println(),
explique este método.
- A continuación se muestra un ejemplo de aplicación gráfica:
import java.awt.*;
import java.applet.*;
public class AppletDibujos1 extends Applet {
public void paint(Graphics g) {
g.drawString("Hola", 100, 100);
}
}
Explique las siguientes instrucciones:
import java.applet.*
extends Applet
public void paint(Graphics g)
g.drawString("Hola", 100, 100);
Modifique la anterior aplicación grafica para que dibuje la
palabra FITEC en la posición: 20,20
Tipos de Datos, Variables y Operadores
En Java existen dos categorías de tipos de datos:
* Los tipos primitivos son los que permiten manipular valores
numéricos (con distintos grados de precisión), caracteres y
valores boléanos (verdadero / falso).
* Referencias. Las cuales corresponden a clases y objetos que
se tratarán posteriormente.
Tipos primitivos
Los Tipos Primitivos son:
boolean: Puede contener los valores true o false.
byte: Enteros. Tamaño 8-bits. Valores entre -128 y 127.
short: Enteros. Tamaño 16-bits. Entre -32768 y 32767.
int: Enteros. Tamaño 32-bits. Entre -2147483648 y
2147483647.
long: Enteros. Tamaño 64-bits. Entre
-9223372036854775808 y 9223372036854775807.
float: Números en coma flotante. Tamaño 32-bits.
double: Números en coma flotante. Tamaño 64-bits.
char: Caracteres. Tamaño 16-bits. Unicode. Desde
'\u0000' a '\uffff' inclusive. Esto es desde 0 a 65535
Variables
Una variable es un área en memoria que tiene un nombre y un
Tipo asociado. El Tipo es o bien un Tipo primitivo o una
Referencia.
Nomenclatura:
El ; es el separador de instrucciones en Java.
El símbolo // indica comentarios de línea, se ponen
después de una instrucción para comentarla, el
compilador no las toma al detectarlas.
En Java las mayúsculas y minúsculas son
significativas. No es lo mismo el nombre letra que Letra.
Todas las palabras reservadas del lenguaje van en
minúsculas.
El nombre de una Clase en Java, la primera letra es
Mayúscula y todas las demás en minúscula, por el
contrario los objetos van en minúscula.
La declaración y la asignación se pueden combinar en una sola
expresión:
int i = 5 ;
char letra = 'c';
boolean flag = false ;
Operaciones Básicas
En java al igual que en C++ se tienen una serie de operadores
que ayudan a obtener cálculos, dependiendo de los valores a
utilizar, Java trabaja con los siguientes operadores:
Operadores Aritméticos
El operador / funciona de diferente manera si trabaja con
datos de tipo entero o de tipo flotante. Con datos de tipo flotante
funciona de la manera tradicional; pero al realizarse una división
entre dos números enteros, el operador / regresa el cociente
de la división entera; es decir, regresa la parte entera del
resultado (si hay fracción la elimina).
Por ejemplo:
7/3 da como resultado 2
pero
7.0/3.0 da como resultado 2.3333..
El operador % calcula el residuo de la división entera y sólo
existe para datos de tipo entero
Por ejemplo:
10 %3
da como resultado 1
Otros Operadores aritméticos
En Java, al igual que en C++, existen también los siguientes
operadores aritméticos:
++ incremento
-- decremento
Es decir:
x++ ó ++x es equivalente a x = x+1
x-- ó --x es equivalente a x = x-1
Estos operadores son unitarios, es decir, trabajan con un solo
operando y solamente se pueden utilizar con variables de tipo
entero.
Los operadores se pueden utilizar antes o después del nombre
de la variable y funcionan de diferente manera:
Si se ponen antes, primero se realiza la operación
(incremento o decremento) y luego se utiliza el valor de
la variable en la expresión en la que se encuentre.
Si se pone después, primero se utiliza el valor de la
variable en la expresión y luego se lleva a cabo la
operación (incremento o decremento).
Por ejemplo:
Supón que a = 10 y c = 4
La operación
v = a * c++;
v toma el valor de 40 y c
queda con el valor de 5
La operación
v = a * ++c;
v toma el valor de 50 y c
queda con el valor de 5
Algunos Métodos Matemáticos Predefinidos
Java contiene una serie de métodos matemáticos que puedes
utilizar en tus clases, para realizar algún cálculo, son tomados de
la clase Math, esta viene dentro del paquete java.lang, entonces
para poder tomarlos dentro de una clase debes de usar la
instrucción
import java.lang.Math;
Antes de iniciar tu applet o aplicación. Algunos de los métodos a
utilizar son:
pub lic final static double e
da el valor de e.
pub lic final static doub le PI
da el valor de pi.
pub lic static int abs(int a) da el valor ab soluto de un entero
dado.
pub lic static long abs(float a) da el valor ab soluto de un numero
de punto flotante.
pub lic static doub le cos(doub le a) que te da el coseno de un
valor de dob le precisión.
pub lic static doub le exp(doub le a) te da el valor de e a para un
valor a de dob le precisión.
pub lic static doub le pow(double a, double b ) te da el valor de
ab para a y b de dob le precisión.
pub lic static double sqrt(doub le a) ob tiene el valor de la raíz
cuadrada de un valor a de dob le precisión.
¿Cómo se utilizan?
Lo anterior es la definición de cada uno de los métodos de la
clase Math, vamos a entender el uso de uno de ellos.
public static double sqrt(double a) obtiene el valor
de la raíz cuadrada de un valor a de doble precisión.
La definición anterior describe que sqrt es un método de tipo
double y el parámetro que toma es un double, entonces algunos
ejemplos de su uso son:
En ejemplo 1 vemos claramente como a b le será asignado el
valor real 5.0, ya que esa es la raíz cuadrada de 25.0
Lectura de Datos
Dentro de un applet es sencillo tomar algún dato del usuario para realizar
algún cálculo.
Es difícil explicar detalladamente los dif erentes objetos en este momento
que requieres para tomar un dato de la ventana del applet, cada objeto
utilizado será explicado detalladamente en unidades posteriores, pero es
importante que ya empieces a tomar datos del usuario, es por eso que te
daremos los objetos más simples en este momento.
Esto se hace a través de crear un objeto de la clase TextField, el cual
sirve para que el usuario teclee algún dato dentro del objeto, en la clase
TextField existen diferentes métodos, es necesario utilizar el método
getText() para tomar el dato del usuario y este método regresa un objeto
de la clase String (cadena de caracteres), el cual se debe pasar a entero
o número de punto flotante, utilizando la clase Integer o utilizando la
clase Double (revisar ejemplo abajo).
Dentro de un Applet el método paint nos sirve para dibujar. En el método
constructor (método con el mis mo nombre de la clase) creamos objetos
de la clase de elementos de interfaz gráfica, como TextField, TextArea,
Label, Button, etc., y se añaden a la ventana del applet con el método
add.
Cuando tomamos un dato del usuario, la manera que este le dice al
applet que ya ha introducido el dato y quiere hacer el cálculo es dando un
clic a un botón, el cual es creado dentro del applet por medio de la clase
Button, para poder introducir las instrucciones para hacer algún cálculo
cuando el usuario ya dio clic en el botón, debemos introducir éstas en el
método actionPerformed, este método pertenece a la clase
ActionListener, es entonces que la clase que estamos escribiendo que
hereda de la clase Applet (clase AppletDaCuadrado en este caso),
debe implementar la clase ActionListener para poder utilizar este método
y dar instrucciones para cuando se da clic en el botón.
Es decir cuando queremos utilizar un Applet debemos heredar de la
clase Applet, esto lo hacemos en la misma declaración de la clase:
public class AppletDaCuadrado extends Applet
{
Habiendo definido previamente la instrucción import java.applet.*;
el cual toma la clase Applet previamente definida por Java en la API.
Si un applet requiere utilizar elementos gráficos que el usuario utilizará
para definir que requiere una acción como la de dar un clic en un botón,
entonces ese Applet necesita implementar la interface ActionListener,
la cual tiene métodos que ayudan a definir acciones para cuando el
usuario da un clic en un botón, quedando entonces la declaración del
applet como:
public class AppletDaCuadrado extends Applet implements
ActionListener {
Es importante que no te sientas muy presionado por tener una serie de
métodos nuevos, dentro de la clase Applet, pero pronto entre más
ejercicios realices, más fácil te será entender estos nuevos métodos.
Que hace el siguiente método:
public void actionPerformed(ActionEvent ae) {
double num = Double.parseDouble(t1.getText());
t2.setText(""+Math.pow(num,2.0));
}
Explque la sig. linea
b.addActionListener(this);
POO.
Generalidades
Esta tecnología ofrece beneficios inherentes que dan ventajas a
nivel técnico y de dirección de proyectos. Por los anterior a
desplazado a otras(basadas en transacciones).
Esta tecnología se empezó a usar hace 20 años. Pero sus
orígenes son de hace aproximadamente 40 años.
Motivación
Durante años, los programadores se han dedicado a construir
aplicaciones muy parecidas que resolvían una y otra ve z los
mismos problemas. Para conseguir que los esfuerzos de los
programadores puedan ser utilizados por otras personas se creó
la POO. Aquí se consigue que el código se pueda reutilizar.
Cómo se piensa en objetos
Pensar en términos de objetos es muy parecido a cómo lo
haríamos en la vida real. Por ejemplo vamos a pensar en un
coche para tratar de modelizarlo en un esquema de POO.
Diríamos que el coche es el elemento principal que tiene una
serie de características, como podrían ser el color, el modelo o
la marca. Además tiene una serie de funcionalidades
asociadas, como pueden ser ponerse en marcha, parar o
estacionarse.
Pues en un esquema POO el coche sería el ob jeto, las
propiedades serían las características como el color o el modelo
y los métodos serían las funcionalidades asociadas como
ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un
esquema POO una fracción, es decir, esa estructura matemática
que tiene un numerador y un denominador que divide al
numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el
numerador y el denominador. Luego podría tener varios
métodos como simplificarse, sumarse con otra fracción o
número, restarse con otra fracción, etc.
estamos haciendo es programar una clase. En los ejemplos anteriores
en realidad hablábamos de las clases coche o fracción porque sólo
estuvimos definiendo, aunque por encima, sus formas.
* Una clase define el molde con el que construiremos muchos
objetos que tendrán la misma estructura.
* Es una abstracción que describe características comunes de
los objetos que se podrán crear.
Propiedades en clases (variables)
Las propiedades o atributos son las características de los
objetos. Cuando definimos una propiedad normalmente
especificamos su nombre y su tipo. Nos podemos hacer a la idea
de que las propiedades son algo así como variables donde
almacenamos datos relacionados con los objetos.
Comportamiento (Métodos en las clase s)
Son las funcionalidades asociadas a los objetos. Cuando
estamos programando las clases las llamamos métodos. Los
métodos son como funciones que están asociadas a un objeto.
OBJ ETOS
Los objetos son ejemplares de una clase cualquiera. Cuando
creamos un ejemplar tenemos que especificar la clase a partir de
la cual se creará. Esta acción de crear un objeto a partir de
una clase se llama instanciar Por ejemplo, un objeto de la
clase fracción es por ejemplo 3/5. El concepto o definición de
fracción sería la clase, pero cuando ya estamos hablando de
una fracción en concreto 4/7, 8/1000 o cualquier otra, la
llamamos objeto.
*
*
Una instancia es un objeto creado a partir de una clase
Cada instancia tiene identidad única.
Para crear un objeto se tiene que escribir una instrucción
especial que puede ser distinta dependiendo el lenguaje de
programación que se emplee, pero será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear
una instancia de la clase que sigue a continuación. Dentro
de los paréntesis podríamos colocar parámetros con los que
inicializar el objeto de la clase coche.
Estructura de los objetos
Estos objetos se podrán utilizar en los programas, por ejemplo
en un programa de matemáticas harás uso de objetos fracción y
en un programa que gestione un taller de coches utilizarás
objetos coche. Los programas Orientados a objetos utilizan
muchos objetos para realizar las acciones que se desean
realizar y ellos mismos también son objetos. Es decir, el taller de
coches será un objeto que utilizará objetos coche, herramienta,
mecánico, recambios, etc.
1. Información:
Definición de POO
Estados en objetos
* Básicamente es un conjunto de técnicas que permiten
modelar y construir sistemas
* Los sistemas generadores están compuestos por objetos
que interactúan entre si
CLASES
Las clases son declaraciones de objetos, también se podrían
definir como abstracciones de objetos. Es to quiere decir que la
definición de un objeto es la clase. Cuando programamos unobjeto y
definimos sus características y funcionalidades en realidad lo que
-Los objetos almacenan información en atributos
2. Comportamiento:
-El comportamiento de los objetos esta determinado en el
conjunto de operaciones (métodos) que ofrecen.
3. Pueden combinarse objetos mediante relaciones de herencia
o composición.
Cuando tenemos un objeto sus propiedades toman valores. Por
ejemplo, cuando tenemos un coche la propiedad color tomará un
valor en concreto, como por ejemplo rojo o gris metalizado. El
valor concreto de una propiedad de un objeto se llama
estado.
Para acceder a un estado de un objeto para ver su valor o
cambiarlo se utiliza el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por
último el nombre de la propiedad a la que deseamos acceder. En
este ejemplo estamos cambiando el valor del estado de la
propiedad del objeto a rojo con una simple asignación.
Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una
llamada a un método. Por ejemplo, cuando le decimos a un
objeto coche que se ponga en marcha estamos pasándole el
mensaje “ponte en marcha”. Para mandar mensajes a los
objetos utilizamos el operador punto, seguido del método que
deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay
que colocar paréntesis igual que cualquier llamada a una
función, dentro irían los parámetros.
Herencia
Permite definir un objeto a partir de otro.
La herencia sirve para crear objetos que incorporen
propiedades y métodos de otros objetos. Así podremos
construir unos objetos a partir de otros sin tener que reescribirlo
todo.
Las clases no están aisladas, sino que se relacionan entre sí,
formando una jerarquía de clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que
pertenecen. La herencia organiza y facilita el polimorfismo y el
encapsulamiento permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes.
Estos pueden compartir (y e xtender) su comportamiento sin
tener que volver a implementarlo. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas
en árb oles o enrejados que reflejan un comportamiento común.
Cuando un objeto hereda de más de una clase se dice que
hay herencia múltiple.
ENCAPSULAMIENTO
El encapsulamiento separa las características esenciales
de las no esenciales (métodos y variables de tipo públic o
private) dentro de un objeto.
Es evidente que el
encapsulamiento se logra gracias a la abstracción y el
ocultamiento
Abstracción: La abstracción consiste en expresar las
características esenciales de un objeto, así como su
comportamiento. Las cuales distinguen al objeto de los demás.
Además de distinguir entre los objetos provee límites
conceptuales.
Ocultamiento: Es la capacidad de ocultar los detalles internos
del comportamiento de una Clase y exponer sólo los detalles
que sean necesarios para el resto del sistema.
POLIMORFISMO
proporcionan medios más estáticos (en "tiempo de compilación")
de polimorfismo, tales como las plantillas y la sobrecarga de
operadores.
¿Cuáles son las ventajas de un lengua je orientado a
objetos?
Fomenta la reutilización y extensión del código.
Permite crear sistemas más complejos.
Relacionar el sistema al mundo real.
Facilita la creación de programas visuales.
Construcción de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento del software
Resumen
¿Por qué seguimos buscando nuevas técnicas de
desarrollo? Por el aumento de la complejidad de
los sistemas.
En un programa orientado a objetos tendremos a
un conjunto de objetos colaborando entre ellos.
La orientación a objetos es paradigma de que
está de moda para el desarrollo de software.
Un objeto es una abstracción conceptual del
mundo real que se puede traducir a un lenguaje
de programación orientado a objetos.
Un objeto del mundo real tiene características y
comportamientos, y de la misma manera, un
objeto del mundo del software tiene variables y
métodos.
Una Clase es una plantilla que define las
variables y métodos a ser incluidas en un tipo de
objeto específico.
Los objetos también son llamados instancias de
la Clase. Los objetos sólo almacenan su estado.
De dice que un objeto tiene estado cuando tiene
valores en sus variables.
Los objetos se comunican entre ellos usando los
mensajes. Un mensaje es la invocación de un
método del objeto.
La orientación a objetos requiere de una
metodología que integre el proceso de desarrollo
y un lenguaje de modelamiento con
herramientas y técnicas adecuadas.
ALGORITMOS EN J AVA
1. Cual de las siguientes sentencias esta mal definida
a. char c = “cadena”;
b. int a = 5;
c. float b = 2.0;
c. int c = 12/4;
Es un mecanismo derivado del mecanismo de interacción de las
instancias (mensajes).
2. Teniendo a= 10 c= 5 y realizando la siguiente operación:
v= a * ++c;
Que hará esta sentencia:
Comportamientos diferentes, asociados a objetos distintos,
pueden compartir el mismo nombre, al llamarlos por ese nombre
se utilizará el comportamiento correspondiente al objeto más
especializado que se necesite usar. Algunos lenguajes
a. v toma el valor de 50 y c toma el valor de 6
b. v toma el valor de 60 y c toma el valor de 5
c. v toma el valor de 50 y c toma el valor de 5
d. v toma el valor de 60 y c toma el valor de 6
int num = 5 ;
int anio = 2000;
if ( a nio < 2011 && num > 0)
{
num += 1 ;
anio += num ;
}
System.out.println("NUMERO FAVORITO" + num);
}
4. Cual de las Siguientes instrucciones es correcta para tomar un
valor introducido en una caja de texto
a. num= Double.parseDouble(t1.getText0):
a. num= Double.ParseDouble(t1.gettext0):
a. num= Double.parseDouble(t1.GetText0):
a. num= double.parsedouble(t1.getText0):
5. De que tipo deberá ser x para que la instrucción de abajo
funcione correctamente, asumiendo que t2 es un objeto de la
clase TextField:
x= t2.getText0;
a. de clase String
b. de tipo integer
c. de tipo byte
d. de tipo boolean.
7. Para poder usar el método public static ins abs(int a); debo:
a. Haber importado la clase java.lang.Math
b. Haber importado la clase java.applet
c. No se debe importar ninguna clase.
d. Haber importado la clase java.lang.AWT
EXTRUCTURA IF-SWITCH
I- En los siguientes códigos( puntos 1 a 5) realice un análisis y una
Prueba de Escritorio. Finalmente AYUDESE con el cuadro para
Mostrar el println de cada código.
a. 1
e. 0
b. 6
f. 5
c. 12
g.9
d. 8
h. N.A
1.
public class Prueba1 {
public static void main (String[] args) {
int deposito = 2;
int acum = 6 ;
while ( deposito < acum ) {
deposito += 2*deposito;
}
System.out.println(" EL ACUMULADO ES:" + acum);
}
}
RTA: EL ACUMULADO ES: 6
2.
public class Prueba2 {
public static void main (String[] args) {
int acum = 5 ;
int desc = 0;
if ( desc < 6 && acum > 5)
{
desc = desc + 2;
acum = acum + desc;
}
System.out.println("SU DESCUENTO" + desc);
}
}
}
4.
public class Prueba4 {
public static void main (String[] args) {
int acum = 2 ;
int i = 4 ;
if ( i > 25 || acum < 5)
{
i = i + 3;
acum = acum + i;
}
System.out.println("ACUMULADO ES:" + acum);
} }
5. Cuantas veces se entra al ciclo de la siguiente aplicación:
public class Prueba5 {
public static void main (String[] args) {
int pbruto = 0 ;
for (int i = 2 ; i < = 6; i++) {
pbruto += i++;
}
System.out.println("PRECIOBRUTO="+ pbruto);
}
}
6. Cuál de las siguientes trozos de codigo calcula de manera
correcta el factorial de un número: n= numero leído
int factorial = 1;
// A.
for (int i=1; i<=n; i++) {
factorial = factorial * i;
}
int i = 1;
// C.
for (int i=1; n<=i; i++) {
factorial = factorial * i;
}
int factorial = 5;
// B.
for (int i=1; i=n; i++) {
factorial = factorial * i;
}
D.
Ninguno de los anteriores.
7.
Que imprime el siguiente código:
public class Ciudad2 {
public static void main (String[] args) {
int ciudad = 3 ;
switch (ciudad)
{
case 1:
System.out.println("Bogota");
break;
case 2:
System.out.println("Medellin");
break;
case 3:
System.out.println("Cali");
case 4:
System.out.println("Bucaramanga");
default:
System.out.println("Codigo Inexistente");
}
}
}
3.
public class Prueba3 {
public static void main (String[] args) {
8. Modificar y corregir la class Ciudad2. Para hacer un programa
que tome un numero de 1 a 5 e imprima su correspondiente
traducción en ingles (1=ONE, 2=Two, 3=Trhee. 4=Four, 5=
FIVE).
Descargar