diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-24 11:22:00 +0100 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-24 11:22:00 +0100 |
| commit | 79e1a51eb55d0df43323c0fe77a7d55b2c2bd17d (patch) | |
| tree | 89bd93a329f9deb72efce8fed205b69918c3d9b9 /poo/n1.lyx | |
| parent | 1f7f9bcc7660fba0827a62c3068d5c7082f025d7 (diff) | |
POO
Diffstat (limited to 'poo/n1.lyx')
| -rw-r--r-- | poo/n1.lyx | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/poo/n1.lyx b/poo/n1.lyx new file mode 100644 index 0000000..4ab7e7c --- /dev/null +++ b/poo/n1.lyx @@ -0,0 +1,235 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +La evolución de los lenguajes de programación va ligada al crecimiento de + la complejidad en aplicaciones y a la mejora de la capacidad del hardware, + y busca acercarse a los conceptos del dominio de la aplicación ( +\series bold +abstracción +\series default +). + Un +\series bold +paradigma de programación +\series default + es una serie de conceptos que guían la forma de pensar acerca de los programas, + construirlos y estructurarlos. + Los lenguajes de programación reflejan uno o varios de estos paradigmas. +\end_layout + +\begin_layout Standard +El paradigma +\series bold +orientado a objetos +\series default + organiza el software como una colección de objetos que se relacionan y + proveen la funcionalidad de un sistema. + Este paradigma nos permite: +\end_layout + +\begin_layout Itemize + +\series bold +Abstracción +\series default +: Centrarse en las propiedades de los tipos y no en la implementación. +\end_layout + +\begin_layout Itemize + +\series bold +Modularidad +\series default +: Descomponer el software en componentes que se combinan entre sí. +\end_layout + +\begin_layout Itemize + +\series bold +Encapsulación +\series default +: Juntar la estructura de un tipo de datos con sus operaciones. +\end_layout + +\begin_layout Itemize + +\series bold +Ocultación de información +\series default +: Diferenciar la parte pública de un módulo de la privada. +\end_layout + +\begin_layout Itemize + +\series bold +Herencia +\series default +: Definir clases a partir de otras. +\end_layout + +\begin_layout Itemize + +\series bold +Polimorfismo +\series default +: Permitir que una entidad haga referencia a objetos de distintos tipos. +\end_layout + +\begin_layout Standard +En 1985 se crean el +\series bold +C++ +\series default +, extensión orientada a objetos de C muy popular que ayudó a difundir el + paradigma, y +\series bold +Eiffel +\series default +, creado por Bertrand Meyer tras un profundo estudio del paradigma pero + considerado +\begin_inset Quotes fld +\end_inset + +teórico +\begin_inset Quotes frd +\end_inset + + y poco usado. +\end_layout + +\begin_layout Standard +En 1995, Sun Microsystems (adquirido por Oracle en 2009) crea +\series bold +Java +\series default +, un lenguaje OO puro popularizado por su uso en la web y con numerosas + bibliotecas de código, y en el año 2000 Microsoft crea +\series bold +C# +\series default +, que combina C++ y Java, junto con su plataforma +\series bold +.NET +\series default +. +\end_layout + +\begin_layout Standard +El compilador de Java genera un +\series bold +código intermedio +\series default + o +\emph on +bytecode +\emph default +, independiente de la plataforma, e interpretado o compilado en el momento + (compilación +\series bold +JIT +\series default +, +\emph on +Just In Time +\emph default +) por la máquina virtual de Java (JVM), con lo que el código se puede ejecutar + en cualquier máquina que tenga instalado el entorno de ejecución de Java + y la máquina virtual, independientemente de la arquitectura del procesador + y el sistema operativo. +\end_layout + +\begin_layout Standard +Java presenta una sintaxis sencilla, parecida a C++ pero eliminando las + características complejas, y es robusto al ser fuertemente tipado (el compilado +r detecta muchos problemas del código), soportar excepciones (para gestión + de errores en tiempo de ejecución) y proveer +\begin_inset Quotes fld +\end_inset + +recogida de basura +\begin_inset Quotes frd +\end_inset + + (hace innecesaria la gestión de punteros). + Aprenderemos Java 1.8. +\end_layout + +\end_body +\end_document |
