Sei sulla pagina 1di 7

Instituto Universitario Aeronutico

Facultad Ciencias de la Administracin


Introduccin a la informtica- Act. Obligatoria Nro. 1
INGENIERA DE SISTEMAS
CURSO Z17COR
TUTOR: AZPILICUETA , JORGE ALBERTO
ALUMNO: VILA TOSCANO, ADRIAN PABLO
DNI.: 23.844.444
Fecha: 20/11/2007
1.

Haga una sntesis de las principales caractersticas de la programacin orientada a


objetos y del lenguaje java en particular. Puede realizar consultas en internet.

La Programacin Orientada a Objetos (POO) 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. Su uso se
populariz recin a principios de la dcada de 1990. Actualmente varios lenguajes de programacin
soportan la orientacin a objetos.
Tradicionalmente, la programacin fue hecha en una manera secuencial o lineal, es decir una
serie de pasos consecutivos con estructuras consecutivas y bifurcaciones.
La POO viene de la evolucin de la programacin estructurada y se basa en dividir un
programa en pequeas unidades lgicas de cdigo. A estas pequeas unidades lgicas de cdigo se
les llama objetos. Los objetos son unidades independientes que se comunican entre ellos mediante
mensajes.
Cules son las ventajas de un lenguaje orientado a objetos?

Fomenta la reutilizacin y extensin del cdigo.

Permite crear sistemas ms complejos.

Relacionar el sistema al mundo real.

Facilita la creacin de programas visuales.

Construccin de prototipos

Agiliza el desarrollo de software

Facilita el trabajo en equipo

Facilita el mantenimiento del software

El modelo Orientado a Objetos Conceptos Bsicos


Objetos
Un objeto es una unidad de cdigo compuesto de variables y mtodos relacionados.
Un 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 formas
predefinidas.
Un objeto de software mantiene sus caractersticas en una o ms "variables", e implementa
su comportamiento con "mtodos". Un mtodo es una funcin o subrutina asociada a un objeto.

Clases
La clase es un modelo o prototipo que define las variables y mtodos comunes a todos los
objetos de cierta clase. Tambin se puede decir que una clase es una plantilla genrica para un
conjunto de objetos de similares caractersticas.
Herencia
La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamente
consiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase que
hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos
y mtodos propios, tiene incorporados los atributos y mtodos heredados de la superclase. De esta
manera se crea una jerarqua de herencia.
Envo de Mensajes
Un objeto es intil si est aislado. El medio empleado para que un objeto interacte con otro
son los mensajes. Los mensajes son invocaciones a los mtodos de los objetos.
Caractersticas asociadas al POO
Abstraccin
La abstraccin consiste en captar las caractersticas esenciales de un objeto, as como su
comportamiento. En los lenguajes de programacin orientada a objetos, el concepto de Clase es la
representacin y el mecanismo por el cual se gestionan las abstracciones.
Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar
trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar
cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden
tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una
abstraccin.
Encapsulamiento
El encapsulamiento consiste en unir en la Clase las caractersticas y comportamientos, esto
es, las variables y mtodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados
esto era imposible.
La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que
tendremos a las Clases como cajas negras donde slo se conoce el comportamiento pero no los
detalles internos.
Ocultamiento
Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer
slo los detalles que sean necesarios para el resto del sistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque
habr cierto comportamiento privado de la Clase que no podr ser accedido por otras Clases. Y
controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en
estos mecanismos dnde se validarn que algunas condiciones se cumplan.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que
se est usando.
El polimorfismo es una nueva caracterstica aportada por la POO. Esta propiedad indica la
posibilidad de definir varias operaciones con el mismo nombre, diferencindolas nicamente en los

parmetros de entrada. Dependiendo del objeto que se introduzca como parmetro de entrada, se
elegir automticamente cual de las operaciones se va a realizar.
Manejo de memoria
Los POO son lenguajes que utilizan de manera intensiva la memoria de la computadora.
Hay dos tipos de aproximacin a la gestin de memoria.
El sistema en tiempo de ejecucin libera la memoria automticamente a medida que los
objetos dejan de utilizarse.
El sistema tiene instrucciones concretas para liberar la memoria explcitamente. Este el
enfoque adoptado por lenguajes como C++, que aportan dos operadores: crear y destruir. El
primero reserva automticamente memoria, mientras que el segundo la libera.
Lenguajes de Programacin Orientado a Objetos
En 1985, E. Stroustrup extendi el lenguaje de programacin C a C++, es decir C con
conceptos de clases y objetos, tambin por esas fechas se creo desde sus bases el lenguaje EIFFEL.
En 1995 apareci el ms reciente lenguaje OO, Java desarrollado por SUN, que hereda
conceptos de C++.
El lenguaje de desarrollo ms extendido para aplicaciones Web, el PHP 5, trae todas las
caractersticas necesarias para desarrollar software orientado a objetos.
Adems de otros lenguajes que fueron evolucionando, como el Pascal a Delphi.
Finalmente tambin otros lenguajes script como el ActionScript que si bien no es totalmente
orientado a objetos pero s posee las caractersticas.
Caractersticas principales de JAVA
Simple
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las caractersticas menos
usadas y ms confusas de stos. Java se dise para ser parecido a C++ y as facilitar un rpido y
fcil aprendizaje.
Java elimina muchas de las caractersticas de otros lenguajes como C++, para mantener
reducidas las especificaciones del lenguaje y aadir caractersticas muy tiles como el garbage
collector (reciclador de memoria dinmica). El reciclador se encarga de liberar memoria y como es
de baja prioridad, cuando entra en accin, permite liberar bloques de memoria muy grandes, lo que
limita en mucho la fragmentacin de la memoria.
Orientado a Objetos
Java implementa la tecnologa bsica de C++ con algunas mejoras y elimina algunas cosas
para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y
con interfaces a esos objetos. Soporta las tres caractersticas propias del paradigma de la orientacin
a objetos: encapsulacin, herencia y polimorfismo. Las plantillas de objetos son llamadas, como
en C++, clases y sus copias, instancias. Estas instancias, como en C++, necesitan ser construidas y
destruidas en espacios de memoria.
Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolucin
dinmica de mtodos. En C++ se suele trabajar con libreras dinmicas (DLLs) que obligan a
recompilar la aplicacin cuando se retocan las funciones de su interior.
Este inconveniente es resuelto por Java mediante una interfaz especfica llamada RTTI
(RunTime Type Identification) que define la interaccin entre objetos excluyendo variables de
instancias o implementacin de mtodos
Distribuido

Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras


de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los
programadores acceder a la informacin a travs de la red con tanta facilidad como a los ficheros
locales.
Java en s no es distribuido, sino que proporciona las libreras y herramientas para que los
programas puedan ser distribuidos, es decir, que se corran en varias mquinas, interactuando.
Robusto
Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en
tiempo de ejecucin. Maneja la memoria para eliminar las preocupaciones por parte del
programador de la liberacin o corrupcin de memoria.
Tambin implementa los arrays autnticos, en vez de listas enlazadas de punteros, con
comprobacin de lmites, para evitar la posibilidad de sobreescribir o corromper memoria resultado
de punteros que sealan a zonas equivocadas. Estas caractersticas reducen drsticamente el tiempo
empleado en el desarrollo de aplicaciones Java.
Adems, para asegurar el funcionamiento de la aplicacin, realiza una verificacin de los
ByteCodes, que son el resultado de la compilacin de un programa Java.
Java proporciona, pues:

Comprobacin de punteros

Comprobacin de lmites de arrays

Excepciones

Verificacin de ByteCodes

Arquitectura Neutral
Para establecer Java como parte integral de la red, el compilador Java compila su cdigo a
un fichero objeto de formato independiente de la arquitectura de la mquina en que se ejecutar.
Cualquier mquina que tenga el sistema de ejecucin (run-time) puede ejecutar ese cdigo objeto,
sin importar en modo alguno la mquina en que ha sido generado.
El cdigo fuente Java se "compila" a un cdigo de bytes de alto nivel independiente de la
mquina. Este cdigo (ByteCode) est diseado para ejecutarse en una mquina hipottica que es
implementada por un sistema run-time, que s es dependiente de la mquina.
Seguro
La seguridad en Java tiene dos facetas. En el lenguaje, caractersticas como los punteros o el
casting implcito que hace el compilador de C y C++ se eliminan para prevenir el acceso ilegal a la
memoria. Cuando se usa Java para crear un navegador, se combinan las caractersticas del lenguaje
con protecciones de sentido comn aplicadas al propio navegador.
El cdigo Java pasa muchos tests antes de ejecutarse en una mquina. El cdigo se pasa a
travs de un verificador de ByteCode que comprueba el formato de los fragmentos de cdigo y
aplica un probador de teoremas para detectar fragmentos de cdigo ilegal -cdigo que falsea
punteros, viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto.
Las aplicaciones de Java resultan extremadamente seguras, ya que no acceden a zonas
delicadas de memoria o de sistema, con lo cual evitan la interaccin de ciertos virus.
Portable
Ms all de la portabilidad bsica por ser de arquitectura independiente, Java implementa
otros estndares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y
adems, enteros de 32 bits en complemento a 2. Adems, Java construye sus interfaces de usuario a

travs de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en
entornos Unix, Pc o Mac.
Interpretado
El intrprete Java (sistema run-time) puede ejecutar directamente el cdigo objeto. Enlazar
(linkar) un programa normalmente consume menos recursos que compilarlo, por lo que los
desarrolladores con Java pasarn ms tiempo desarrollando y menos esperando por el ordenador. No
obstante, el compilador actual del JDK es bastante lento. Por ahora, que todava no hay
compiladores especficos de Java para las diversas plataformas, Java es ms lento que otros
lenguajes de programacin, como C++, ya que debe ser interpretado y no ejecutado como sucede en
cualquier programa tradicional.
La verdad es que Java para conseguir ser un lenguaje independiente del sistema operativo y
del procesador que incorpore la mquina utilizada, es tanto interpretado como compilado. El cdigo
fuente escrito con cualquier editor se compila generando el ByteCode. El ByteCode corresponde al
80% de las instrucciones de la aplicacin. Ese mismo cdigo es el que se puede ejecutar sobre
cualquier plataforma. Para ello hace falta el runtime, que s es completamente dependiente de la
mquina y del sistema operativo que interpreta dinmicamente el ByteCode y aade el 20% de
instrucciones que faltaban para su ejecucin. Con este sistema es fcil crear aplicaciones
multiplataforma, pero para ejecutarlas es necesario que exista el runtime correspondiente al sistema
operativo utilizado.
Multithreaded.
Un lenguaje que soporta mltiples threads (a veces llamados procesos ligeros) es un
lenguaje que puede ejecutar diferentes lneas de cdigo al mismo tiempo. Dicho de otra forma,
permite que el usuario pueda acceder a la informacin en la pgina sin tener que esperar por el
navegador.
Dinmico
Java se beneficia todo lo posible de la tecnologa orientada a objetos. Java no intenta
conectar todos los mdulos que comprenden una aplicacin hasta el mismo tiempo de ejecucin.
Las librera nuevas o actualizadas no paralizarn la ejecucin de las aplicaciones actuales -siempre
que mantengan el API anterior.
Java tambin simplifica el uso de protocolos nuevos o actualizados. Si su sistema ejecuta una
aplicacin Java sobre la red y encuentra una pieza de la aplicacin que no sabe manejar, Java es
capaz de traer automticamente cualquier pieza que el sistema necesite para funcionar.
2.

Indique los rangos y la memoria que ocupan los diferentes tipos de datos primitivos
de Java

Variables y Tipos de Datos


Las variables son las partes importantes de un lenguaje de programacin: ellas son las
entidades (valores, datos) que actan y sobre las que se acta.
Una declaracin de variable siempre contiene dos componentes, el tipo de la variable y su
nombre.
Tipos de Variables
Todas las variables en el lenguaje Java deben tener un tipo de dato. El tipo de la variable
determina los valores que la variable puede contener y las operaciones que se pueden realizar con
ella.

Existen dos categorias de datos principales en el lenguaje Java: los tipos primitivos y los
tipos referenciados.
Tipos primitivos:
Se llaman primitivos porque estn integrados en el sistema y no son objetos en realidad, lo
cual hace su uso ms eficiente.
Los tipos primitivos contienen un slo valor e incluyen los tipos como los enteros, coma
flotante, los caracteres, etc.
Java cuenta con ocho tipos de datos primitivos para almacenar distintos rangos de valores
Tipo

Lo que almacena

Rango

byte

entero de 1 byte (8 bits)

de -128 a 127

short

entero de 2 byte (16 bits)

de -32768 a 32767

int

entero de 4 byte (32 bits)

de -2147483648 a 2147483647

long

entero de 8 byte (64 bits)

de -2-63 a 263 - 1

float

entero de 4 byte (32 bits)

6 dgitos significativos (10-46 , 1038)

double

entero de 8 byte (64 bits)

15 dgitos significativos (10-324 , 10308)

char

carcter UNICODE 2 bytes (16 bits)

Comprende el cdigo ASCII

Boolean

variable booleana de 1 byte (8 bits)

false y true

En la construccin de programas los tipos primitivos ms usados son : int, double, char y boolean.
3.

Mediante tablas de verdad verifique que la negacin de una implicacin es la


conjuncin entre el antecedente y la negacin del consecuente.

(p

q)

(p

q)

PASO 1: Desarrollamos la negacin del consecuente.


PASO 2: Luego la conjuncin entre el antecedente y la negacin del consecuente.
PASO 3: Desarrollamos la implicacin entre el antecedente y el consecuente.
PASO 4: Negamos la implicacin entre el antecedente y el consecuente.

PASO 5: Verificamos que para todos los casos, la equivalencia da el valor V.


4.

En el caso de las siguientes proposiciones, el universo para cualquiera de sus


variantes est formado por los nmeros reales. En cada caso, niegue la proposicin
dada.

a) x y : x y ) ( y - x 0 )
x / y / x y ) ( y - x 0 ) Se cambian los cuantificadores universales en
existenciales y se niega la proposicin
siendo P ( x ) = ( x y ) , Q ( x ) = ( y - x 0 )
(P ( x ) Q ( x ) ) ( P ( x ) Q ( x ) ) (Ley de negacin de una implicacin)
x / y / x y ) ( y - x 0 ) aplico la Ley de negacin de una implicacin
x/y/xy) (y-x0)
b) xy:xy)z/(xzy)
x / y / x y ) z / ( x z y )

Se cambian los cuantificadores universales en


existenciales y se niega la proposicin

siendo P ( x ) = x y ) , Q ( x ) = z / ( x z y )
x / y / x y ) z / ( x z y ) aplico la Ley de negacin de una implicacin
x/y/xy) z: (xzy)
x/y/xy) z:(xzy)

c) xy:((x0) (y0)) z/(zxy)


siendo P(x) = x y : ( ( x 0 ) ( y 0 ) ) , Q ( x ) = z / ( z x y )
(P ( x ) Q ( x ) ) ( P ( x ) Q ( x ) ) (Ley de negacin de una implicacin)
x y : ( ( x 0 ) ( y 0 ) ) z / ( z x y ) aplico la Ley de negacin
de una implicacin
xy:((x0) (y0)) z:(zxy)
xy:((x0) (y0)) z:(zxy)

Potrebbero piacerti anche