Vous êtes sur la page 1sur 35

ACTIVIDAD 10: TRABAJO COLABORATIVO No.

2
PROGRAMACION ORIENTADA A OBJETOS
GRUPO: 301403_8




PRESENTADO POR:
CLAUDIA PARRAGA VARGAS
Cdigo: 55195716
JORGE ALEJANDRO CARDONA FLOREZ
CODIGO: 71228681

LUCRECIO HEL SANTA SANTA
COD: 70782097
YESIKA ALEXANDRA GUTIERREZ
CODIGO: 55216909



TUTOR:
CESAR ORLANDO JIMENEZ ANGARITA



UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
PROGRAMA INGENIERIA DE SISTEMAS
2013


INTRODUCCION



Todo lo que vemos a nuestro alrededor puede ser considerado un objeto, la
Programacin Orientada a Objetos trabaja de esta manera: todo el programa
est construido en base a diferentes componentes (objetos), cada uno tiene un
rol especfico en el programa y todos los componentes pueden comunicarse
entre ellos de forma predefinida. Es una forma especial de programar, ms
cercana a como expresaramos las cosas en la vida real que otros tipos de
programacin.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en trminos de objetos, propiedades,
mtodos y otras cosas que veremos rpidamente para aclarar conceptos y dar
una pequea base que permita soltarnos un poco con este tipo de
programacin.

La orientacin a objetos promete mejoras de amplio alcance en la forma de
diseo, desarrollo y mantenimiento del software ofreciendo una solucin a
largo plazo a los problemas y preocupaciones que han existido desde el
comienzo en el desarrollo de software: la falta de portabilidad del cdigo y
reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y
tcnicas de codificacin no intuitivas.
























OBJETIVOS


Interpretar y dar solucin a los captulos propuestos
Identificar y reconocer la estructura de un objeto
desarrollar en totalidad el trabajo colaborativo segn la rbrica de
evaluacin
Participacin activa de los integrantes del grupo
Conocer y manejar los fundamentos de java
Identificar el anlisis de la estructura y el comportamiento de un objeto

















SOLUCIN DE LAS ACTIVIDADES COMPLEMENTARIAS
UNIDAD 2. ESTRUCTURA DE UN OBJETO - INTRODUCCION A JAVA



CAPTULO 4. ANLISIS DE LA ESTRUCTURA Y COMPORTAMIENTO DE
UN OBJETO


Crear el siguiente objeto de la figura:


Donde demuestre la creacin de los 6 mtodos que consta la clase operacin.


Ejemplo:

importjavax.swing.JOptionPane;
classOperacion {
int n1, n2;
float res;
voidsuma (int n1, int n2)
{
res = n1 + n2;
}
voidresta (int n1, int n2)
{
res = n1 - n2;
}
void multi (int n1, int n2)
{
res = n1 * n2;
}
void div (float n1, float n2)
{
res = n1 / n2;
}
void mod (int n1, int n2)
{
res = n1 % n2;
}
voidigual (int n1, int n2)
{
if (n1 == n2)
res = 1;
else
res = 0;
}
floatgetRes()
{
return res;
}

public static void main(String args[])
{
int a1, a2;
float total;
Operacion op1;
op1 = new Operacion();
a1 = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduce el primer
valor"));
a2 = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduce el segundo
valor"));
op1.suma(a1, a2);
total = op1.getRes();
JOptionPane.showMessageDialog(null, a1 + " + " + a2 + " = " + total);
op1.resta(a1, a2);
total = op1.getRes();
JOptionPane.showMessageDialog(null, a1 + " - " + a2 + " = " + total);
op1.multi(a1, a2);
total = op1.getRes();
JOptionPane.showMessageDialog(null, a1 + " * " + a2 + " = " + total);
if(a2 != 0)
{
op1.div(a1, a2);
total = op1.getRes();
JOptionPane.showMessageDialog(null, a1 + " / " + a2 + " = " + total);
}
else
JOptionPane.showMessageDialog(null, "DIVISION Operacionimposible de
realizar");
if(a2 != 0)
{
op1.mod(a1, a2);
total = op1.getRes();
JOptionPane.showMessageDialog(null, a1 + " % " + a2 + " = " + total);
}
else
JOptionPane.showMessageDialog(null, "MODULO Operacion imposible de
realizar");
op1.igual(a1, a2);
total = op1.getRes();
if(total == 1)
JOptionPane.showMessageDialog(null, a1 + " igual " + a2);
else
JOptionPane.showMessageDialog(null, a1 + " diferente " + a2);
}
}

cul es la diferencia de la programacin orientada objetos con
otros lenguajes?

Los objetos tienen toda la informacin (atributos) que los diferencia de otros
pertenecientes a otra clase. Por medio de unos mtodos se comunican los
objetos de una misma o diferente clase produciendo el cambio de estado de los
objetos. Esto hace que a los objetos se les trate como unidades indivisibles en
las que no se separan la informacin ni los mtodos usados en su tratamiento.
Este lenguaje tiene su origen en un lenguaje que fue diseado por los
profesores Ole-Johan Dahl y Kristen Nygaard en Noruega. Este lenguaje de
programacin orientado a objetos fue el Simula 67 que fue un lenguaje creado
para hacer simulaciones de naves.
Son lenguajes dinmicos en los que estos objetos se pueden crear y modificar
sobre la marcha. Esta programacin orientada a objetos (POO) tomo auge a
mediados de los aos ochenta debido a la propagacin de las interfaces
grficas de usuarios, para lo que los lenguajes de programacin orientados a
objetos estn especialmente dotados.
Entre los principales lenguajes de este tipo tenemos:
Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Lxico (en
castellano), Objective-C, Ocaml, Oz, PHP, PowerBuilder, Python, Ruby y
Smalltalk.
No todos estos lenguajes son especficamente orientados a objetos.
Sino que algunos de ellos se le han aadido extensiones orientadas a
objetos.
Un nuevo paso en los lenguajes de programacin es la Programacin
orientada a aspectos (POA). Actualmente est en fase de desarrollo.
La programacin estructurada es una forma de escribir programas de
ordenador (programacin de computadora) de forma clara. Para ello
utiliza nicamente tres estructuras: secuencia, seleccin e iteracin;
siendo innecesario y no permitindose el uso de la instruccin o
instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION,
EXIT SUB o mltiples RETURN).
La programacin lgica consiste en la aplicacin del corpus de
conocimiento sobre lgica para el diseo de lenguajes de programacin;
no debe confundirse con la disciplina de la lgica computacional; la
programacin lgica comprende dos paradigmas de programacin: la
programacin declarativa y la programacin funcional.
LAS PRINCIPALES DIFERENCIAS ENTRE LA PROGRAMACIN
ESTRUCTURADA Y LA ORIENTADA A OBJETOS SON.
La programacin orientada a objetos es ms moderna, es una evolucin
de la programacin estructurada que plasma en el diseo de una familia
de lenguajes conceptos que existan previamente con algunos nuevos.
La programacin orientada a objetos se basa en lenguajes que soportan
sintctica y semnticamente la unin entre los tipos abstractos de datos
y sus operaciones (a esta unin se la suele llamar clase).
La programacin orientada a objetos incorpora en su entorno de
ejecucin mecanismos tales como el polimorfismo y el envo de
mensajes entre objetos.

En resumen:
LENGUAJES DE
PROGRAMACION
Un lenguaje de programacin es un conjunto limitado
de palabras y de smbolos que representan
procedimientos, clculos, decisiones y otras
operaciones que pueden ejecutar una computadora
TIPOS DE LENGUAJE DIFERENCIAS
LENGUAJE MAQUINA Es el sistema de cdigos directamente interpretable por un
circuito microprogramable, como el microprocesador de una
computadora o el microcontrolador de un autmata . Este
lenguaje est compuesto por un conjunto de instrucciones que
determinan acciones a ser tomadas por la mquina.


LENGUAJE DE BAJO
NIVEL
Se llaman de bajo nivel porque estn muy cercanos al hardware
del ordenador. Es necesario conocer a fondo la arquitectura de la
mquina para la que se va a programar. Este lenguaje es muy
complicado y la posibilidad de cometer errores es muy alta, por lo
que ya no se utiliza
LENGUAJES DE ALTO
NIVEL
Los primeros programas ensambladores producan slo una
instruccin en lenguaje de mquina por cada instruccin del
programa fuente. Para agilizar la codificacin, se desarrollaron
programas ensambladores que podan producir una cantidad
variable de instrucciones en lenguaje de mquina por cada
instruccin del programa fuente
LENGUAJES
COMPILADOS
En informtica, un lenguaje cuyos programas se traducen a
cdigo mquina antes de ejecutarse, a diferencia de un
lenguaje interpretado, cuyos programas se traducen y ejecutan
instruccin por instruccin.
LENGUAJES
INTERPRETADOS
En vez de traducir el programa fuente y grabar en forma
permanente el cdigo objeto que se produce durante la corrida
de compilacin para utilizarlo en una corrida de produccin
futura, el programador slo carga el programa fuente en la
computadora junto con los datos que se van a procesar
LENGUAJES DE
PROGRAMACION
DECLARATIVOS


Aquellos lenguajes de programacin en los cuales se le indica
a la computadora qu es lo que se desea obtener o qu es lo
que se est buscando, por ejemplo: Obtener los nombres de
todos los empleados que tengan ms de 32 aos. Eso se
puede lograr con un lenguaje declarativo como SQL.
LENGUAJE DE
PROGRAMACION
VISUAL C
Lo han convertido quiz en lo ms cercano a un lenguaje de
programacin estandarizado en el sector de microordenadores
o microcomputadoras y estaciones de trabajo. C es un
lenguaje compilado que contiene un pequeo conjunto de
funciones incorporadas dependientes de la mquina.
LENGUAJE EXPERTO
PASCAL
lenguaje compilado y estructurado, basado en el lenguaje
ALGOL, que simplifica su sintaxis a la vez que incluye nuevos
tipos de datos y estructuras, como sub rangos, tipos de datos
enumerados, archivos, registros y conjuntos.

LENGUAJE LISP
Es un lenguaje interpretado, en el que cada expresin es una
lista de llamadas a funciones. Este lenguaje se sigue utilizando
con frecuencia en investigacin y en crculos acadmicos, y fue
considerado durante mucho tiempo el lenguaje modelo para la
investigacin de la inteligencia artificial

LENGUAJE JAVA



POO
Define una mquina virtual independiente de la plataforma
donde se ejecuta, que procesa programas, llamados Applets,
descargados desde el servidor Web. Adems, debido al modo
de ejecucin de los Applets, este lenguaje es muy seguro
frente a la presencia y ataque de virus informticos.

Es un paradigma de programacin que usa objetos y sus
interacciones para disear aplicaciones y programas de
computadora. Est basado en varias tcnicas, incluyendo
herencia, modularidad, polimorfismo y encapsulamiento.







Cules son las desventajas de la programacin orientada a
objetos?

DENTRO DE LAS DESVENTAJAS DE LA PROGRAMACIN ORIENTADA A
OBJETOS TENEMOS
Limitaciones para el programador. No obstante que la tecnologa
orientada a objetos no es nueva, un gran porcentaje de programadores
no estn familiarizados con los conceptos de dicha tecnologa. En otras
palabras, la lgica de la programacin estructurada sigue siendo
predominante en la mayora de los desarrolladores de software, despus
de haber revisado de forma breve los principios de la programacin
orientada a objetos, nos es claro que en sta se requiere una lgica de
pensamiento totalmente diferente a la lgica comnmente utilizada para
la programacin estructurada.
Tamao excesivo en las aplicaciones resultantes. La gran mayora
de los equipos de cmputo cuentan con capacidades tanto de
almacenamiento como de memoria lo suficientemente buena como para
ejecutar la mayora de las aplicaciones que puedan desarrollarse con la
tecnologa orientada a objetos, sin embargo existen casos en los que lo
anterior no se cumple. Una de las desventajas de la programacin
orientada a objetos es que cuando se heredan clases a partir de clases
existentes se heredan de forma implcita todos los miembros de dicha
clase aun cuando no todos se necesiten, lo que produce aplicaciones
muy grandes que no siempre encajan en los sistemas con los que se
disponga.

Velocidad de ejecucin. Esto tiene que ver, en cierto modo, con el
punto anterior, una aplicacin innecesariamente pesada en muchas
ocasiones es ms lenta de ejecutar que una aplicacin conformada
nicamente por los mdulos necesarios.
Realiza una estructura por ejemplo del computador de su casa donde
indique cuales son los datos y cules son los mtodos.
Clase computador con los datos: carta, clculo, fotos, estudiantes, animacin.
Y los mtodos: abrir, cerrar, modificar, borrar, imprimir, guardar.





Computador
Carta.docx
Clculo.xlsx
Fotos.jpg
Estudiantes.accde
Animacin.gif
Abrir()
Cerrar()
Modificar()
Borrar()
Imprimir()
Guardar()

Investiga como es el comportamiento de los objetos en una clase
El comportamiento de los objetos de una clase se implementa mediante
funciones miembro o mtodos. Un mtodo es un conjunto de instrucciones que
realizan una determinada tarea y son similares a las funciones de los lenguajes
estructurados. Del mismo modo que hay variables de instancia y de clase,
tambin hay mtodos de instancia y de clase. En el primer caso, un objeto
llama a un mtodo para realizar una determinada tarea, en el segundo, el
mtodo se llama desde la propia clase.
Igualmente tenemos que el Comportamiento es como un objeto acta y
reacciona, en trminos de sus cambios de estado y de los mensajes que
intercambia. El comportamiento de un objeto representa su actividad
externamente visible y estable. Son las operaciones que una clase realiza
(llamadas tambin mensajes) las que dan cuenta de cmo se comporta la
clase. Por operacin se denota el servicio que una clase ofrece a sus clientes.
Un objeto puede realizar cinco tipos de operaciones sobre otro, con el propsito
de provocar una reaccin:

Modificador: altera el estado de un objeto.
Selector: accede al estado de un objeto, sin alterarlo.
Iterador: permite a todas las partes de un objeto ser accedidas en un
orden.
Constructor: crea un objeto y/o inicializa su estado.
Destructor: libera el estado de un objeto y/o destruye el objeto.
Una clase es un conjunto de objetos que comparten una estructura y
comportamiento comunes.
Clase representa una abstraccin, la esencia que comparten los objetos.
Un objeto es un ejemplo de una clase.
Un objeto no es una clase, y una clase no es un objeto (aunque puede
serlo, p.e. en Smalltalk).
Las clases actan como intermediarias entre una abstraccin y los
clientes que pretenden utilizar la abstraccin. De esta forma, la clase
muestra:
1. visin externa de comportamiento (interface), que enfatiza la
abstraccin escondiendo su estructura y secretos de
comportamiento.
2. visin interna (implementacin), que abarca el cdigo que se
ofrece en la interface de la clase.
El comportamiento de los objetos de una clase se implementa mediante
funciones miembro o mtodos. Un mtodo es un conjunto de instrucciones que
realizan una determinada tarea y son similares a las funciones de los lenguajes
estructurados.
Del mismo modo que hay variables de instancia y de clase, tambin hay
mtodos de instancia y de clase. En el primer caso, un objeto llama a un
mtodo para realizar una determinada tarea, en el segundo, el mtodo se llama
desde la propia clase.
La estructura y el comportamiento de objetos similares se definen en sus
clases comunes.

El comportamiento de los objetos de una clase se describe a travs de
un conjunto de mtodos.
Un mtodo simula una operacin (o proceso) que los objetos de la clase
saben realizar.
Los mtodos permiten "administrar" el estado de los objetos: cambiar los
valores de los atributos.
Los mtodos permiten consultar el estado de los objetos: conocer los
valores de los atributos
Sus operaciones o mtodos. (Comportamiento de los objetos de esa clase):
En la programacin orientada a objetos, un mtodo es una subrutina asociada
exclusivamente a una clase (llamados mtodos de clase o mtodos estticos) o
a un objeto (llamados mtodos de instancia). Anlogamente a los
procedimientos en los lenguajes imperativos, un mtodo consiste generalmente
de una serie de sentencias para llevar a cabo una accin, un juego de
parmetros de entrada que regularn dicha accin y, posiblemente, un valor de
salida (o valor de retorno) de algn tipo.
Algunos lenguajes de programacin asumen que un mtodo debe de mantener
el invariante del objeto al que est asociado asumiendo tambin que ste es
vlido cuando el mtodo es invocado. En lenguajes compilados
dinmicamente, los mtodos pueden ser objetos de primera clase, y en este
caso se puede compilar un mtodo sin asociarse a ninguna clase en particular,
y luego asociar el vnculo o contrato entre el objeto y el mtodo en tiempo de
ejecucin. En cambio en lenguajes no compilados dinmicamente o tipados
estticamente, se acude a precondiciones para regular los parmetros del
mtodo y postcondiciones para regular su salida (en caso de tenerla). Si alguna
de las precondiciones o postcondiciones es falsa el mtodo genera una
excepcin. Si el estado del objeto no satisface la invariante de su clase al
comenzar o finalizar un mtodo, se considera que el programa tiene un error de
programacin.
La diferencia entre un procedimiento (generalmente llamado funcin si
devuelve un valor) y un mtodo es que ste ltimo, al estar asociado con un
objeto o clase en particular, puede acceder y modificar los datos privados del
objeto correspondiente de forma tal que sea consistente con el comportamiento
deseado para el mismo. As, es recomendable entender a un mtodo no como
una secuencia de instrucciones sino como la forma en que el objeto es til (el
mtodo para hacer su trabajo). Por lo tanto, podemos considerar al mtodo
como el pedido a un objeto para que realice una tarea determinada o como la
va para enviar un mensaje al objeto y que ste reaccione acorde a dicho
mensaje.
ACTIVIDAD 2: PRACTICA DE LABORATORIO 2
PUNTO 1
Trabajar un programa en JAVA (JCreatorV3 LE) con Una base
de Datos teniendo en cuenta que tenga entidad relacin

package ConexionBd;

import java.sql.*;
import javax.swing.*;

/**
*
* @author TELECOS2008
*/
public class Conexion
{
private Connection con=null;//variable para realizar la conexion con la bd
JPanel panel;//panel para poder recibir en dnde mostrar los errores

//constructor que se encarga de obtener el panel
public Conexion(JPanel vent)
{
this.panel=vent;
}


//este metodo devuelve la conexion realizada con la base de datos
public Connection getCon() {
return con;
}

//este metodo se encarga de realizar la conexion
public void setCon(String name, String user, String psw)
{
//cargar el driver
try
{
Class.forName("com.mysql.jdbc.Driver");

//si el driver carga correctamente intento conectarme con la bd
try
{

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/"+name,
user,psw);
}//fin del segundo try
catch (Exception e)
{
JOptionPane.showMessageDialog(panel, "Error 002 ==> No se realiz
la conexion"+

"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}

}//fin del primero try
catch (Exception e)
{
JOptionPane.showMessageDialog(panel, "Error 001 ==> No se cargo el
driver"+

"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}
}//fin del metodo de conexion
//todo get deben retornar (return) con un tipo de variable, no tiene
parmetros
//ejemplo: return con

//set no retornan y son vacios, tiene parmetros

}//fin de la clase

PUNTO 2
Trabajar un programa en JAVA (JCreatorV3 LE) que genere un chat entre
Cliente Servidor
R//
/**
* ChatClient.java
*
* Basado en ChatApplet de Merlin Hughes
*/
import java.net.*;
import java.io.*;
import java.awt.*;
public class ChatClient extends Frame implements Runnable {
protected DataInputStream i;
protected DataOutputStream o;
protected TextArea output;
protected TextField input;
protected Thread listener;
public ChatClient (String title, InputStream i, OutputStream o) {
super (title);
this.i = new DataInputStream (new BufferedInputStream (i));
this.o = new DataOutputStream (new BufferedOutputStream (o));
setLayout (new BorderLayout ());
add ("Center", output = new TextArea ());
output.setEditable (false);
add ("South", input = new TextField ());
pack ();
show ();
input.requestFocus ();
listener = new Thread (this);
listener.start ();
}
public void run () {
try {
while (true) {
String line = i.readUTF ();
output.appendText (line + "\n");
}
} catch (IOException ex) {
ex.printStackTrace ();
} finally {
listener = null;
input.hide ();
validate ();
try {
o.close ();
} catch (IOException ex) {
ex.printStackTrace ();
}
}
}
public boolean handleEvent (Event e) {
if ((e.target == input) && (e.id == Event.ACTION_EVENT)) {
try {
o.writeUTF ((String) e.arg);
o.flush ();
} catch (IOException ex) {
ex.printStackTrace();
listener.stop ();
}
input.setText ("");
return true;
} else if ((e.target == this) && (e.id == Event.WINDOW_DESTROY)) {
if (listener != null)
listener.stop ();
hide ();
return true;
}

return super.handleEvent (e);
}
public static void main (String args[]) throws IOException {
if (args.length != 2)
throw new RuntimeException ("Syntax: ChatClient ");
Socket s = new Socket (args[0], Integer.parseInt (args[1]));
new ChatClient ("Chat " + args[0] + ":" + args[1],
s.getInputStream (), s.getOutputStream ());
}

PUNTO 3
Trabajar un programa en JAVA (JCreatorV3 LE) que encripte y
desencripte un texto numrico o alfabtico
R//
/*
* RSA.java
*
*
*/
import java.math.BigInteger;
import java.util.*;
import
java.io.*;

/**
*
* @author Algunas personas
*/
public class RSA {

int tamPrimo;
BigInteger n, q, p;
BigInteger totient;
BigInteger e, d;

/** Constructor de la clase RSA */
public RSA(int tamPrimo) {
this.tamPrimo = tamPrimo;
generaPrimos(); //Genera p y q
generaClaves(); //Genera e y d
}

public void generaPrimos()
{
p = new BigInteger(tamPrimo, 10, new Random());
do q = new BigInteger(tamPrimo, 10, new Random());
while(q.compareTo(p)==0);
}

public void generaClaves()
{
// n = p * q
n = p.multiply(q);
// toltient = (p-1)*(q-1)
totient = p.subtract(BigInteger.valueOf(1));
totient = totient.multiply(q.subtract(BigInteger.valueOf(1)));
// Elegimos un e coprimo de y menor que n
do e = new BigInteger(2 * tamPrimo, new Random());
while((e.compareTo(totient) != -1) ||
(e.gcd(totient).compareTo(BigInteger.valueOf(1)) != 0));
// d = e^1 mod totient
d = e.modInverse(totient);
}

/**
* Encripta el texto usando la clave pblica
*
* @param mensaje Ristra que contiene el mensaje a encriptar
* @return El mensaje cifrado como un vector de BigIntegers
*/
public BigInteger[] encripta(String mensaje)
{
int i;
byte[] temp = new byte[1];
byte[] digitos = mensaje.getBytes();
BigInteger[] bigdigitos = new BigInteger[digitos.length]
for(i=0; i<bigdigitos.length;i++){
temp[0] = digitos[i];
bigdigitos[i] = new BigInteger(temp);
}

BigInteger[] encriptado = new BigInteger[bigdigitos.length];

for(i=0; i<bigdigitos.length; i++)
encriptado[i] = bigdigitos[i].modPow(e,n);

return(encriptado);
}

/**
* Desencripta el texto cifrado usando la clave privada
*
* @param encriptado Array de objetos BigInteger que contiene el texto
cifrado
* que ser desencriptado
* @return The decrypted plaintext
*/
public String desencripta(BigInteger[] encriptado) {
BigInteger[] desencriptado = new BigInteger[encriptado.length];

for(int i=0; i<desencriptado.length; i++)
desencriptado[i] = encriptado[i].modPow(d,n);

char[] charArray = new char[desencriptado.length];

for(int i=0; i<charArray.length; i++)
charArray[i] = (char) (desencriptado[i].intValue());

return(new String(charArray));
}

public BigInteger damep() {return(p);}
public BigInteger dameq() {return(q);}
public BigInteger dametotient() {return(totient);}
public BigInteger damen() {return(n);}
public BigInteger damee() {return(e);}
public BigInteger damed() {return(d);}

}
CAPTULO 5. FUNDAMENTOS DE JAVA
Explique cul es la diferencia de la estructura de un programa en C
y Java

Java es programacin orientada a objetos, a diferencia de C que es de programacin
estructurada.
C es un lenguaje rpido y compilado, lo contrario de los que son interpretados. Claro
eso s que al agregar rapidez, agregamos tambin dificultad en su uso. Y Java es un
lenguaje, medio compilado, medio interpretado. Java necesita una compilacin previa
para poder ejecutarse en su intrprete: JVM (Java Virtual Machine: Mquina Virtual de
Java).
Java es extremadamente portable, necesita ser escrito solo una vez para correr en
cualquier mquina (de ah su lema: Write once, runeverywhere), ya que no es el
programa el que se adapta a la arquitectura ni al sistema, sino el intrprete. C no
permite esto a menos que escribamos en ANSI C (C estndar), cosa que muy poco
probable si estamos haciendo un programa con interfaz grfica o con algo de
complejidad.
Java es ms seguro. Si te das cuenta, nunca hemos escuchado hablar de virus escrito
en Java. Sera estpido decir aquello porque Java revisa la seguridad en tiempo de
compilacin. Cualquier indicio de inseguridad (referencias mal hechas, operaciones
peligrosas, etc.) en tu programa se traducir en un error. La potencia de C es la que le
da su peligrosidad, el acceso libre a la memoria, y otros factores que lo hacen el
lenguaje ms potente despus de Assembler.
Java es menos complicado por su no uso de punteros. Los punteros (o referencias) se
deben utilizar con cuidado en C, ya que dan un acceso ilimitado a lo que es la
memoria y disco duro del computador. Es por ello la capacidad de crear cdigo
malicioso con este lenguaje.
C es en realidad un lenguaje de bajo nivel (ms entendible para la mquina) con
instrucciones de alto nivel (ms comprensible por humanos), o sea, no muy
complicado de aprender para que sea de bajo nivel. En cambio, Java posee pocas
instrucciones de bajo nivel, con poco acceso al sistema y menor gestin de memoria
que con C, o sea, ms fcil pero menos control.
Java: Ventajas:
Escribe una vez, corre por cualquier lado.
Seguridad.
Robustez.
Recolector de basura (elimina referencias en desuso).
Quiz facilidad de aprendizaje a los que sepan C++.
o Soporta distintas codificaciones (caracteres especiales y
orientales).
Java: Desventajas:
Lenguaje interpretado.
Lentitud frente a un programa equivalente en C o C++.
Se necesita el intrprete para poder usar tu programa (me dara lata
tener que instalar el JRE.
Necesitas un compilador pesado y quiz un IDE pesado (opcional)
Si has estado viviendo en el mundo de la programacin estructurada,
puede que te cueste pasar a la POO.


Por otra parte:
C: Ventajas
Rapidez.
Potencia.
Acceso completo al sistema.
Lenguaje de bajo nivel con instrucciones de alto nivel.
Sin necesidad de intrpretes por ser compilado.
Existen muchos tutoriales y ayudas en Internet por su tiempo y difusin
entre los programadores.
Mayor control sobre el programa.
Adems muchos, pero MUCHOS programas que tienen licencia GNU (o
sea que puedes descargar los fuentes, editarlos, y modificarlos a tu
gusto) estn programados en C, incluyendo la prctica totalidad del S.O.
Linux.
C: Desventajas:
Sin recolector de basura (t mismo debes cerrar las referencias que no
uses ms)
Ms control = Ms dificultad
Las rutinas de bajo nivel no son portables.
Qu instrucciones debemos tener en cuenta para crear un
programa sencillo?


Para crear un programa sencillo en java hay que tener en cuenta las siguientes
instrucciones:


Un cdigo bsico es el siguiente:
public class MiPrimeraAplicacion {
public static void main (String[] args) {
System.out.println("HolaMundo");
}
}
Deberemos de tener cuidado en cmo escribimos el nombre del archivo ya que
Java es un lenguaje sensible a maysculas, es decir, reconoce el teclado
alfabtico de maysculas y minsculas.
El nombre del archivo deber de coincidir con el nombre de la clase principal.
publicclassMiPrimeraAplicacion<--> MiPrimeraAplicacion.java
Compilando mi aplicacin

Mtodos de definicin
En Java toda la lgica de programacin (Algoritmos) est agrupada en
funciones o mtodos.
Un mtodo es:
Un bloque de cdigo que tiene un nombre,
recibe unos parmetros o argumentos (opcionalmente),
contiene sentencias o instrucciones para realizar algo (opcionalmente) y
devuelve un valor de algn Tipo conocido (opcionalmente).
La sintaxis global es:
Tipo_Valor_devuelto nombre_mtodo(lista_argumentos) {
bloque_de_codigo;
}
Y la lista de argumentos se expresa declarando el tipo y nombre de los mismos
(como en las declaraciones de variables). Si hay ms de uno se separan por
comas.
Por ejemplo:
IntsumaEnteros( int a, int b ) {
int c = a + b;
return c;
}
El mtodo se llama sumaEnteros.
Recibe dos parmetros tambin enteros. Sus nombres son a y b.
Devuelveunentero.
En el ejemplo la clusula return se usa para finalizar el mtodo devolviendo el
valor de la variable c.
El termino void
El hecho de que un mtodo devuelva o no un valor son opcionales. En caso de
que devuelva un valor se declara el tipo que devuelve. Pero si no necesita
ningn valor, se declara como tipo del valor devuelto, la palabra reservada
void.
Por ejemplo:
voidhaceAlgo() {
. . .
}
Cuando no se devuelve ningn valor, la clusula return no es necesaria. Obsrvese
que en el ejemplo el mtodo haceAlgo tampoco recibe ningn parmetro. No obstante
los parntesis, son obligatorios.
Uso de mtodos
Los mtodos se invocan con su nombre, y pasando la lista de argumentos entre
parntesis. El conjunto se usa como si fuera una variable del Tipo devuelto por el
mtodo.
Por ejemplo:
int x;
x = sumaEnteros(2,3);
Nota: Esta sintaxis no est completa, pero sirve para nuestros propsitos en este
momento. La sintaxis completa se ver cuando se hable de objetos.
Aunque el mtodo no reciba ningn argumento, los parntesis en la llamada son
obligatorios. Por ejemplo para llamar a la funcin haceAlgo, simplemente se pondra:
haceAlgo();
Obsrvese que como la funcin tampoco devuelve ningn valor no se asigna a
ninguna variable. (No hay nada que asignar).
Investigue sobre los mtodos de definicin para complementar el
tema

Parmetros por valor:
Existe comnmente la creencia errnea de que en Java es posible pasar
parmetros por referencia, y no es as. Java siempre pasa los parmetros
por valor. Esta confusin se da debido a que todas las variables de objeto son
referencias a objetos [1].

En el libro The Java Programming Language de Ken Arnold y James Gosling
(autores de Java), seccin 2.6.1., tenemos la siguiente cita: There is exactly
one parameter passing mode in Java pass by value and that helps keep
things simple. [2] (Existe un solo modo de paso de parmetros en Java paso
por valor y eso ayuda a mantener las cosas simples.). Antes de continuar,
vamos a recordar cules son las definiciones de paso por valor y paso por
referencia: [3]:

Paso por valor significa que cuando un argumento se pasa a una funcin, la
funcin recibe una copia del valor original. Por lo tanto, si la funcin modifica el
parmetro, slo la copia cambia y el valor original permanece intacto.

Paso por referencia significa que cuando un argumento se pasa a una
funcin, la funcin recibe la direccin de memoria del val or original, no la copia
del valor. Por lo tanto, si la funcin modifica el parmetro, el valor original en el
cdigo que llam a la funcin cambia.




5.4.4 Realice un mapa conceptual sobre el tema anterior























Exponga 10 ventajas de para utilizar instrucciones repetitivas

Permiten controlar la ejecucin de una rutina o evento.
Evitan la repeticin de cdigo.
Disminuye el tamao de los programas.
Se pueden usar varios nmeros de variables dentro de cada ciclo.
Las estructuras repetitivas o bucles permiten repetir una o varias
acciones un nmero determinado de veces. Cada una de las
repeticiones se conoce como iteracin.
Presenta diferentes bucles.
Este tipo de estructuras marcan como orden de ejecucin la reiteracin
de una serie de acciones basndose en un bucle.
La estructura de repeticin condicional, con evaluacin al comienzo o al
final, tiene que ser diseada con sumo cuidado para evitar caer en un
ciclo infinito.
las acciones se ejecutan un nmero determinado de veces y dependen
de un valor predefinido o del cumplimiento de una determinada
condicin.



Realice un mapa conceptual con 20 trminos sobre tipo de datos y
declaraciones.



PROGRAMAS: (actividades complementarias.)


Disear un programa que despliegue los nmeros del 20 al 30.

import java.awt.*;
import java.awt.event.*;
public class Numeros20al30 {
public static void main(String[] args) {
int multiplo = 5;
int numero = 0;
long factorial = 1;
System.out.print("Los nmeros entre 20 y 30 son");
for (int x=20;x<31;x++){
System.out.print(" " + x );
}
}
}

Disear un programa de los mltiplos de 5, entre 10 y 50, acompaados
de su factorial y logaritmo respectivo.

import java.awt.*;
import java.awt.event.*;
Public class Multiplos {
Public static void main(String[] args) {
int multiplo = 5;
int numero = 0;
long factorial = 1;
System.out.print("Los multiplos de " + multiplo + " entre 10 y 50
son");
for (int x=10;x<51;x++){
if (esMultiplo(multiplo,x)){
numero = x;
factorial = 1;
while ( numero!=0) {
factorial=factorial*numero;
numero--;
}
System.out.print(" Multiplo " + x + " Factorial " + factorial + "
Logaritmo " + java.lang.Math.log(x));
}
}
}
public static boolean esMultiplo(int n1,int n2){
if (n2%n1==0)
return true;
else
return false;
}
}

Disear un programa donde se despliegue las tablas de multiplicar que
usuario indique.
import java.io.*;

public class tabla {
public static void main(String[] args) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// Variables del numero
String sNumero = "";
Integer iNumero = null;
int iNumeroCalculo;
// Se pide el numero que se quiere la tabla
System.out.println("Introduce el nmero de la tabla de multiplicar");
try {
// Ahora leemos
sNumero = br.readLine();
// Se convierte la cadena generada a un entero
iNumero = new Integer(sNumero);
System.out.println("El nmero introducido es " + sNumero);
iNumeroCalculo = iNumero.intValue();
// Se muestra la tabla
for (int x=1;x<11;x++)
System.out.println(iNumeroCalculo + " x " + x + " = " + (x*iNumeroCalculo));
} catch (IOException ioe){
System.out.println("No se pudo leer de consola");
}catch (NumberFormatException nfe){
System.out.println("El valor introducido no es vlido");
}
}
}

Disear un programa que muestre los mltiplos de 4 entre 60 y 20
acompaados de su logaritmo de base 10 y base e respectivos.

import java.io.*;
import java.math.*;

public class multiplos
{
public static void main (String [ ] linea )
{
new multiplos();
}
multiplos ()

{
double base10,baseE,j;

for (j=20;j<61;){

base10 = Math.log10(j);
baseE = Math.log1p(j);

System.out.println ("\n"+"el multiplo de 4 entre 60 y 20 = " +j + "
tiene como base 10 = "+base10);
System.out.println ("\n"+"el multiplo de 4 entre 60 y 20 = " +j + "
tiene como base E = "+baseE);
j=j+4;
}

}

Construir la tabla de dividir que el usuario indique.

/**
* trabajo 2
* divisiontabla
*/
import java.io.*;
public class divisiontabla{
public static void main(String []args){
try{
System.out.print("Ingrese el numero: ");
BufferedReader br = new BufferedReader(new
InputStreamReader (System.in) );
String opc = br.readLine();
int divide = Integer.parseInt(opc);
float n = (float) divide;
for(int i=1;i<=10;i++){
System.out.println(n+"/"+i+"= "+(n/i));
}
}catch(Exception e){}
}
}

Disear un programa que capture un deporte cualquiera y despliegue dos
implementos deportivos apropiados.



import java.io.*;

public class deporte {
public static void main (String [] linea )
{
new deporte();
}
deporte(){
try {

System.out.println("1.BEISBOL");
System.out.println("2.FUTBOL");
System.out.println("3.TENNIS ");
System.out.println("4.BALONCESTO ");
System.out.println("5.GOLF \n");
System.out.println("DIGITE UN NUMERO ");
temp = teclado.readLine();
num1 = Integer.parseInt(temp);

switch(num1){
case 1:
System.out.println("PARA PODER PRACTICAR EL DEPORTE
BEISBOL SE NESECITAN UN BATE Y UNA PELOTA ");
break;

case 2:
System.out.println("PARA PODER PRACTICAR EL DEPORTE DE
FUTBOL SE NESECITAN GUAYOS Y UN BALON ");
break;

case 3:
System.out.println("PARA PODER PRACTICAR EL DEPORTE
TENNIS SE NECESITAN UNA RAQUETA Y UNA PELOTA ");
break;

case 4:
System.out.println("PARA PODER PRACTICAR EL DEPORTE
BALONCESTO SE NECESITAN UNA PELOTA Y UNA CANCHA ");
break;

case 5:
System.out.println("PARA PODER PRACTICAR EL DEPORTE GOLF
SE NECESITAN UNA PELOTA Y LA CANCHACAMPO ");
break;
default :


System.out.println(" POR FAVOR DIGITE NUMEROS DEL 1 AL 5
SEGUN LAS OPCIONES ");

break;
}




}
catch(IOException e1)
{
System.out.println(e1.toString());

}

}
}


Construir un programa que capture un nmero cualquiera y diga si es o
no es mayor de 50 y mltiplo de tres.

import java.io.*;

public class validar {
public static void main (String [] linea )
{
new validar();
}
validar (){
try {

InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(entrada);
String temp;
int num1;
int res;

System.out.println("DIGITE UN NUMERO");
temp = teclado.readLine();
num1 = Integer.parseInt(temp);

res= num1%3;

if (res == 0){

System.out.println ("EL NUMERO "+ num1 +" ES MULTIPLO DE 3" );
}

else{

System.out.println ("EL NUMERO "+ num1 +" NO ES ES MULTIPLO DE
3" );
}


if (num1 > 50){

System.out.println ("EL NUMERO "+ num1 +" ES MAYOR A 50" );

}
if (num1<50){

System.out.println ("EL NUMERO "+ num1 +" ES MENOR A 50" );
}


}
catch(IOException e1)
{
System.out.println(e1.toString());

}
}
}


Construir un programa que indique si un nmero es par positivo.

import java.io.*;

public class parposit {
public static void main (String [] linea )
{
new parposit();
}
parposit (){
try {

InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(entrada);
String temp;
double num1,result;
System.out.println("DIGITE UN NUMERO");
temp = teclado.readLine();
num1 = Double.parseDouble(temp);
result = num1 % 2;
if (result == 0)
{

System.out.println ("\n EL NUMERO "+num1 + " ES PAR " );

}
else
{
System.out.println ("\n EL NUMERO "+num1 + " NO ES PAR " );
}
if (num1 <= 0 )
{

System.out.println ("\n EL NUMERO "+num1 + " NO ES POSITIVO " );

}
else
{
System.out.println ("\n EL NUMERO "+num1 + " ES POSITIVO " );
}
}

catch(IOException e1)
{
System.out.println(e1.toString());

}

}
}


Construir un programa que capture los datos de un empleado, desplegar
en una pgina su cheque semanal si gana ms de $500.000 y si esta en el
departamento de produccin, en caso contrario desplegar en otra pgina
un bono del 25% de su sueldo semanal.

import java.io.*;
import javax.swing.*;
public class SUELDO_EMPLEADO
{
public static void main(String[] args)
{
int Sueldov = 0;
String Depto="";
Runtime shell = Runtime.getRuntime();
Sueldov=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el Sueldo del
empleado"));
Depto=JOptionPane.showInputDialog(null,"Digite el Sueldo del empleado");
if( Sueldov >= 0&&Depto=="Produccion")
{
try {

shell.exec("rundll32.exe url.dll,FileProtocolHandler www.micompaia.com/cheque.html
");
}
catch (Exception e) {
e.printStackTrace();
}
}
else
{
try {

shell.exec("rundll32.exe url.dll,FileProtocolHandler www.micompaia.com/Bono.html ");
}
catch (Exception e) {
e.printStackTrace();
}

}
} }











CONCLUSIONES

Es muy importante destacar que cuando hacemos referencia a la programacin
orientada a objetos no estamos hablando de unas cuantas caractersticas
nuevas aadidas a un lenguaje de programacin. Estamos hablando de una
nueva forma de pensar acerca del proceso de descomposicin de problemas y
de desarrollo de soluciones de programacin.

Como ya se ha dicho la programacin orientada a objetos surge en la historia
como un intento para dominar la complejidad que posee el software.
Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido
empleando lo que llamamos programacin estructurada, en esta los programas
son representados por un conjunto de objetos que interactan entre s.

Los POO constituyen una buena opcin a la hora de resolver un problema,
sobre todo cuando este es muy extenso. Se evita la repeticin de cdigos, no
solo a travs de la creacin de clases, sino adems que el cdigo es
reutilizable por sistemas posteriores que tengan alguna similitud con los















BIBLIOGRAFIA


http://www.programacion.com/articulo/tu_primera_taza_en_java_99/3
http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto.Oct98/1_Intro/1_IntPoo.htm
http://www.articulandia.com/premium/article.php/25-09-2006Lenguajes-de-
programacion-orientada-a-objetos.htm#ixzz1HutrpLVn

http://www.javahispano.org/contenidos/es/introduccrion_a_la_programacrion_or
ientada_a_objet/


http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm

http://www.mailxmail.com/curso-c-programacion/estructura-programa

Vous aimerez peut-être aussi