Download Fundamentos de Programacion 1.- Desarrollar un mapa mental

Document related concepts
no text concepts found
Transcript
Fundamentos de Programacion
1.- Desarrollar un mapa mental conceptual que explique la materia de fundamentos de
programación.
R=
2.-Tomando como referencia la casa familiar donde viven, definan 5 clases diferentes con 3
objetos diferentes. R=
Clase 1: Juguetes: Muñecos, Carritos, Rompecabezas
Clase 2: Útiles: Calculadora,Libros,Lápiz
Clase 3: Mascotas: Perro, Gato, Tortuga
Clase 4: Electrodomesticos: Televisor, Radio, Aire Acondicionado
Clase 5: Calzado: Tenis, Botas, Sandalias
3.-Defina los 6 conceptos fundamentales de la POO y de 3 ejemplos de cada uno de ellos. R=
**Abstracción**
La abstracción es el proceso de simplificar un problema complejo; en si son las
características que permiten identificar las cualidades esenciales de un objeto. Al abordar
la solución de un problema, uno no se abruma con cada uno de los detalles, mas bien, lo
simplifica enfocándose tan sólo en los aspectos relevantes para la solución. Una
abstracción se centra en la vista externa de un objeto, de un modo que sirva para separar
el comportamiento esencial de un objeto de su implementación. Definir una abstracción
significa describir una entidad del mundo real, no importa lo compleja que pueda ser.
Características que permiten identificar las cualidades esénciales de un objeto
Peso
Color
Forma
Sabor
Olor
Textura
Medidas
**Encapsulación**
La encapsulación o Encapsulamiento es la propiedad que permite asegurar que el
contenido de la información de un objeto está oculta al mundo exterior: el objeto A no
conoce lo que hace el objeto B, y viceversa. La encapsulación (también se conoce como
ocultación de la información), en esencia, es el proceso de ocultar todos los objetos de un
objeto que no contribuyen a sus características esenciales. La encapsulación permite la
división de un programa en módulos. Estos módulos se implementan mediante clases, de
forma que una clase representa la encapsulación de una abstracción.
Encapsulamiento
Es aquel que permite ocultar información del objeto al usuario
La televisión, radio, celular, memoria, podemos ver el ensamblado pero no sus
componentes
Un registro en linea, no se da cuenta la programación que hay detrás de esta
**Modularidad**
La modularidad es la propiedad que permite subdividir una aplicación en partes más
pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como
sea posible de la aplicación en si y de las restantes partes. La modularización, consiste en
dividir un programa en módulos que se puedan compilar por separado, pero que tienen
conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la
modularidad de diversas formas. Por ejemplo, en C++ los módulos son archivos
compilados por separado.
**Herencia**
Una de las propiedades más importantes de la programación orientada a objetos es la
herencia. De hecho, algunos piensan que un programa que no emplea herencia no es un
programa orientado a objetos. La herencia es aquella propiedad de la programación
orientada a objetos que le permite a una clase, llamada clase derivada, compartir la
estructura y el comportamiento de otra clase, llamada clase base. La naturaleza está llena
de herencia. Todas las cosas vivas heredan las características o rasgos de sus antepasados.
Una razón para usar herencia es que le permite reutilizar el código de un proyecto de
programación anterior sin empezar de cero para reinventar el código. Muchas veces es
posible reutilizar el código desarrollado para un programa en otro programa. Aunque el
nuevo programa sea ligeramente diferente del anterior, la herencia permite construir uno
que fue hecho con anterioridad.
Herencia
Es la que permite crear una clase en terminos de una clase existente
Tenemos dos gatos, uno blanco y uno negro
Nacio un gato negro con blanco
**Jerarquía**
La jerarquía es el orden de los elementos de una serie según su valor. De igual modo, es la
disposición de personas, animales o cosas, en orden ascendente o descendente, según
criterios de clase, poder, oficio, categoría, autoridad o cualquier otro asunto que conduzca
a un sistema de clasificación. La jerarquía es una propiedad que permite una ordenación
de las abstracciones. Las dos jerarquías más importantes de un sistema complejo son:
estructura de clases y una estructura de objetos.
Jerarquía Permite la organización de estructura de clase y de objeto
De Politica:
Presidente
Gobernador
Senadores y Diputados
Presidente Municipal
Delegado
Jefe de Manzana
**Polimorfismo**
La quinta propiedad significativa de los lenguajes de programación orientados a objetos es
el polimorfismo. Característica fundamental de la POO, que no es otra cosa que la
posibilidad de construir varios métodos con el mismo nombre, pero con relación a la clase
a la que pertenece cada uno, con comportamientos diferentes. Esta propiedad no suele
ser considerada como fundamental en los diferentes modelos de los objetos propuestos,
pero, dada su importancia, no tiene sentido considerar un objeto modelo que no soporte
esta propiedad Polimorfismo es la propiedad que indica, literalmente, la posibilidad de
que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite a
objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma
operación de diferentes formas, según sea el objeto que se referencia en ese momento.
Polimorfismo Es la propiedad que indica, literalmente la posibilidad de que una entidad
tome muchas formas.
Una mariposa de la misma especie puede tomar diferentes colores
Un caracol puede ser de la misma forma puede tener un color especifico
Un gato de la misma especie puede tener color distinto
Links!!
http://go.microsoft.com/fwlink/?LinkId=74005
http://go.microsoft.com/fwlink/?LinkId=74005
http://es.wikipedia.org/wiki/Herencia_(programaci%C3%B3n_orientada_a_objetos)
http://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_aobjetos)
4.-Explique ampliamente en que consiste la AOO, DOO, MOO, y POO, y de 3 ejemplos de su
aplicacion. R=
***ANALISIS ORIENTADO A OBJETO***
Análisis Orientado a Objeto: En la actualidad son varias las metodologías de Análisis
Orientado a Objeto que se han desarrollado, UML se perfila como estándar. Una de las
primeras que surgieron, ya que ofrecen un enfoque relativamente simple e intuitivo. Esta
es la metodología debida a Coad y Yourdon que tiene su continuación en un Diseño
Orientado a Objetos. Una de las ventajas que ofrece el enfoque orientado a objeto es que
permite mantener un lenguaje común entre las diferentes fases del ciclo de vida,
evitándose el problema que surge en las metodologías estructuradas relativo al cambio de
nomenclatura al pasar de una fase a otra por cambiarse de herramienta o modo de
expresión o al realizar el estudio de los procesos y de los datos. Una de las razones de ese
paso de metodologías estructuradas a las orientadas a objeto se deben en parte a que los
sistemas a desarrollar son mucho más grandes y complejos, dándose cada vez más
importancia a las interfaces de usuario. Por otra parte se consigue una complejidad
funcional mucho menor y llegando a darse más importancia al modelado de los datos. En
el conocimiento del mundo real, se emplean 3 métodos de organización: 1.- Se diferencia
entre los objetos particulares y sus características (o atributos). Ej. Un árbol, su tamaño, y
su relación con otros objetos 2.- Distinción entre objetos (como un todo) y las partes que
los componen. Ej.: El árbol y las ramas que lo componen. 3.- La formación de, y la
distinción entre clases de objetos. Ej. Clase de los arboles, de piedras...
El modelo de AOO se basa en estos tres modelos de organización empleados en la vida
real. Así, de un modelo simplificado, podemos mencionar como beneficios que aporta el
AOO los siguientes: - Se pueden asumir mayores desafíos en el dominio del problema.
Esto supone hacer más énfasis en el conocimiento del mismo. - Existe una mayor
interacción entre el analista y el dominio del problema. Es decir, se organiza el análisis y la
especificación utilizando los mismos métodos de trabajo que los que rigen el pensamiento
humano. - Aumenta la consistencia interna de los resultados del análisis. Es decir, reduce
el gap semántico entre las diferentes actividades del análisis y el diseño, tratando
atributos y procesos como un todo. - Se construyen especificaciones fácilmente
modificables proporcionando estabilidad frente a las modificaciones de los
requerimientos. - Da reusabilidad de los resultados del Análisis, permitiendo definir
familias de sistemas. - Da una representación consistente para el análisis y el Diseño
mediante una representación continua para la expansión sistemática de los resultados del
Análisis al Diseño.
http://epcc.unex.es/modules.php?op=modload&name=Downloads&file=index&req=desc
argar&lid=1857.
Ejemplos
EJEMPLO1: Cuando en una empresa se pide un sistema de base de datos, lo primero que
se debe hacer es definir los datos que deben ir en el sistema, tanto datos de entrada como
de salida.
EJEMPLO2:cuando en la escuela nos piden alguna tarea de matematicas, lo primero que
hacemos es definir cual debe ser el resultado.
EJEMPLO3:cuando nos encargan una exposicion, lo primero es investigar sobre el tema a
exponer.
http://www.di.uniovi.es/~cernuda/pfc/aoo.pdf
***Diseño Orientado a Objetos***
El Diseño Orientado a Objetos se define como un diseño de sistemas que utiliza objetos
auto-contenidos y clases de objetos.
Características principales del Diseño Orientado a Objetos:
Los objetos son abstracciones del mundo real o entidades del sistema que se administran
entre ellas mismas Los objetos son independientes y encapsulan el estado y la
representación de información La funcionalidad del sistema se expresa en términos de
servicios de los objetos Las áreas de datos compartidas son eliminadas. Los objetos se
comunican mediante paso de parámetros Los objetos pueden estar distribuidos y pueden
ejecutarse en forma secuencial o en paralelo
Ventajas del Diseño Orientado a Objetos:
Fácil de mantener, los objetos representan entidades auto-contenidas Los objetos son
componentes reutilizables Para algunos sistemas, puede haber un mapeo obvio entre las
entidades del mundo real y los objetos del sistema
Desarrollo Orientado a Objetos:
El análisis, diseño y programación orientada a objetos están relacionados pero son
diferentes El análisis orientado a objetos concierne al desarrollo del modelo de objetos del
dominio de la aplicación El Diseño Orientado a Objetos trata del desarrollo del modelo del
sistema orientado a objetos para implementar los requerimientos
http://www.cs.buap.mx/~dpinto/semadoo/mario.pdf
EJEMPLO1: se prodece al realizar un diseño del sistema.
EJEMPLO2: buscamos alguna formula que nos ayude arealizar los calculos nesesarios.
EJEMPLO3:procedemos a comenzar a estructurara la informacion de la manera mas
entendible.
***MODELO ORIENTADO A OBJETOS***
El modelo orientado a objetos tiene un gran número de objetos autónomos con distinta
funcionalidad disponibles en un sistema distribuido. Los objetos corren en espacios de
direccionamiento disjuntos. A partir de rutinas de comunicación explicitas ellos invocan y
usan la funcionalidad de los otros objetos. Se distinguen tres enfoques para combinar el
modelo orientado a objetos con el paralelo/distribuido: o Paralelismo oculto dentro del
objeto. o Procesos independientes de los objetos, que llaman a distintos métodos de
distintos procesos. Se necesitan mecanismos de sincronización. Modelo Java Threads. o
Cada objeto está asociado con uno o más procesos que ejecutan los accesos al objeto. A
este modelo llamaremos Modelo Orientado a Objetos.
Se ven dos clases de Modelo Orientado a Objetos: o Objetos Distribuidos. o Objetos
Activos.
http://weblidi.info.unlp.edu.ar/catedras/paralela/Teorias/Clase8-2005.doc.
EJEMPLO1: El sistema de la empresa que vimos anteriormente, se hace un prototipo de
ello para presentarse y se checa si cumple con los requerimientos.
EJEMPLO2:se procede a crear una pequeña aplicacion de como debemos realizar esa
tarea.
EJEMPLO3:hacer una pequeña lamina de como quedara nuestra exposicion.
***Programación Orientada a Objetos***
La orientación a objetos es un paradigma de programación que facilita la creación de
software de calidad por sus factores que potencian el mantenimiento, la extensión y la
reutilización del software generado bajo este paradigma. La programación orientada a
objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. Esto es
posible gracias a la forma racional con la que se manejan las abstracciones que
representan las entidades del dominio del problema, y a propiedades como la jerarquía o
el encapsulamiento. El elemento básico de este paradigma no es la función (elemento
básico de la programación estructurada), sino un ente denominado objeto. Un objeto es la
representación de un concepto para un programa, y contiene toda la información
necesaria para abstraer dicho concepto: los datos que describen su estado y las
operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto.
http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm
EJEMPLO1: Se procede a llevar el diseño a un lenguaje de programacion y codificarlo.
EJEMPLO2:se procede con la ayuda de la formula a resolver el problema para obtener el
resultado.
EJEMPLO3: se procede a se realiza la exposicion teniendo ya los anteriores pasos.
5.-Ilustre cronologicamente el desarrollo historico de la programacion, explicando ampliamente
cada uno de sus paradigmas
1943 Plankalkül (Konrad Zuse) En él se muestran claramente los recursos de los lenguajes
para la organización de datos. Sus únicos valores atómicos eran bits. Los demás tipos de
valores se construían a partir de bits individuales.
1954 FORTRAN Los lenguajes como FORTRAN miembros del denominado paradigma
imperativo. En este paradigma, los conceptos centrales son el de estado (variable o región
de memoria que puede consultarse y actualizarse) y el de instrucción (unidad de ejecución
que, eventualmente, conduce a la modificación del estado).
1958 LISP Esta basado en el paradigma funcional en el que los programas se conciben
como descripción de funciones, mientras que la ejecución de los mismos viene dada por
una regla que permite aplicar esas funciones a sus argumentos. Dicho paradigma conduce,
de esta forma, a un estilo más declarativo de comunicación con la máquina que, en el
límite, prima la descripción del problema frente a la descripción de su solución.
1959 COBOL Los lenguajes que siguen el paradigma imperativo se centran en la acción, es
decir, la computación se ve como una secuencia de acciones (especificadas paso a paso)
que convierten los datos de entrada iniciales en los datos de salida finales
1962 Simula La programación orientada al objeto (OOP) es un paradigma programado que
utiliza el " objeto" y sus interacciones para diseñar usos y programas de computadora. Las
técnicas de programación pueden incluir características tales como encapsulación,
modularidad, polimorfismo, y herencia.
1964 BASIC Esta basado en el paradigma imperativo, sólo soporta sentencias simples que
modifican la memoria y efectúan bifurcaciones condicionales e incondicionales. Incluso
cuando se añade una forma simple de abstracción procedimental, el modelo permanece
básicamente sin cambiar
1972 - C La programación imperativa, en contraposición a la programación declarativa es
un paradigma de programación que describe la programación en términos del estado del
programa y sentencias que cambian dicho estado. Los programas imperativos son un
conjunto de instrucciones que le indican al computador cómo realizar una tarea.
1978 SQL El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es
el que se encarga de la modificación de la estructura de los objetos de la base de datos.
Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
1983 - C++ Un lenguaje de programación multiparadigma es un lenguaje de programación
que soporta más de un paradigma de programación. Según lo describe Bjarne Stroustrup,
permiten crear "programas usando más de un estilo de programación". El objetivo de
diseño de estos lenguajes es permitir a los programadores utilizar la mejor herramienta
para cada trabajo, admitiendo que ningún paradigma resuelve todos los problemas de la
forma más fácil y eficiente posible. Tal es el caso de lenguajes como C++, Delphi o Visual
Basic, los cuales combinan el paradigma imperativo con el orientado a objetos. Incluso
existen lenguajes multiparadigma que permiten la mezcla de forma natural, como en el
caso de Oz, que tiene subconjuntos (particularidad de los lenguages lógicos), y otras
características propias de lenguages de programación funcional y de lenguages de
programación orientados a objetos.
1990 Python Multiparadigma Es un lenguaje de programación que que soporta mas de un
paradigma, es decir, permite "crear programas usando mas de un estilo de programación.
1991 Java Paradigma orientado a Objetos: Es un paradigma de programación que utiliza
objetos y sus interacciones para diseñar aplicaciones y programas de computadora.
1993 Ruby
1997 Perl Multiparadigma Es un lenguaje de programación que que soporta mas de un
paradigma, es decir, permite "crear programas usando mas de un estilo de programación.
2000 C Sharp Es un paradigma de programación que utiliza objetos y sus interacciones
para diseñar aplicaciones y programas de computadora
http://es.wikipedia.org/wiki/Programaci%C3%B3n_multiparadigma
http://es.wikipedia.org/wiki/C%2B%2B
http://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programaci%C3%B3n
http://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programación
http://es.wikipedia.org/wiki/Python
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java
http://es.wikipedia.org/wiki/Ruby
http://es.wikipedia.org/wiki/C_Sharp
http://es.wikipedia.org/wiki/BASIC
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascal
http://es.wikipedia.org/wiki/C%2B%2B
6.-Explique ampliamente en que consiste la complejidad del software y como ayuda la POO para
resolverlo
La complejidad del Software.
Al observar sistemas complejos sociales como una gran empresa, los naturales como el
universo y los sistemas creados por el hombre como el computador, se observa que
exhiben una jerarquía de clases (conceptos) y otra de objetos (instancias). En una empresa
donde conjuntos de personas forman un departamento y un conjunto de departamentos
forman divisiones se describe la forma canónica de un sistema complejo que exhibe dos
jerarquías: Una jerarquía de clases y otra jerarquía de objetos, donde cada objeto es una
instancia de la una clase. Este es el modelo del cual se apropia el análisis y diseño
orientado a objetos para desarrollar sistemas donde hay gran cantidad de software.
<>
http://es.wikipedia.org/wiki/Programaci%C3%B3n
http://www.mat.uson.mx/mireles/FundamentosModeloObjetos_archivos/frame.htm#slid
e0005.htm
7.-Tomando como referencia 6 lenguajes de programacion realize una tabla descriptiva que
ilustre las ventajas y desventajas de cada uno de ellos
***JAVA***
- Es un lenguaje relativamente sencillo y fácil de aprender.
- Es muy productivo, con poco código puedes hacer mucho más que la misma cantidad en
código de C ó C++
- Nos permite organizar el código en entidades como las clases compuestas de datos y
funciones, y a través de la característica de la herencia podemos organizar las clases en
jerarquías.
Desventajas
- Java es lento comparado con C ó C++, pero en algunas tareas es casi igual de veloz.
- Java no permite el acceso directo a todos los recursos de hardware de la PC. Aunque esto
también podría ser una ventaja ya que así es más fácil.
- Actualmente hay tantas bibliotecas de clases para java que es casi imposible conocer
para que sirven todas y cada una de ellas.
***C***
Es un lenguaje muy flexible
· Muy apropiado para controlar rutinas hechas en ensamblador
· Permite general programas de fácil modificación
· Lenguaje predominante bajo cualquier máquina UNIX
· Muy veloz y potente, lo que permite un software efectivo
desventajas
· No dispone de editor propio
· Se requiere más tiempo en conseguir el ejecutable, porque cada vez compila todo el
fichero.
· La modularidad en C tiende a incrementar el tiempo de compilación
· Poco legible y eminentemente críptico
***c#***
Compila a código intermedio (CIL) independiente del lenguaje en que haya sido escrita la
aplicación e independiente de la máquina donde vaya a ejecutarse
Recolección de basura automática
Eliminación del uso punteros, en C# no se necesitan
Desventajas
- Requiere más tiempo en conseguir el ejecutable, porque cada vez compila todo el
fichero.
- No dispono de un propio editor
- Es poco legible
***PASCAL***
- Pascal es un lenguaje muy simple,
- se estudia en las carreras porque es una forma facil de aprender las primeras bases de la
programación.
- La sintaxis de Pascal es sencilla, y tiene las funciones basicas de todos los lenguajes. te
enseña a "pensar" como programar de una forma estructurada.
Desventajas
- te enseña a "pensar" como programar de una forma estructurada.
- Pascal solo se utiliza para aprender, no para programar
***cobol***
Autodocumentado
Simple
No propietario
Eficiente
Universal
Abierto
Completo
Escalable
Maduro
Portable
Fiable y probado
Desventajas
- Es poco universal.
- Es muy suceptible a las variantes.
***BASIC***
Es un lenguaje
Posee una curva de aprendizaje muy rápida.
Integra el diseño e implementación de formularios de Windows.
Permite usar con suma facilidad la plataforma de los sistemas Windows.
El código en Visual Basic es facilmente migrable a otros lenguajes.
Acostumbra a los desarrolladores a programar con eficiencia.
Desventajas
No permite programación a bajo nivel ni incrustrar secciones de código en ASM
Sólo permite el uso de funciones de librerías dinámicas (DLL) stdcall.
Algunas funciones están indocumentadas (Sin embargo esto ocurre en muchos lenguajes).
Es un lenguaje basado en objetos y no orientado a objetos.
No maneja muy bien los apuntadores de memoria.
No soporta tratamiento de procesos como parte del lenguaje.
- No avisa de ciertos errores o sentencias.
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
8.-Tomando como referencia el banco de programas en java del grupo, ejemplifique con un
programa sencillo la aplicacion de los 6 conceptos fundamentales de la programacion orientada
a objeto
Encapsulamiento:
Es la característica que permite que un objeto oculte información esencial al usuario, con
esto se logra mejoras en la operación del programa así como niveles de seguridad. La
Interfaz será la "máscara" de toda esa información no disponible al usuario.
Ejemplo de Encapsulación
class Fecha
{
public int dia ;
public int mes ;
public int anno ;
}
...
Fecha f = new Fecha() ;
f.dia = 34 ;
f.mes = 14 ;
f.anno = 0 ;
...
class Fecha
{
private int dia ;
private int mes ;
private int anno ;
}
...
Fecha f = new Fecha() ;
f.dia = 34 ; ==> ERROR
f.mes = 14 ; ==> ERROR
f.anno = 0 ; ==> ERROR
...
int d ;
d = f.dia ; ==> ERROR
...
Abstracción:
Característica que permite identificar las cualidades esenciales del objeto.
Ejemplo: Al usuario convencional no le interesa si el programa está desarrollado en
técnicas avanzadas de programación o bajo un lenguaje en específico, porque lo esencial
es el programa.
La abstracción varía en cada analista de software pues cada uno tiene distintos conceptos
de la realidad.
abstract class ConfiguracionSistema{
static boolean VersionEvaluacion;
static int diasUtilización;
static final int maxDias;
static String ubicacion;
static String paginaInicial;
}
Polimorfismo
Esto representa que las funciones son aplicables a todos los objetos pero no son aplicables
de la misma forma. Código:
class animal
{
public void breathe()
{
System.out.println("Respirar...");
}
}
class pez extends animal
{
public void breathe()
{
System.out.println("Burbujear...");
}
}
Herencia
La herencia permite crear una clase nueva (subclase o clase derivada) que tenga el mismo
comportamiento que otra (superclase o clase base) y además extienda o adapte ese
comportamiento a unas necesidades específicas.
Jerarquía
La herencia es el mecanismo fundamental de relación entre clases en la orientación a
objetos. Relaciona las clases de manera jerárquica; una clase padre o superclase sobre
otras clases hijas o subclases.
public class SubClase extends SuperClase {
// Contenido de la clase
}
Por ejemplo, creamos una clase MiPunto3D, hija de la clase ya mostrada MiPunto:
class MiPunto3D extends MiPunto {
int z;
MiPunto3D( ) {
x = 0; // Heredado de MiPunto
y = 0; // Heredado de MiPunto
z = 0; // Nuevo atributo
}
}
La palabra clave extends se utiliza para decir que deseamos crear una subclase de la clase
que es nombrada a continuación, en nuestro caso MiPunto3D es hija de MiPunto.
ENLACES
http://sistemas.itlp.edu.mx/tutoriales/fundamentosdeprog/t15.htm
http://foro.elhacker.net/java/ejercicios_java_teoriaejemplos-t34891.0.html
http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/II_6.htm
http://lsi.vc.ehu.es/mikell/docencia/Programacion-II/Transparencias/2Gaia/T2ModularidadJava0607.pdf
9.-Tomando como referencia la practica 1 explique ampliamente en que consiste el lenguaje
java y como se utiliza
¿Qué es Lenguaje Java (J2SE)?
Java es un lenguaje de programación orientada a objetos creado por Sun. La plataforma
J2SE (Java 2 Standard Edition) es la base de la tecnología Java pues incluye las
herramientas de desarrollo, la máquina virtual JVM y la documentación de interés para el
programador. Java es un lenguaje de programación orientado a objetos desarrollado por
Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su
sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas
de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de
punteros o memoria. Las aplicaciones Java están típicamente compiladas en un bytecode,
aunque la compilación en código máquina nativo también es posible. En el tiempo de
ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la
ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java
también es posible. La implementación original y de referencia del compilador, la máquina
virtual y las librerías de clases de Java fueron desarrollados por Sun Microsystems en
1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución
del lenguaje a través del Java Community Process, si bien otros han desarrollado también
implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias
de software libre. Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la
mayor parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las
especificaciones del Java Community Process, de tal forma que prácticamente todo el Java
de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para
ejecutar los programas Java todavía no es software libre).
¿En qué consiste el Lenguaje Java ?
En el Curso de Java (J2SE) se aborda el aprendizaje del lenguaje Java; primero se estudia la
Programación Orientada a Objetos para tener bien asimilada la base del paradigma de
Programación que utiliza Java. En sesiones posteriores, se estudiarán las distintas
tecnologías que ofrece Java (RMI, JFC, AWT). Aprenda Java y la plataforma J2SE de la
forma más completa gracias al Curso de Java de Ciberaula.
Para desarrollar programas en Java es suficiente con instalar el paquete JDK de Sun, que
es de libre distribución. En el site de Sun podemos encontrar toda clase de información
relacionada con Java: Ejemplos de programas escritos en Java, tutoriales, documentación,
bugs conocidos y su solución, etc.. La dirección base es : www.sun.com La ultima version
disponible hasta la fecha es la JDK 1.2 Pasos para crear un programa en Java - Aplicaciones
" Escribir el programa fuente en cualquier editor y guardarlo con extensión .java "
Compilar el fichero fuente mediante: javac miPrograma.java .Esto genera el fichero .class "
Ejecutarlo (interpretar los byte-code) : java miPrograma - Applets " Escribir el programa
fuente en cualquier editor y guardarlo con extensión .java " Compilar el fichero fuente
mediante: javac miProgramaApplet.java " Escribir la pagina web que contendra al applet y
guardar el codigo con extension .html " El codigo minimo será:
2 posibilidades para ejecutar el applet:
Lanzar un navegador y cargar la pagina html, o bien - Usar el programa provisto por Sun
para ver applets: appletviewer miProgramaApplet.html
Un ejemplo de herramientas básicas para comenzar a programar en lenguaje JAVA podría
ser:
1.- Editor de código multilenguaje y con utilidades de edición y detección automática de
errores. Un muy buen editor con estas propiedades y muchas más es ED for Windows
v3.80 (www.getsoft.com) pero existen muchos otros y casi todos de libre distribución.
2.- JDK1.1.x, con el que podemos compilar y probar las aplicaciones y applets realizados.
3.- Documentación HTML de las clases JAVA.
Además de lo arriba indicado, es aconsejable trabajar con paquetes de componentes que
no pertenecen a los básicos de Java, como puede ser swing o symbeans. Estos
componentes o beans proporcionan utilidades y facilidades añadidas al paquete básico de
jdk.
Otra posibilidad para desarrollar en JAVA es utilizar una herramienta Visual como Visual
Cafe o V++. Estas herramientas suponen un entorno integrado de programación con
módulos editor, de diseño visual, compilador, depurador, etc. Además proporcionan
componentes propios especialmente útiles en diseño de interfaces gráficas.
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java
http://www.dcc.uchile.cl/~lmateu/Java/Apuntes/appletim.htm
10.-Ilustre de manera inteligente 5 chistes que hablen sobre la programacion
http://www.quechistes.es/
http://www.lahiguera.net/