Académique Documents
Professionnel Documents
Culture Documents
Son las herramientas que permiten elaborar los programas ejecutables por el procesador Estos programas pueden formar parte de las aplicaciones de los usuarios o bien del SO
Se escriben por medio de instrucciones para realizar algunas tareas De forma ms tcnica podramos decir
Es el conjunto de smbolos con ciertas reglas o normas, que se usan para expresar algoritmos en una notacin formal
1946 Konrad Zuse, un ingeniero Alemn mientras trabajaba en los Alpes de Bavaria, desarroll el lenguaje Plankalkul, el cual, fue aplicado entre otras cosas para jugar al ajedrez 1949 Aparece Short Code, que viene a ser el primer lenguaje que fue usado en un dispositivo de cmputo electrnico 1951 Grace Hopper, trabajando para Remington Rand, comenz el trabajo de diseo del primer compilador conocido ampliamente, el A-0, el cual, al ser liberado por la compaa en 1957, lo hizo con el nombre de MATH-MATIC
1952 Alick E. Glennie, durante su tiempo libre en la Universidad de Manchester, concibe un sistema de programacin llamado AUTOCODE, que viene a ser un compilador muy rudimentario
1957 aparece FORTRAN (Formula Translation) sistema traductor de frmulas matemticas. Fue desarrollado por un equipo, al frente del cual se encontraba John Backus
Evolucin de los
Evolucin de los
BASIC (Beginners All-purpose Symbolic Instruction Code) Cdigo de instrucciones simblicas de uso general para principiantes. El ms popularizado dentro del mundo de los microordenadores
Desde su nacimiento, en el ao 1964, se han desarrollado numerosas versiones de BASIC
PASCAL La caracterstica primordial del Pascal es la forma en que se estructuran los programas
Su estructura permite generar programas comprensibles y claros
de Programacin
Lenguajes maquina Lenguajes de bajo nivel (ensamblador) Lenguajes de alto nivel
Lenguaje Maquina
Proporcionan instrucciones especficas para un determinado tipo de hardware Su escritura es directamente entendible por la computadora Sus Instrucciones son en Bits
Se caracterizan por instrucciones ms sencillas de recordar Dependen del tipo de Computadora Se traducen a lenguaje maquina por un programa al que se denomina Ensamblador. Ej. Instrucciones ADD, SUB, DIV
Se caracteriza por sentencias muy fciles de recordar No dependen del tipo de computadora Se traducen a lenguaje maquina por unos programas denominados compiladores o interpretes Los programas escritos se llaman programas fuente y el programa traducido, programa objeto o cdigo objeto Este cdigo queda ligado al hardware y al sistema operativo Son Independientes de la Computadora
Paradigmas de Programacin
Imperativos
Son aquellos lenguajes, que basan su funcionamiento en un conjunto de instrucciones secuenciales, las cuales, al ejecutarse, van alterando las regiones de memoria donde residen todos los valores de las variables involucradas en el problema que se plantea resolver Es decir, se cambia progresivamente el estado del sistema, hasta alcanzar la solucin del problema
Declarativos
En esta categora, la forma de razonar ms que el cmo?, desarrollar paso a paso un proceso, nos interesa el qu? deseamos obtener a travs del programa Ej. SQL, el cual es utilizado para interactuar con la informacin de bases de datos, concentrndose, slo en los resultados que van a ser obtenidos Dejndole al traductor la tarea de cmo llegar a ellos y presentrnoslos
Funcionales
Basados en funciones, las cuales se representan mediante expresiones, que nos permiten obtener ciertos resultados a partir de una serie de argumentos Expresiones estn formadas por un conjunto de trminos, que a su vez pueden encapsular otras expresiones, para con la evaluacin de todas ellas, llegar a la solucin deseada Ejemplo de este Lenguaje son: LISP, ML
Lgicos
Se basan en el clculo de predicados, la cual es una teora matemtica que permite entre otras cosas, lograr que un ordenador, basndose en un conjunto de hechos y de reglas lgicas, pueda derivar en soluciones inteligentes Ejemplo el Lenguaje PROLOG
Orientados a Objetos
Se concentra en los objetos que van a manipular, y no en la lgica requerida para manipularlos Es una extensin de los lenguajes imperativos Ejemplos de Lenguajes son C++, JAVA, C# Ejemplos de objetos: estudiantes, coches, casas Cada uno de los cuales tendr ciertas funciones (mtodos) y ciertos valores que los identifican, teniendo adems, la facultad de comunicarse entre ellos a travs del paso de mensajes
Metodologa de diseo de Software que modela la caractersticas de objetos reales a travs de la utilizacin de clases y objetos Persigue obtener una mayor representacin de la realidad La idea es combinar datos (estado) y funciones (comportamientos) en una sola unidad Se basa en cinco conceptos fundamentales:
Clase,
Clase
Es
una descripcin exacta que abarca a un conjunto de objetos Es un molde o prototipo donde se definen los atributos (variables) y las acciones (mtodos) comunes de una entidad Permiten crear mltiples objetos con caractersticas similares
Objeto
Es
un elemento perceptible que aparece perfectamente diferenciado a nuestra conciencia Poseen propiedades que los identifican de manera nica, contienen procesos (mtodos) que puede ejecutar en cualquier instante y eventos externos ante los cuales puede programar su comportamiento Tambin se les conoce como instancias Tiene estado y comportamiento Estado: se mantiene en variables Comportamiento: se implementa mediante mtodos
Objeto
Controla
Ejemplos:
Identificacin de Objetos
Para
esto se debe examinar la descripcin del problema Los objetos pueden caer dentro de categoras como Cosas tangibles Roles o Papeles representados por personas Gerente, Cliente Organizaciones Empresa, Divisin Incidentes Vuelo, Accidente, Suceso Interacciones Compras, Matrimonios Lugares Sala de Embarque, Muelle
logra a travs de Mensajes Un mensaje puede alterar el estado de un objeto (sus variables internas) Un mensaje contiene: Identificador del objeto Identificador del mtodo Parmetros
sucesos Se crean objetos Los mensajes se mueven de un objeto a otro Cuando los objetos no son utilizados se borran y se libera la memoria
Elementos Adicionales
Paquetes
(Packages) Con estos se obtiene la posibilidad de agrupar las clases en unidades independientes Potenciando de manera significativa el desarrollo de aplicaciones complejas
Flexibilidad Al definir clases se establecen mdulos independientes, a partir de los cuales se pueden definir nuevas clases Reusabilidad Al tener definida una entidad particular para una aplicacin no es necesario volver a escribirla reutilizando la entidad con lo cual se ahorra codigo
Mantenibilidad Facilidad para mantener las clases de una aplicacin por su modularidad Extensibilidad Gracias a las ventajas anteriores se pueden agregar con facilidad nuevas funcionalidades a las aplicaciones
a Objetos
Hay que ser muy cuidadosos en la creacin de los objetos, ya que de ello depender el xito de nuestro proyecto. Un error en estas primeras definiciones podra resultar catastrfico. Precisamente el secreto de esta tcnica est en la correcta definicin inicial de los objetos
a Objetos
Los estndares en este tipo de tcnicas estn en continua evolucin, lo que exige una actualizacin permanente Los analistas, diseadores y desarrolladores del proyecto deben conocer las reglas del juego y poseer suficiente experiencia en programacin
Caractersticas de la Orientacin a
Objetos
Abstraccin
Se
refiere a la representacin de los objetos Separa las propiedades ms importantes de un objeto, de las que no lo son Por medio de esta se definen las caractersticas esenciales de un objeto del mundo real, los atributos y comportamientos que lo definen como tal, para despus modelarlo en un objeto de software
Modularidad
Se
Permite
Encapsulamiento
Propiedad
que permite asegurar que la informacin de un objeto sea desconocida para los dems objetos de la aplicacin
conoce tambin como ocultamiento de la informacin
Se
Permite
proteger a los objetos de ser manipulados de forma inadecuada por objetos externos
Encapsulamiento
Interna:
La informacin que necesita el objeto para operar y que es innecesaria para los dems objetos de la aplicacin. Estos atributos se denominada privados y tienen como marco de aplicacin nicamente a las operaciones asociadas al objeto Externa: La que necesitan el resto de los objetos para interactuar con el objeto que definimos . Estas propiedades se denominan pblicas y corresponde a la informacin que necesitan conocer los restantes objetos de la aplicacin respecto del objeto definido para poder operar
Jerarqua (Herencia)
Propiedad
que permite a partir de clases, construir nuevas clases (superclase / subclase), permitiendo heredar sus caractersticas (atributos y acciones)
como objetivo la reutilizacin de cdigo anteriormente desarrollado
Tiene
Jerarqua (Herencia)
Clase Padre
Clase Hija
Clase Hija 2
Clase Hija
Jerarqua (Herencia)
Herencia
Simple Tipo de herencia en la cual un objeto (clase) puede tener solo un ascendente
Mltiple Tipo de herencia donde un objeto puede tener una o ms superclases
Herencia
Polimorfismo
Se
basa en que los componentes o entidades puedan responder de manera distinta ante diversas invocaciones
se consigue a travs de nombrar un mtodo de una clase con un mismo nombre pero con diferentes implementaciones
Esto
Ejemplos
Clase
Ejemplos
Objeto
Ejemplos
Ejemplos
{ r1.calcularArea(); }
Ejemplos
Mtodo y Constructor
Mtodo (Estructura)
Ejemplos
Mtodo y Constructor
Constructor
class Rectangulo { int ancho, alto; Rectangulo (int a, int b) { ancho=a; alto=b; } }
Introduccin a Java
Java
fundamentada en C++
Historia
Desarrollado en 1991 como parte de un proyecto de Investigacin, buscando elaborar software para dispositivos electrnicos Utilizado en varios proyectos dentro de SunMicrosystems Se integr con HotJava (Navegador Experimental desarrollado en 1994) En el 97 se crea la primera versin comercial JDK 1.1 1998 SunM lanza la plataforma Java 2
Caractersticas de Java
Tamao Reducido
Libreras
de Clases, Documentacin, Programas para compilar, interpretar y depurar aplicaciones. Ocupan un espacio inferior a 10Mb
Independiente de la Plataforma
Significa
que un programa escrito en un determinado SO, se ejecuta sin problema en otra plataforma sin hacer modificaciones a su cdigo La independencia es posible por su JVM
Interpretado
Una
vez compilado se utiliza un intrprete para ejecutar un programa (costo por portabilidad)
Caractersticas de Java
Seguro
Los
programas Applets, no acceden a los recursos del PC, es decir no pueden modificar archivos ni acceder a recursos internos del sistema Seguridad al no transportar virus Naturalmente, la seguridad absoluta es imposible, pero aunque se tengan problemas de seguridad en Java, no producen trastornos apreciables
Multitarea (Multihilo)
Pensado
para desarrollar procesos concurrentes, es decir que puede ejecutar simultneamente muchos procesos, manteniendo independencia entre ellos. Ejemplos: Juegos, Simuladores, APP de control industrial
Caractersticas de Java
Distribuido
Esta
diseado para facilitar la construccin de APP distribuidas mediante una coleccin de clases para uso en red (Maneja protocolos TCP/IP)
Alto Desempeo
Java
proporciona compiladores JIT (Just in Time) que permiten igualen en rendimiento de tiempo de ejecucin a los lenguajes convencionales compilados
tiempo de ejecucin, el entorno Java puede extenderse mediante enlace a clases que pueden estar localizadas en servidores remotos o en una red (enlace y cargas dinmicas de clases)
Dinmico
En
Caractersticas de Java
Robusto
Consta
con una tipificacin fuerte, lo cual es verificado en tiempo de compilacin Proporciona manejo de errores en tiempo de ejecucin, con lo cual se pueden captar y manipular errores que puedan surgir durante la ejecucin Permite construir aplicaciones sofisticadas
Tipos de Aplicaciones
Aplicaciones Autnomas, tal cual como si fuesen escritas en C Aplicacin que solo se ejecuta dentro de un navegador de Internet y permiten la interaccin con el usuario
Applets:
un emulador de Hardware y SO, que permite interpretar el cdigo de byte (bytecode) generado por compilador de Java Es el sistema de ejecucin de programas que permite la portabilidad de Java Existen distintas JVM disponibles para variadas plataformas
Compilador
JVM Windows
JVM Solaris
JVM Linux
Versiones de Java
J2SE
Edicin
estndar que contiene todo lo necesario para empezar a programar aplicaciones profesionales
J2EE
Incluye
J2ME
Edicin
reducida, que permite desarrollo de aplicaciones incrustadas, es decir, muy especificas sobre chips de pequeos recursos Ejemplo: controlador de lavadora
La construccin de programas se simplifica cuando se utiliza el IDE el cual permite editar, compilar, ejecutar y depurar las aplicaciones de manera automtica Ejemplos:
NetBeans
J++
import java.lang.*;
public class ProgramaEjemplo // nombre clase principal { public static void main(String[ ] args) // mtodo para funcin { //declaraciones locales //sentencias System.out.println(Texto de Ejemplo); // salida info } }
Consideraciones Iniciales
En
Java los programas empiezan con una clase Ej: class ProgramaEjemplo { Todas las sentencias terminan con (;) punto y coma Java es case sensitive es decir diferencia entre minsculas y maysculas Es fuertemente tipificado, es decir que se deben declarar las variables y su tipo antes de poder utilizarlas
Identificadores
Son
los nombres que se asignan a variables, mtodos o clases Secuencia limitada de caracteres (alfanumricos) Solo pueden comenzar con un carcter alfabtico, pueden incluir el carcter _ o $ No se pueden utilizar espacios
Palabras Reservadas
Son
palabras con propsito especial y que no pueden ser utilizadas como identificadores
abstract boolean break byte double else extends final int interface long native super switch syncronized this
case
catch char class const default do
finally
float for goto if import instanceof
new
package private protected public short stactic
throw
throws transient try void
volatile
while
Comentarios
Son
las notas que permiten documentar el codigo de un programa Para esto se usan al empezar la lnea los smbolos: // ( comentario de lnea ) /* */ ( comentario multilnea )
Tipos de Datos
Son
datos bsicos, agrupados de acuerdo al tipo de informacin que admiten Los grupos son: nmeros enteros, reales, caracteres, valores lgicos
Son
los que definen los posibles valores de una variable En Java todo es un objeto excepto los tipos de datos bsicos
Tipos de Datos
Tipo
Descripcin
Tamao
1 bit 16 bit 8 bit 16 bit 32 bit
boolean Valor lgico char Carcter byte short int Entero muy pequeo Entero pequeo Entero normal
Entero grande 64 bit Nmero real de precisin simple 32 bit Nmero real de precisin doble 64 bit
Variables
Una
dato La variable se define anteponiendo al nombre de esta (Identificador) el tipo al cual pertenece tipo de dato Identificador;
Ejemplos
int
Variables
Una
variable tiene un mbito definido por la visibilidad que tiene la variable en el programa delimitado por llaves {} (bloque)
Las
variables declaradas en un bloque pueden ser sobreescritas por variables declaradas en un subbloque
Variables
Variables
Locales Son aquellas que se declaran dentro de un mtodo y solo se pueden utilizar en este. Se conocen tambin como variables de mtodo Globales Son aquellas que se declaran dentro de la clase y pueden ser utilizadas por los distintos mtodos de la clase
Variables
Variables
class Ejemplo { // Variable global static int uno=100; public static void main(String[ ] args) { // Variable local int beta=3; proc(beta); }
Constantes
Es
una variable modificada cuyo valor permanece fijo o constante Se declaran anteponiendo la palabra final a la variable
Ejemplo
final
Operadores
Son
smbolos que se utilizan para construir expresiones complejas nos proporciona una coleccin amplia de operadores que se pueden utilizar para la manipulacin de datos
Java
Operadores
Aritmticos
Operador Nombre + Suma * / Resta Mul Div
Lgicos
Operadores
Relacin
Operador > < >= <= == != Relacin Mayor que Menor que May o igual q Men o igual q Igual a Diferente de
Operadores
Asignacin
Operador Operacin = Asignacin ++ Incremento -Decremento += Suma y Asig -= Resta y Asig *= Mul y Asig /= Div y Asig %= Mod y Asig Ejemplo j=1 j ++; j --; j += 7; j -= 7; j *= x + 5; j /= x + 5; j %= 5; Cdigo Equi
j = j + 1;
j = j 1; j = j + 7; j = j 7; j = j * (x+5); j = j / (x+5); j = j % 5;
Operadores
Operador
()[] ! ++ */% +<< >> < <= > >= == != & ^
Orden de Precedencia
&&
|| ?: =
realiza al hacer la conversin de un tipo a otro. Para esto los datos tiene que ser: Dos tipos compatibles El tipo de variable de destino debe ser de un rango mayor a la variable a convertir Ejemplo: int i = 257; long d; d = i;
realiza cuando un tipo de dato no se puede asignar a otro por conversin implcita (tipo destino) valor Ejemplo: int i; double d=3,4; i = (int) d; // truncando parte decimal
Clases y Objetos
Objetos
Una
vez que se define una clase, un programa puede contener una instancia de una clase, denominada objeto Se crea con el operador new, el cual permite reservar espacio en memoria Sintaxis:
nombre_clase nombre_objeto = new nombre_clase(parametros)
Se
pueden crear de dos formas: Establecer referencia y despus utilizar el operador Establecer referencia y utilizar el operador en la misma lnea
Ejemplo: Persona p; // referencia p = new Persona(); // creacin objeto o Persona p = new Persona();
Mtodos
Son funciones que pueden ser llamadas dentro o fuera de la clase Sintaxis:
public static retorno nombre_metodo (lista parametros) // retorno es tipo de dato { //variables locales //codigo //return (variable) }
Entrada Estndar
Es
el ingreso por teclado de datos, para esto se utiliza la clase System.in Esta clase implementa el mtodo read() para leer solo un carcter Para ingresar una lnea se debe utilizar el mtodo readLine() de la clase BufferedReader (paquete java.io.*)
Entrada Estndar
Salida Estndar
Para
mostrar una salida de datos por pantalla, se utiliza la clase System.out Esta clase tiene dos mtodo: print() muestra una cadena de caracteres por pantalla println() muestra una cadena de caracteres por pantalla y se salta una lnea
System.out.println(Ingrese su nombre:);
Constructores
Es un mtodo de la clase de propsito especifico que se ejecuta cuando se crea un objeto de una clase Un constructor tiene el mismo nombre que la clase y pueden recibir parmetros A un constructor no se le puede especificar un valor de retorno Sirve para inicializar los atributos de una clase
Ejemplo
class Persona { String nombre; int edad; void mostrar_datos() { System.out.println(Nombre: + nombre + \n Edad :+ edad); }
class MainClase { public static void main(String ar [ ]) { Persona x = new Persona(); x.nombre = Juan; x.edad = 25; x.mostrar_datos(); } }
Ejemplo
class MainClase { public static void main(String ar [ ]) { Persona_con_constructor c= new Persona_con_constructor(Juan,25); c.mostrar_datos(); } }
Si no se especifica un constructor, Java proporciona uno por defecto Precaucin: Si se especifica un constructor, se debe utilizar con la misma cantidad de parmetros, de lo contrario se produce un error
Un principio fundamental de la OO es el ocultamiento de la informacin (Encapsulamiento) A determinados datos del interior de una clase no se pueden acceder por mtodos externos a la clase
Clase
Datos o mtodos pblicos Accesibles desde Exterior
Se utilizan 3 tipos de especificadores (modificadores) de acceso para controlar los miembros de la clase public, acceso desde cualquier mtodo, dentro o fuera de la clase private, acceso por mtodos miembros de la misma clase protected, acceso por mtodos miembros de la misma clase o clase derivadas Pueden estar en cualquier orden En caso de no especificar, el acceso al miembro de la clase es para cualquier mtodo de la misma clase o cualquier mtodo del paquete
// EJEMPLO: declaracin de atributos y // mtodos con especificadores class Ejemplo { //atributos public int x; protected long y; private boolean z; //mtodos public int sumar (int a, int b) { ... } protected void mostrar(){ ... } private booleffn calcular() { ... } }
Un miembro esttico de una clase, es nico para toda una clase, en vez de tener uno por objeto Atributo esttico: Existe un nico atributo para todos los objetos de una misma clase. Se declaran igual que cualquier atributo, aadiendo la palabra reservada static. Su llamada se realiza a travs de:
NombreClase.atributo;
Mtodo esttico: son mtodos que se pueden utilizar sin necesariamente crear objetos. Su llamada se realiza a travs de : NombreClase.metodo(); un mtodo esttico solo puede acceder directamente a atributos y mtodos estticos
Modificadores de la clase
Los modificadores de la clase pueden ser: public: accesible por cualquier clase. Debe estar en su propio
archivo sin especificar: es accesible por clases del mismo paquete abstract: la clase no puede ser instanciada (no se pueden crear directamente objetos a partir de esa clase) final: la clase no puede ser derivada
Sintaxis:
[modificador] class Persona Ejemplos public class ej{...} abstract class ej{...} final class ej{...} class ej{...}
Polimorfismo
El polimorfismo permite que diferentes objetos respondan de modo diferente al mismo mensaje. En Java una de las formas de implementarlo es a travs de: Sobrecarga de mtodos Sobrecarga de constructores
Polimorfismo
Sobrecarga de Mtodos
Se produce cuando, dentro de una misma clase es posible definir dos o mas mtodos que tengan el mismo nombre y que las declaraciones de sus parmetros sea diferente Al llamar a un mtodo sobrecargado, el compilador determina cual es el mtodo invocado basndose en el numero o tipo de parmetros
Polimorfismo
Sobrecarga de Constructores Al igual que los mtodos, los constructores tambin se pueden sobrecargar Al sobrecargar los constructores, es posible crear objetos con diferentes inicializaciones, dependiendo de la cantidad de parmetros que se enven al momento de crear el objeto Ventaja: crear objetos inicializados de diferente forma, dependiendo de lo que el programador necesite
public Sobrecarga_Cons() { num1=0; num2=0; } public Sobrecarga_Cons(int x) { num1=x; num2=x; } public Sobrecarga_Cons(int x, int y) { num1=x; num2=y; } public void mostrar() { System.out.println( nmero 1:+ num1+ nmero 2:+ num2); } }
Herencia
La Herencia o Jerarqua es la relacin que existe entre dos clases, en la que una clase denominada subclase se crea a partir de otra ya existente, denominada superclase
Persona
Super - Clase
Empleado
Sub - Clase
La clase Empleado hereda atributos y mtodos de la clase Persona, siempre y cuando estos no sean privados
Herencia
La Herencia permite el ahorro de cdigo La sub-clase hereda los atributos y mtodos de la superclase Para crear clases derivadas se utiliza la palabra reservada extends, la cual permite que todos los miembros no privados de la super-clase base sean heredados en la subclase La sintaxis es la siguiente: class nombre_clase extends nombre_clase_base
class Persona { protected String nombre ; protected int edad; public Persona(String nom, int aos) { nombre= nom; edad = aos; } public void mostrar() { System.out.println(Nombre: "+ nombre + "edad: "+ edad); } }
Herencia
Los constructores no se heredan, solo se utilizan Para acceder al constructor de la superclase en la subclase se utiliza la palabra reservada super con la cantidad y tipo de parmetros definidos en el constructor de la super-clase. Estos constructores deben llamarse antes del cdigo del constructor de la clase derivada Ejemplo:
Empleado (long su, String ca,String nom, int edad) { super (nom,edad) ; //utiliza el constructor de la clase Persona sueldo= su; cargo=ca; }
Herencia
Por lo tanto, en la primera lnea del constructor de la SubClase se debe incluir una llamada al constructor de la Super-Clase (utilizacin de la palabra super) Los parmetros que se vayan a pasar en la sub-clase se deben incluir la lista los argumentos de la super-clase
Herencia
Mtodos Los mtodos de la super-clase se pueden utilizar en la subclase escribiendo simplemente su nombre y la lista de parmetros del mtodo Por ejemplo dentro de un mtodo de la clase Empleado que es derivada de la clase Persona se puede realizar: mostrar(); Lo mismo ocurre en los atributos, estos se llaman directamente con el nombre del atributo