You are on page 1of 33

Introduccin a las computadoras,

Internet y Java 1
El hombre sigue siendo el equipo ms
extraordinario de todos.
- John F. Kennedy

Buen diseo es buen negocio.


- Thomas J. Watson, fundador de IBM

OB jecti cinco s
En este captulo podrs:

Aprender acerca de los ltimos


acontecimientos emocionantes en el
campo de la informtica.

Aprender hardware, software


y redes bsico.

Entender la jerarqua de
datos.

Entender los diferentes tipos de


lenguajes de programacin.

Comprender la importancia de Java y


otros lenguajes de programacin
principales.

Comprender las bases de programacin


orientados a objetos.

Aprender la importancia de
Internet y la web.
Aprender un entorno de desarrollo de
Java programa- tpica.

Prueba de manejo de una aplicacin Java.

Aprender algunas tecnologas


clave de software ms recientes.

Ver la forma de mantenerse al da con


las tecnologas de informacin.
2 Captulo 1 Introduccin a las computadoras, Internet y Java

1.1 Introduccin 1.6 Sistemas operativos

1.2 Hardware y software 1.6.1 Windows un sistema operativo propietario

1.2.1 Ley de Moore


1.6.2 cdigo abierto del sistema operativo Linux-Un
1.2.2 Organizacin del ordenador

1.3 La jerarqua de datos 1.6.3 Android


1.4 Lenguajes mquina, la Asamblea 1.7 Lenguajes de programacin
Lenguas y lenguajes de alto nivel 1.8 Java
1.5 Introduccin a la tecnologa de objetos 1.9 Un desarrollo tpico de Java
1.5.1 El automvil como un Objeto Ambiente
1.5.2 Mtodos y clases
1.10 Prueba de manejo de una aplicacin Java
1.5.3 La instanciacin
1.5.4 reutilizacin 1.11 Internet y la World Wide Web
1.5.5 Los mensajes y las llamadas a mtodos 1.11.1 El Internet: una red de redes
1.5.6 Atributos y Variables de instancia 1.11.2 La World Wide Web: hacer que Internet sea
1.5.7 La encapsulacin y ocultacin de la informacin fcil de usar
1.5.8 Herencia 1.11.3 Servicios Web y aplicaciones web hbridas
1.5.9 Interfaces 1.11.4 Ajax
1.5.10 Anlisis Orientado a Objetos y Diseo (OOAD) 1.11.5 La Internet de las cosas

1.12 Tecnologas de software


1.5.11 El UML (Unified Modeling
Language) 1.13 Mantenerse al da con
Tecnologas de la informacin

Ejercicios de auto-revisin | Respuestas a los ejercicios de auto-revisin | ejercicios | Hacer una diferencia

1.1 Introduccin
Bienvenido a Java uno de los lenguajes de programacin ms utilizados en el mundo. Que ya est familiarizado con
las tareas potentes ordenadores realizan. El uso de este libro de texto, que voy a escribir instrucciones de mando de
ordenadores para realizar esas tareas. Software
(es decir, las instrucciones se escriben) los controles hardware ( es decir, ordenadores). Aprenders programacin orientada a objetos metodologa
de programacin de la llave de -hoy.
Vamos a crear y trabajar con muchos objetos de software.
Para muchas organizaciones, el idioma preferido para satisfacer sus necesidades empresariales de programacin es Java. Java
tambin es ampliamente utilizado para la implementacin de aplicaciones y software basados en Internet para los dispositivos que se
comunican a travs de una red.
Forrester Research predice ms de dos mil millones de PCs estarn en uso en 2015. 1
De acuerdo con Oracle, el 97% de los equipos de la empresa, el 89% de las PC de escritorio, tres mil millones de dispositivos (Fig. 1.1)
y el 100% de todos los reproductores Blu-ray Disc ejecutar Java, y hay ms de 9 millones de desarrolladores Java. 2

De acuerdo con un estudio realizado por Gartner, los dispositivos mviles seguir superando los PC como dispositivos
informticos principales del usuario; un estimado de 1.96 mil millones de telfonos inteligentes y tabletas de 388 millones sern
enviados en 2015-8.7 veces el nmero de PC. 3 En 2018, las aplicaciones mviles

1. http://www.worldometers.info/computers.
2. http://www.oracle.com/technetwork/articles/java/javaone12review-1863742.html.
3. http://www.gartner.com/newsroom/id/2645115.
1.1 Introduccin 3

dispositivos

sistemas del avin cajeros automticos sistemas de informacin y entretenimiento del automvil

reproductores Blu-ray Disc cajas de cable copiadoras

Tarjetas de crdito los escneres de TC Computadores de escritorio

lectores electrnicos Consolas de juegos sistemas de navegacin GPS

Electrodomsticos Inicio sistemas de seguridad interruptores de luz

terminales de lotera Dispositivos mdicos Telfonos mviles

Las resonancias magnticas estaciones de pago de estacionamiento impresoras

pases de transporte robots routers


Tarjetas inteligentes Contadores inteligentes bolgrafos inteligentes

Los telfonos inteligentes tabletas televisores

decodificadores de TV termostatos sistemas de diagnstico de vehculos

Fig. 1.1 | Algunos dispositivos que utilizan Java.

Se espera (aplicaciones) de mercado para llegar a $ 92 mil millones. 4 Se trata de la creacin de oportunidades de empleo significativas
para las personas que programan aplicaciones mviles, muchos de los cuales estn programados en Java (ver Seccin 1.6.3).

Java Standard Edition


Java ha evolucionado tan rpidamente que esta dcima edicin de Java Cmo programar -Residencia en Java Standard Edition
7 (Java SE 7) y Java Standard Edition 8 (Java SE 8) -Fue publicada tan slo 17 aos despus de la primera edicin. Java
Standard Edition contiene las capacidades necesarias para desarrollar aplicaciones de escritorio y de servidor. El libro se puede
utilizar con ya sea Java SE 7 o
Java SE 8 (lanzado justo despus de este libro fue publicado). Todas las caractersticas de Java SE 8 se tratan en
secciones modulares, fciles de incluir-o-omitir todo el libro.
Antes de Java SE 8, Java soportado tres paradigmas- programacin la programacin de procedimiento, programacin
orientada a objetos y programacin genrica. Java SE 8 aade la programacin funcional. En el captulo 17, vamos a mostrar
cmo utilizar la programacin funcional para escribir programas ms rpido, ms concisa, con menos errores y que son ms
fciles de paralelizar ( es decir, realizar varios clculos simultneamente) para aprovechar las arquitecturas de hardware
multi-ncleo de hoy en da para mejorar el rendimiento de la aplicacin.

Java Enterprise Edition


Java se utiliza en una amplia gama de aplicaciones que tiene otras dos ediciones tales. los
Java Enterprise Edition (Java EE) se orienta hacia el desarrollo a gran escala, aplicaciones de red distribuidos y aplicaciones
basadas en web. En el pasado, la mayora de las aplicaciones informticas corrieron en equipos independientes (ordenadores
que no estaban conectados en red). aplicaciones de hoy en da se pueden escribir con el fin de comunicarse entre los
ordenadores del mundo a travs de Internet y la web. Ms adelante en este libro se discute cmo construir este tipo de
aplicaciones basadas en la Web con Java.

4. https://www.abiresearch.com/press/tablets-will-generate-35-of-this-years-25-
millones-.
4 Captulo 1 Introduccin a las computadoras, Internet y Java

Java Micro Edition


los Java Micro Edition (Java ME) -a subconjunto de Java SE-se orienta hacia el desarrollo de aplicaciones para dispositivos
integrados de recursos limitados, tales como smartwatches, reproductores MP3, decodificadores de televisin, medidores
inteligentes (para controlar el uso de la energa elctrica) y ms.

1.2 Hardware y software


Las computadoras pueden realizar clculos y tomar decisiones lgicas fenomenalmente ms rpido que los seres humanos
pueden. Muchas de las computadoras personales de hoy pueden realizar miles de clculos en un segundo, ms que un ser
humano puede realizar en la vida. superordenadores ya estn realizando miles de billones (trillones) de instrucciones por
segundo! china de la Universidad Nacional de Tianhe-2 superordenador de Tecnologa de Defensa puede realizar ms de
33 billones de clculos por segundo (33.86 petaflops)! 5 Para poner esto en perspectiva, la Tianhe-2 superordenador puede
realizar en un segundo alrededor de 3 millones de clculos por cada persona en el planeta! Y estos supercomputacin
lmite superior estn creciendo rpidamente.

datos de proceso de los ordenadores bajo el control de secuencias de instrucciones llamado programas de computador . Estos
programas de software guan al ordenador a travs de acciones ordenadas especificados por personas llamadas ordenador programadores
. En este libro, aprender una metodologa de programacin de la llave que se mejora la productividad del programador, reduciendo
de esta manera el software de desarrollo costos- programacin orientada a objetos.

Un equipo consta de varios dispositivos que se hace referencia como hardware (por ejemplo, el teclado, pantalla, ratn, discos
duros, memoria, unidades de DVD y unidades de procesamiento). son los costes informticos dejando caer drsticamente, debido a la
rpida evolucin de las tecnologas de hardware y software. Los equipos que podran haber llenas habitaciones grandes y cuestan
millones de dlares hace dcadas estn inscritos en los chips de silicio ms pequeos que una ua, con un costo tal vez un par de
dlares cada una. Irnicamente, el silicio es uno de los materiales ms abundantes en la Tierra es un ingrediente en la arena comn.
la tecnologa de chip de silicio ha hecho el clculo de tan econmico que los ordenadores se han convertido en una mercanca.

1.2.1 Ley de Moore


Cada ao, es probable que esperar pagar por lo menos un poco ms para la mayora de productos y servicios. Lo contrario ha
sido el caso en los campos informticos y de comunicaciones, especialmente en relacin con el hardware de apoyo a estas
tecnologas. Durante muchas dcadas, los costos de hardware han cado rpidamente.

Cada ao o dos, la capacidad de los ordenadores tienen aproximadamente duplicado econmica. Esta tendencia notable a
menudo se llama La Ley de Moore , el nombre de la persona que lo identific en la dcada de 1960, Gordon Moore, cofundador de
Intel, el principal fabricante de los procesadores de los ordenadores actuales y sistemas embebidos. observaciones Derecho y
afines de Moore se aplican especialmente a la cantidad de memoria que las computadoras tienen los programas, la cantidad de
almacenamiento secundario (como el almacenamiento en disco) que tienen que mantener los programas y datos a travs de
perodos de tiempo ms largos, y sus velocidades: los procesadores velocidades a las que se ejecutar sus programas (es decir,
hacer su trabajo).

5. http://www.top500.org/.
1.2 Hardware y Software 5

Un crecimiento similar se ha producido en las comunicaciones de campo costes han cado tan enorme demanda de
comunicaciones ancho de banda ( es decir, la capacidad de soporte de informacin) ha atrado una intensa competencia.
No sabemos de ningn otro campo en el que la tecnologa mejora tan rpida y costes caer tan rpidamente. Tal mejora
fenomenal est fomentando la verdad Revolucin de la Informacin.

1.2.2 Organizacin del ordenador


Independientemente de las diferencias en fsico apariencia, las computadoras pueden ser previstos como dividida en varias unidades
lgicas o secciones (Fig. 1.2).

unidad lgica Descripcin

unidad de entrada Esta seccin de recepcin obtiene informacin (datos y programas informticos) de los dispositivos de entrada y

pone a disposicin de las otras unidades de procesamiento. La mayor parte de entrada del usuario se introduce en

los ordenadores a travs de teclados, pantallas tctiles y dispositivos de ratn. Otras formas de entrada incluyen

recibir comandos de voz, imgenes de escaneado y los cdigos de barras, la lectura de dispositivos de

almacenamiento secundarios (tales como discos duros, unidades de DVD, discos Blu-ray Disc y unidades flash

USB-tambin llamados unidades flash o tarjetas de memoria ), la recepcin de vdeo desde una cmara web y

tener su computadora recibir informacin desde Internet (por ejemplo, al transmitir vdeos de YouTube o

descargar libros electrnicos de Amazon). formas ms recientes de entrada incluyen datos de posicin de un

dispositivo de GPS, y el movimiento y la informacin de orientacin a partir de una acelermetro

(Un dispositivo que responde a arriba / abajo, izquierda / derecha y adelante / atrs aceleracin) en un
controlador de telfono inteligente o juego (como Microsoft Kinect

y Xbox , Wii Remote y Sony Estacin de juegos Movimiento).

Unidad de salida En esta seccin el envo toma la informacin que el ordenador ha procesado y la coloca en diversas dispositivos

de salida para que est disponible para su uso fuera de la computadora. La mayora de la informacin que se emite

desde los ordenadores est representada hoy en las pantallas (incluyendo pantallas tctiles), impresos en papel (

verde desalienta a esto), jug como audio o vdeo en los ordenadores y reproductores de medios (como el iPod

de Apple) y las pantallas gigantes en los deportes estadios, transmitidos a travs de Internet o utilizados para

controlar otros dispositivos, tales como robots y aparatos inteligentes. La informacin tambin es comnmente de

salida para dispositivos de almacenamiento secundario, como discos duros, unidades de DVD y unidades flash

USB. Una forma reciente y popular de salida es la vibracin telfono inteligente.

Unidad de memoria Este rpido acceso, de relativamente baja capacidad de la seccin almacn conserva la informacin que se ha

introducido a travs de la unidad de entrada, por lo que es inmediatamente disponible para su tratamiento cuando

sea necesario. La unidad de memoria tambin conserva procesa la informacin hasta que pueda ser colocado en

dispositivos de salida por la unidad de salida. La informacin contenida en la unidad de memoria es voltil -Es lo

general pierde cuando el poder de la computadora est apagada. La unidad de memoria se llama a menudo, ya

sea memoria , Memoria primaria o RAM ( Memoria de acceso aleatorio). Memorias principales en los ordenadores

de sobremesa y porttiles contienen tanto como 128 GB de RAM. GB significa gigabytes; un gigabyte es

aproximadamente mil millones de bytes. UN byte es de ocho bits. Un bit es o bien una 0 o una 1.

Fig. 1.2 | unidades lgicas de un ordenador. (Parte 1 de 2.)


6 Captulo 1 Introduccin a las computadoras, Internet y Java

unidad lgica Descripcin

Aritmticas y Este fabricacin realiza seccin clculos, tales como suma, resta, multiplicacin y divisin.
lgicas unidad Contiene tambin la decisin mecanismos que permiten a la computadora, por ejemplo, para
(ALU) comparar dos elementos de la unidad de memoria para determinar si son iguales. En los sistemas
de hoy en da, la ALU se implementa como parte de la unidad lgica siguiente, la CPU.

Unidad Central En esta seccin administrativa coordina y supervisa el funcionamiento de las otras secciones. La CPU le dice
de a la unidad de entrada cuando la informacin debe ser ledo en la unidad de memoria, cuenta la ALU cuando la
Procesamiento (CPU) informacin de la unidad de memoria se debe usar en los clculos y le dice a la unidad de salida cuando para
enviar informacin desde la unidad de memoria a ciertos dispositivos de salida. Muchos de los ordenadores de
hoy en da tienen varias CPU y, por lo tanto, puede realizar muchas operaciones simultneamente. UN procesador
multi-ncleo implementa mltiples procesadores en un solo circuito integrado de chip una procesador de doble
ncleo tiene dos CPU y una procesador de cuatro ncleos tiene cuatro CPU. ordenadores de sobremesa de hoy
tienen procesadores que pueden ejecutar mil millones de instrucciones por segundo.

unidad de Esta es la seccin a largo plazo, de alta capacidad de almacenamiento. Los programas o datos no activamente

almacenamiento secundaria
siendo utilizados por las otras unidades normalmente se colocan en dispositivos de almacenamiento secundario

(por ejemplo, su disco duro) hasta que son necesarias de nuevo, posiblemente, horas, das, meses o incluso aos

ms tarde. La informacin sobre dispositivos de almacenamiento secundario es persistente -Es conservan incluso

cuando la alimentacin del ordenador est apagado. informacin de almacenamiento secundario toma mucho ms

tiempo para el acceso a la informacin en la memoria principal, pero su costo por unidad es mucho menor.

Ejemplos de dispositivos de almacenamiento secundario incluyen discos duros, unidades de DVD y unidades flash

USB, algunos de los cuales pueden contener ms de 2 TB (TB significa terabytes; un terabyte es aproximadamente

un billn de bytes). discos duros tpicos en los ordenadores de sobremesa y porttiles con capacidad para 2 TB, y

algunas unidades de disco duro de sobremesa pueden contener hasta 4 TB.

Fig. 1.2 | unidades lgicas de un ordenador. (Parte 2 de 2.)

1.3 La jerarqua de datos


Los elementos de datos procesados por las computadoras forman una jerarqua de datos que se hace ms grande y ms compleja en
estructura a medida que avanzamos a partir de los elementos de datos simples (llamado bits) a los ms ricos, como los caracteres y
campos. Figura 1.3 ilustra una parte de la jerarqua de datos.

Los bits
El elemento de datos ms pequea en una computadora puede asumir el valor 0 o el valor 1. Se llama
poco ( abreviatura de dgito binario -a dgitos que puede asumir una de dos valores). Sorprendentemente, las funciones
impresionantes realizadas por ordenadores implican slo las manipulaciones simples de
0 s y 1 s- examinar el valor de un bit, establecer el valor de un bit y invirtiendo el valor de un bit ( de 1 a
0 o desde 0 a 1).

Caracteres
Es tedioso para las personas que trabajan con datos en el formulario de bajo nivel de bits. En su lugar, prefieren trabajar con dgitos
decimales ( 0-9), letras ( A-Z y a-z), y smbolos especiales ( por ejemplo, $, @,%,
1.3 Datos Jerarqua 7

Salida Negro

tom Azul

Archivo
Judy Verde

Iris naranja

Cachondo rojo

Judy Verde Grabar

J udy Campo

00000000 01001010 de caracteres Unicode J

1 Poco

Fig. 1.3 | La jerarqua de datos.

Y, *, (,), -, +",:?., Y /) dgitos, letras y smbolos especiales se conocen como caracteres .


Las computadoras conjunto de caracteres es el conjunto de todos los caracteres utilizados para escribir programas y representan
elementos de datos. Las computadoras procesan solamente 1 s y 0 s, por lo que el conjunto de caracteres de un ordenador representa
cada personaje como un patrn de 1 s y 0 s. usos de Java Unicode caracteres que estn compuestos de uno, dos o cuatro bytes (8, 16
o 32 bits). Unicode contiene caracteres de muchas de las lenguas del mundo. Vase el Apndice H para obtener ms informacin
sobre Unicode. Vase el Apndice B para obtener ms informacin sobre la ASCII (American Standard Code para Intercambio de
Informacin) puesta en el carcter popular del subconjunto Unicode que representa letras maysculas y minsculas, nmeros y
algunos caracteres especiales comunes.

Campos
Al igual que los caracteres estn compuestos de bits, campos se componen de caracteres o bytes. Un campo es un grupo de
caracteres o bytes que transmite significado. Por ejemplo, un campo que consta de letras maysculas y minsculas se puede utilizar
para representar el nombre de una persona, y un campo que consiste en dgitos decimales podra representar la edad de una persona.

Archivos
Varios campos relacionados se pueden utilizar para componer una grabar ( implementado como una clase en Java). En un sistema de
nmina, por ejemplo, el registro de un empleado podra consistir en los siguientes campos (los tipos posibles de estos campos se
muestran entre parntesis):
8 Captulo 1 Introduccin a las computadoras, Internet y Java

nmero de identificacin de empleado (un nmero entero)

Nombre (una cadena de caracteres)

Direccin (una cadena de caracteres)

pago por hora (un nmero con un punto decimal)

las ganancias del ao hasta la fecha (un nmero con un punto decimal)

Cantidad de impuestos retenidos (un nmero con un punto decimal) Por lo tanto, un registro es un grupo de campos

relacionados. En el ejemplo anterior, todos los campos pertenecen a la mismo empleado. Una empresa podra tener muchos empleados

y un registro de nmina para cada uno.

archivos
UN archivo es un grupo de registros relacionados. [ Nota: De manera ms general, un archivo contiene datos arbitrarios en formatos
arbitrarios. En algunos sistemas operativos, un archivo es visto simplemente como una secuencia de bytes - cualquier organizacin de
los bytes de un archivo, tales como la organizacin de los datos en los registros, es una vista creada por el programador de la
aplicacin. Vas a ver cmo hacerlo en el captulo 15.] No es inusual para que una organizacin tiene muchos archivos, que contienen
algunos miles, o incluso billones, de caracteres de informacin.

Base de datos
UN base de datos es una coleccin de datos organizados para facilitar el acceso y la manipulacin. El modelo ms popular es la base
de datos relacional, en el que los datos se almacenan en simples mesas. Una tabla incluye archivos y campos. Por ejemplo, una tabla
de los estudiantes podra incluir nombre, apellido, mayor, ao, nmero de identificacin y el punto de grado promedio campos. Los
datos para cada estudiante es un registro, y las piezas individuales de informacin de cada registro son los campos. Usted puede buscar,
ordenar y manipular los datos en funcin de su relacin con varias tablas o bases de datos. Por ejemplo, una universidad puede
utilizar los datos de la base de datos de los estudiantes en combinacin con los datos de las bases de datos de cursos, alojamiento
en el campus, planes de comidas, etc. Se discuten las bases de datos en el captulo 24.

big Data
La cantidad de datos que se produce en todo el mundo es enorme y crece rpidamente. De acuerdo con IBM, aproximadamente 2,5
trillones de bytes (2,5 exabytes) de los datos se crean a diario y el 90% de los datos del mundo fue creado en tan slo los ltimos dos
aos! 6 De acuerdo con un estudio del universo digital, el suministro de datos global alcanz 2,8 (zettabytes igual a 2,8 billones de
gigabytes) en 2012. 7 La Figura 1.4 muestra algunas mediciones byte comunes. big Data aplicaciones ocupan de tales cantidades
masivas de datos y este campo est creciendo rpidamente, creando un montn de oportunidades para los desarrolladores de
software. De acuerdo con un estudio realizado por Gartner Group, ms de 4 millones de empleos de TI a nivel mundial apoyarn
grandes volmenes de datos por el ao 2015. 8

6. http://www-01.ibm.com/software/data/bigdata/.
7. http://www.guardian.co.uk/news/datablog/2012/dec/19/big-data-study-digital-
-universo-volumen global.

8. http://tech.fortune.cnn.com/2013/09/04/big-data-employment-boom/.
1.4 Lenguajes mquina, lenguajes ensambladores y los lenguajes de alto nivel 9

Unidad bytes Que es aproximadamente

1 kilobytes (KB) 1024 bytes 10 3 ( 1024 bytes exactamente)

1 megabyte (MB) 1024 kilobytes 10 6 ( 1.000.000 bytes)


1 gigabyte (GB) 1024 megabytes 10 9 ( 1.000.000.000 de bytes)

1 terabyte (TB) 1024 gigabytes 10 12 ( 1.000.000.000.000 bytes)


1 petabyte (PB) 1024 terabytes 10 15 ( 1,000,000,000,000,000 bytes)
1 exabyte (EB) 1024 petabytes 10 18 ( 1,000,000,000,000,000,000 bytes)
1 zettabyte (ZB) 1024 exabytes 10 21 ( 1,000,000,000,000,000,000,000 bytes)

Fig. 1.4 | mediciones de bytes.

1.4 Lenguajes mquina, el montaje Idiomas y de alto nivel Idiomas

Los programadores escriben instrucciones en varios lenguajes de programacin, algunos directamente comprensible por los
ordenadores y otros que requieren intermedia traduccin pasos. Cientos de estos idiomas estn en uso hoy en da. Estos
pueden dividirse en tres tipos generales:

1. lenguajes de mquina

2. Los lenguajes ensambladores

3. Los lenguajes de alto nivel

Mquinas Idiomas
Cualquier computadora puede entender directamente slo su propio Lenguaje de mquina , definido por su diseo de hardware.
lenguajes de mquina generalmente consisten en cadenas de nmeros (en ltima instancia, a la reduccin de 1s y 0s) que instruyen a
las computadoras para realizar sus operaciones ms elementales uno a la vez. lenguajes de mquina son dependiente de la mquina ( un
lenguaje de mquina en particular se puede utilizar en un solo tipo de equipo). Tales lenguajes son engorrosos para los seres
humanos. Por ejemplo, he aqu una seccin de un programa de nminas en lenguaje de mquina principios que aade pago de horas
extras a salario base y almacena el resultado en el salario bruto:

+ 1300042774
+ 1400593419
+ 1200274027

Idiomas y montadores de ensamblaje


Programacin en lenguaje de mquina era simplemente demasiado lento y tedioso para la mayora de los programadores. En lugar de
utilizar las cadenas de nmeros que las computadoras podan entender directamente, los programadores comenzaron a usar
abreviaturas Ingls-como para representar operaciones elementales. Estas abreviaturas formaron la base de lenguajes
ensambladores . programas Traductor llamado montadores fueron desarrollados para convertir programas en lenguaje ensamblador a
principios de lenguaje de mquina a velocidades de computacin. La siguiente seccin de un programa de nminas en lenguaje
ensamblador tambin aade pago de horas extras a salario base y almacena el resultado en el salario bruto:

carga basepay
aadir pagar de la
tienda grosspay
10 Captulo 1 Introduccin a las computadoras, Internet y Java

A pesar de que dicho cdigo es ms claro para los seres humanos, es incomprensible para los ordenadores hasta que traducido al

lenguaje de mquina.

Alto nivel Lenguajes y Compiladores


Con la llegada de los lenguajes ensambladores, el uso del ordenador aumentado rpidamente, pero los programadores todava tena
que utilizar numerosas instrucciones para llevar a cabo incluso las tareas ms simples. Para acelerar el proceso de programacin, lenguajes
de alto nivel se desarrollaron en el que los estados individuales podran ser escritos para realizar las tareas sustanciales. Traductor
programas llamados
compiladores convertir programas en lenguaje de alto nivel a lenguaje de mquina. Los lenguajes de alto nivel permiten escribir
las instrucciones que se ven casi como Ingls todos los das y contendr comnmente utilizados notaciones matemticas. Un
programa de nminas escrito en un lenguaje de alto nivel podra contener una soltero declaracin como

grossPay = basePay + overTimePay

Desde el punto de vista del programador, lenguajes de alto nivel son preferibles a los lenguajes de mquina y de montaje. Java
es uno de los lenguajes de programacin de alto nivel ms ampliamente usados.

intrpretes
Compilacin de un programa de lenguaje de alto nivel de gran tamao en lenguaje de mquina puede tomar un tiempo considerable
ordenador. Interprete programas, desarrollados para ejecutar programas en lenguaje de alto nivel directamente, evitar el retraso de la
compilacin, a pesar de que corren ms lento que los programas compilados. Diremos ms sobre intrpretes en la seccin 1.9, donde
aprender que Java utiliza una mezcla de rendimiento optimizado inteligente de la recopilacin e interpretacin para ejecutar
programas.

1.5 Introduccin a la tecnologa de objetos


Hoy en da, ya que la demanda de software nuevo y ms potente se han disparado, la construccin de software de forma rpida,
correcta y econmica sigue siendo un objetivo difcil de alcanzar. Objetos, o ms precisamente, la
clases objetos provienen de, son esencialmente reutilizable componentes de software. Hay objetos de fecha, objetos de tiempo, objetos
de audio, vdeo, objetos objetos de automviles, objetos personas, etc. Casi cualquier sustantivo puede ser razonablemente
representado como un objeto de software en trminos de atributos
(Por ejemplo, nombre, color y tamao) y (comportamientos por ejemplo, el clculo, el movimiento y la comunicacin). grupos de
desarrollo de software se puede utilizar un enfoque de diseo-y-aplicacin orientada a objetos modular para ser mucho ms
productivo que con las tcnicas anteriormente populares como programacin estructurada programas orientados a -objeto
suelen ser ms fciles de entender, corregir y modificar.

1.5.1 El automvil como un Objeto


Para ayudarle a entender los objetos y sus contenidos, vamos a empezar con una simple analoga. Supongamos que usted quiere conducir
un coche y hacer que vaya ms rpido pulsando el pedal del acelerador. Lo que debe suceder antes de que pueda hacer esto?
Bueno, antes de poder conducir un coche, alguien tiene que diseo eso. Un coche comienza tpicamente como dibujos de ingeniera,
similares a la planos que describen el diseo de una casa. Estos dibujos incluyen el diseo de un pedal de acelerador. el pedal

se esconde desde el controlador de los complejos mecanismos que hacen realidad el coche ir ms rpido, al igual que el pedal de freno
oculta los mecanismos que frenan el coche, y el volante oculta los mecanismos que convierten el coche. Esto permite a las
personas con poco o ningn conocimiento de cmo funcionan los motores, frenos y mecanismos de direccin funcionan para conducir
un coche con facilidad.
1.5 Introduccin a la tecnologa de objetos 11

As como no se puede cocinar comidas en la cocina de un modelo, no se puede conducir dibujos de ingeniera de un coche.
Antes de poder conducir un coche, que debe ser construido a partir de los dibujos de ingeniera que lo describen. Un coche tiene una
completado real pedal del acelerador para hacer que vaya ms rpido, pero incluso eso no es suficiente, el coche no se acelerar por su
propia cuenta (ojal!), por lo que el conductor debe prensa el pedal para acelerar el coche.

1.5.2 Mtodos y clases


Vamos a usar nuestro ejemplo coche para introducir algunos conceptos clave de la programacin orientada a objetos. La realizacin de
una tarea en un programa requiere una mtodo . El mtodo alberga las sentencias de programa que realmente realizan sus tareas. El
mtodo oculta estas declaraciones de su usuario, al igual que el pedal del acelerador de un coche se esconde en el controlador de los
mecanismos de hacer que el coche vaya ms rpido. En Java, se crea una unidad de programa llamado clase para albergar el conjunto
de mtodos que realizan las tareas de la clase. Por ejemplo, una clase que representa una cuenta bancaria puede contener un mtodo
para depositar dinero a una cuenta, otro para retirar dinero de una cuenta y una tercera a

preguntar lo que el saldo actual de la cuenta es. Una clase es similar en concepto a los dibujos de ingeniera de un coche, que
albergan el diseo de un pedal de acelerador, el volante, y as sucesivamente.

1.5.3 La instanciacin

Del mismo modo que alguien tiene que construir un coche a partir de sus dibujos de ingeniera antes de que realmente puede conducir
un coche, debe construir un objeto de una clase antes de que un programa puede realizar las tareas que los mtodos de la clase
definen. El proceso de hacer esto se llama instanciacin. Un objeto se denomina entonces como una ejemplo de su clase.

1.5.4 reutilizacin

Al igual que los dibujos de ingeniera de un coche puede ser reutilizado muchas veces para construir muchos coches, se puede
reutilizar una clase muchas veces para construir muchos objetos. La reutilizacin de las clases existentes en la construccin de nuevas
clases y programas de ahorro de tiempo y esfuerzo. Reutilizacin tambin ayuda a construir sistemas ms fiables y eficaces, porque
las clases y componentes existentes a menudo han sufrido una amplia
pruebas, depuracin y actuacin sintonizacin. Del mismo modo que la nocin de partes intercambiables fue crucial para la revolucin
industrial, clases reutilizables son cruciales para la revolucin del software que ha sido impulsada por la tecnologa de objetos.

Ingeniera de Software 1.1 Observacin


Utilizar un enfoque de bloques de construccin para crear sus programas. Evitar reinventar el uso de ruedas piezas de alta
calidad existentes siempre que sea posible. Esta la reutilizacin del software es un beneficio clave de la programacin orientada
a objetos.

1.5.5 Los mensajes y las llamadas a mtodos

Cuando se conduce un coche, presionando su pie del acelerador enva una mensaje al coche para realizar una tarea- es decir, para ir
ms rpido. Del mismo modo, enviar mensajes a un objeto. Cada mensaje se implementa como una llamada al mtodo que cuenta un
mtodo del objeto para realizar su tarea. Por ejemplo, un programa puede llamar a una cuenta bancaria objeto de depositar Mtodo para
aumentar el balance de la cuenta.

1.5.6 Atributos y Variables de instancia


Un coche, adems de tener la capacidad para llevar a cabo las tareas, tambin tiene atributos, tales como su color, su nmero de
puertas, la cantidad de gas en su tanque, su velocidad actual y su registro de totales
12 Captulo 1 Introduccin a las computadoras, Internet y Java

millas recorridas (es decir, la lectura del odmetro). Al igual que sus capacidades, atributos del vehculo se representan como parte
de su diseo en sus diagramas de ingeniera (que, por ejemplo, incluyen un cuentakilmetros y un indicador de combustible). A
medida que conduce un coche real, estos atributos se realizan junto con el coche. Cada coche mantiene su propio atributos. Por
ejemplo, cada coche sabe cunto gas est en su propio tanque de gas, pero no cunto hay en los tanques de otro carros.

Un objeto, de manera similar, tiene atributos que lleva a lo largo de como se utiliza en un programa. Estos atributos
se especifican como parte de la clase del objeto. Por ejemplo, un objeto de cuenta de banco tiene una atributo de equilibrio que
representa la cantidad de dinero en la cuenta. Cada objeto bankaccount conoce el saldo de la cuenta que representa,
pero no los saldos de la
otro cuentas en el banco. Los atributos estn especificados por la clase de variables de instancia .

1.5.7 La encapsulacin y ocultacin de la informacin

Las clases (y sus objetos) encapsular , es decir, encase, sus atributos y mtodos. Una clase (y de su objeto) atributos y
mtodos estn ntimamente relacionados. Los objetos pueden comunicarse entre s, pero que normalmente no se nos
permite saber cmo otros objetos son detalles de la implementacin prctica son oculto dentro de los propios objetos.
Esta ocultacin de informacin , como veremos, es crucial para la buena ingeniera de software.

1.5.8 Herencia
Una nueva clase de objetos puede crearse convenientemente herencia -la nueva clase (llamada subclase ) comienza con las
caractersticas de una clase existente (llamada superclase ), posiblemente la personalizacin de ellos y la adicin de
caractersticas nicas de su propia. En nuestra analoga del coche, un objeto de clase convertible sin duda es una objeto de la
ms general la clase de automvil, pero ms especficamente, el techo puede ser elevado o bajado.

1.5.9 Interfaces
Java tambin soporta las interfaces -collections de mtodos relacionados que normalmente le permiten contar objetos qu hacer,
pero no cmo hacerlo (veremos una excepcin a esto en Java SE 8). En la analoga del coche, una interfaz -conduccin bsica
en las capacidades que consiste en un volante, un pedal de acelerador y un pedal de freno permitira a un conductor para
contar el coche qu que hacer. Una vez que sepa cmo utilizar esta interfaz para girar, acelerar y frenar, se puede conducir todo
tipo de vehculos, a pesar de que los fabricantes pueden implementar estos sistemas diferentemente.

Una clase implementos cero o ms interfaces, cada uno de los cuales pueden tener uno o ms mtodos, tal como un coche
implementa interfaces separadas para las funciones bsicas de conduccin, el control de la radio, el control de los sistemas de
calefaccin y aire acondicionado, y similares. Del mismo modo que los fabricantes de automviles implementar capacidades diferentemente,
clases pueden implementar mtodos de una interfaz diferentemente. Por ejemplo, un sistema de software puede incluir una interfaz de
copia de seguridad que ofrece los mtodos salvar y restaurar. Las clases pueden implementar estos mtodos de manera diferente,
dependiendo de los tipos de cosas que se copian, tales como los programas, textos, audios, vdeos, etc., y los tipos de dispositivos en
los que se almacenan estos elementos.

1.5.10 Anlisis Orientado a Objetos y Diseo (OOAD)


Pronto estar escribiendo programas en Java. Cmo va a crear la cdigo ( es decir, las instrucciones del programa) para sus
programas? Tal vez, al igual que muchos programadores, usted simplemente encienda
1.6 Sistemas operativos 13

el ordenador y empezar a escribir. Este enfoque puede funcionar para pequeos programas (como los que presentamos en los
primeros captulos del libro), pero lo que si se le pedir que cree un sistema de software para el control de miles de cajeros
automticos de un banco importante? O supongamos que se le pidi que trabajar con un equipo de 1.000 desarrolladores de
software construir la prxima generacin del sistema de control de trfico areo de Estados Unidos? Para proyectos tan grande y
compleja, no se debe simplemente sentarse y empezar a escribir programas.

Para crear las mejores soluciones, se debe seguir una detallada anlisis proceso para determinar su proyecto de requisitos
( es decir, la definicin de qu el sistema se supone que debe hacer) y el desarrollo de una diseo que les satisfaga (es decir,
especificando cmo el sistema debe hacerlo). Lo ideal sera pasar por este proceso y cuidadosamente revisar el diseo (y
tienen su diseo revisados por otros profesionales de software) antes de escribir ningn cdigo. Si este proceso implica el
anlisis y el diseo de su sistema desde un punto de vista orientado a objetos, se llama una

orientado a objetos anlisis-y-diseo del proceso (OOAD) . Lenguajes como Java son orientado a objetos.
Programacin en un lenguaje tal, llamada programacin orientada a objetos (POO) ,
le permite implementar un diseo orientado a objetos como un sistema de trabajo.

1.5.11 El UML (Unified Modeling Language)


Aunque existen muchos diferentes procesos de desarrollo OO, un solo lenguaje grfico para la comunicacin de los resultados de alguna
OOAD proceso ha entrado en el uso de ancho. El Lenguaje de Modelado Unificado (UML) es ahora el esquema grfico ms utilizado
para los sistemas orientados a objetos de modelado. Presentamos nuestros primeros diagramas UML en los captulos 3 y 4, luego
usarlos en nuestro tratamiento ms profundo de la programacin orientada a objetos a travs del Captulo 11. En nuestro Opcional lnea
ATM Ingeniera de Software Estudio de caso en los captulos 33-34 se presenta un simple subconjunto de las caractersticas del UML
que le guiar a travs de una experiencia de diseo orientado a objetos.

1.6 Sistemas operativos


Sistemas operativos son sistemas de software que hacen que el uso de computadoras ms conveniente para los usuarios,
desarrolladores de aplicaciones y administradores de sistemas. Proporcionan servicios que permiten a cada aplicacin para ejecutar de
forma segura, eficiente y concurrentemente ( es decir, en paralelo) con otras aplicaciones. El software que contiene los componentes
bsicos del sistema operativo es el ncleo .
populares sistemas operativos de escritorio incluyen Linux, Windows y Mac OS X. populares sistemas operativos mviles
utilizados en los telfonos inteligentes y tabletas incluir Android de Google, iOS de Apple (para sus dispositivos iPhone, iPad y
iPod Touch), Windows Phone 8 y BlackBerry OS.

1.6.1 Windows un sistema operativo propietario


A mediados de la dcada de 1980, Microsoft desarroll el sistema operativo Windows , que consiste en una interfaz grfica de
usuario integrada en la parte superior de un sistema operativo DOS-computadora personal enormemente populares que los
usuarios interactuaron con tecleando comandos. Ventanas prestado muchos conceptos (tales como iconos, mens y ventanas)
popularizado por primeros sistemas operativos de Apple Macintosh y originalmente desarrollados por Xerox PARC. Windows 8 es el
sistema de sus operativo ms reciente de Microsoft caractersticas incluyen PC y el apoyo comprimido, una interfaz de usuario
basada en azulejos, mejoras en la seguridad, con pantalla tctil y soporte multi-touch, y mucho ms. Windows es una propiedad sistema
operativo que est controlado por Microsoft exclusivamente. Es de lejos el sistema operativo ms utilizado del mundo.
14 Captulo 1 Introduccin a las computadoras, Internet y Java

1.6.2 cdigo abierto del sistema operativo Linux-Un


los Linux sistema operativo, que es popular en servidores, ordenadores personales y sistemas embebidos-es tal vez el
mayor xito de la fuente abierta movimiento. los software de cdigo abierto estilo de desarrollo se aparta de la propiedad
estilo de desarrollo (utilizado, por ejemplo, con Windows de Microsoft y de Apple Mac OS X). Con el desarrollo de
cdigo abierto, particulares y empresas en todo el mundo, a menudo, contribuir con sus esfuerzos en el desarrollo,
mantenimiento y software de evolucin. Cualquiera puede usar y personalizar para sus propios fines, por lo general sin
costo alguno. El kit de desarrollo de Java y muchas tecnologas Java relacionadas son ahora de cdigo abierto.

Algunas organizaciones de la comunidad de cdigo abierto son la Fundacin Eclipse ( el


Eclipse entorno de desarrollo integrado ayuda a los programadores de Java convenientemente desarrollan software), la Fundacin
Mozilla ( creadores de la Firefox navegador web), el Apache Software Foundation ( creadores de la servidor web Apache ese presenta
las pginas web a travs de Internet en respuesta a las solicitudes de navegador Web) y GitHub y SourceForge ( que proporcionan el herramientas
para la gestin de proyectos de cdigo abierto).

Las rpidas mejoras a la informtica y las comunicaciones, disminuir los costos y el software de cdigo abierto han
hecho ms fcil y ms econmico para la creacin de empresas basadas en software ahora que hace unas pocas dcadas.
Facebook, que fue lanzado desde un dormitorio de la universidad, fue construido con un software de cdigo abierto. 9

Una variedad de temas, tales como el poder de Microsoft mercado, el nmero relativamente pequeo de aplicaciones Linux
fciles de usar y la diversidad de las distribuciones de Linux (Red Hat Linux, Ubuntu Linux y muchos otros) -han impidi
generalizado el uso de Linux en ordenadores de sobremesa. Sin embargo, Linux se ha convertido en muy popular en los servidores
y en sistemas embebidos, tales como los telfonos inteligentes basados en Android de Google.

1.6.3 Android
Androide -el ms rpido crecimiento operativo mvil y el telfono inteligente sistema se basa en el ncleo de Linux y utiliza Java. Los
programadores de Java experimentados pueden sumergirse rpidamente en el desarrollo de Android. Uno de los beneficios de
desarrollar aplicaciones de Android es la apertura de la plataforma. El sistema operativo es de cdigo abierto y libre.

El sistema operativo Android fue desarrollado por Android, Inc., que fue adquirida por Google en 2005.
En 2007, el Open Handset Alliance -que ahora tiene 87 miembros de la compaa en todo el mundo ( http://www.openhandsetalliance.com/oha_memb
- se form para desarrollar, mantener y evolucionar Android, impulsar la innovacin en tecnologa mvil y
mejorar la experiencia del usuario y reducir los costos. A partir de abril de 2013, ms de 1,5 millones de
dispositivos Android (smartphones, tablets, etc.) se activaban diario. 10

Para octubre de 2013, un informe de Strategy Analytics mostr que Android tena el 81,3% de la mundial telfono inteligente cuota de
mercado, en comparacin con 13,4% para Apple, 4,1% para Microsoft y el 1% para Blackberry. 11 dispositivos Android ahora incluyen
los telfonos inteligentes, tabletas, lectores electrnicos, robots, motores de aviones, satlites de la NASA, consolas de videojuegos,
refrigeradoras, televisores, cmaras, de la salud

9. http://developers.facebook.com/opensource.
10. http://www.technobuffalo.com/2013/04/16/google-daily-android-activations-1-5-
milln/.

11. http://blogs.strategyanalytics.com/WSS/post/2013/10/31/Android-Captures-Record-
81-Porcentaje Share-of-smartphone-envos-en-Q3-2013.aspx globales.
1.7 Lenguajes de Programacin 15

dispositivos, smartwatches, sistemas de informacin y entretenimiento del automvil en el vehculo (para controlar la radio, GPS,
llamadas telefnicas, termostatos, etc.) y ms. 12

los telfonos inteligentes Android incluyen la funcionalidad de un telfono mvil, cliente de Internet (para la navegacin web y
la comunicacin por Internet), reproductor de MP3, consola de juegos, cmaras digitales y ms. Estos dispositivos de mano
incluyen a todo color pantallas multitctiles que le permiten controlar el dispositivo con gestos la participacin de un solo toque o
mltiples toques simultneos. Puede descargar aplicaciones directamente en su dispositivo Android a travs de Google Play y otros
mercados de aplicaciones. En el momento de escribir esto, haba ms de un milln de aplicaciones en Google Play ,

y el nmero est creciendo rpidamente. 13


Se presenta una introduccin al desarrollo de aplicaciones para Android en nuestros libros de texto, Android Cmo
programar, segunda edicin, y en nuestro libro profesional, Android para programadores: Un Enfoque AppDriven, segunda
edicin. Despus de aprender Java, lo encontrar fcil de comenzar a desarrollar y ejecutar aplicaciones de Android. Usted
puede colocar sus aplicaciones en Google Play ( play.google.com), y si tienen xito, que incluso puede ser capaz de poner en marcha
un negocio. Slo recuerde, Facebook, Microsoft y Dell fueron lanzados desde los dormitorios de la universidad.

1.7 Lenguajes de programacin


En esta seccin, se comentan brevemente en varios lenguajes de programacin (Fig. 1.5). En la siguiente seccin, se
tratarn de Java.

Lenguaje de
programacin Descripcin

Fortran Fortran (Traductor de frmulas) fue desarrollado por IBM Corporation en los mid1950s para aplicaciones cientficas y
de ingeniera que requieren clculos matemticos complejos. Es todava ampliamente utilizado, y sus versiones ms
recientes apoyan la programacin orientada a objetos.

COBOL COBOL (Common negocios Oriented Language) fue desarrollado en la dcada de 1950 por los fabricantes de
ordenadores, el gobierno estadounidense y los usuarios de computadoras industriales basadas en un lenguaje
desarrollado por Grace Hopper, un contralmirante US Navy y cientfico de la computacin que tambin abog por la
normalizacin internacional de programacin idiomas. COBOL es an ampliamente utilizado para aplicaciones
comerciales que requieren la manipulacin precisa y eficiente de grandes cantidades de datos. Su ltima versin es
compatible con la programacin orientada a objetos.

Pascal La investigacin en la dcada de 1960 dio lugar a programacin estructurada -un enfoque disciplinado para escribir programas
que sean ms claras, ms fcil de probar y depurar y ms fciles de modificar que los grandes programas producidos con
tcnicas anteriores. Un resultado de esta investigacin fue el desarrollo en 1971 del lenguaje de programacin Pascal, que fue
diseado para la programacin de la enseanza estructurada y fue muy popular en los cursos universitarios desde hace varias
dcadas.

Fig. 1.5 | Algunos otros lenguajes de programacin. (Parte 1 de 3)

12. http://www.businessweek.com/articles/2013-05-29/behind-the-internet-of-things-
es-android-y-su-en todas partes.

13. http://en.wikipedia.org/wiki/Google_Play.
diecisis Captulo 1 Introduccin a las computadoras, Internet y Java

Lenguaje de
programacin Descripcin

Ada Ada, basado en Pascal, se desarroll bajo el patrocinio del Departamento de Defensa (DOD) durante la dcada de
1970 y principios de 1980. El Departamento de Defensa quera un solo idioma que llenara la mayora de sus
necesidades. El lenguaje Ada lleva el nombre de lady Ada Lovelace, hija del poeta Lord Byron. Ella acredita con la
escritura primer programa de ordenador del mundo a principios de 1800 (para el dispositivo de computacin mecnica
mquina analtica diseada por Charles Babbage). Ada tambin es compatible con la programacin orientada a
objetos.

BASIC BASIC fue desarrollado en la dcada de 1960 en el Dartmouth College para familiarizarse con las tcnicas de programacin

novatos. Muchos de sus versiones ms recientes son orientado a objetos.

do C fue desarrollado en la dcada de 1970 por Dennis Ritchie en los Laboratorios Bell. En un principio se hizo ampliamente

conocido como lenguaje de desarrollo del sistema operativo UNIX. Hoy en da, la mayor parte del cdigo para los sistemas

operativos de propsito general est escrito en C o C ++.

C ++ C ++, que est basado en C, fue desarrollado por Bjarne Stroustrup en la dcada de 1980 en los Laboratorios Bell. C ++
proporciona varias caractersticas que arreglar el lenguaje C, pero lo ms importante, que proporciona capacidades
para la programacin orientada a objetos.

Objetivo-C Objective-C es otro lenguaje orientado a objetos basado en C. Se desarroll en el


dcada de 1980 y posteriormente adquirida por NeXT, que a su vez fue adquirida por Apple. Se ha convertido en el
lenguaje de programacin clave para el sistema operativo OS X y todos los dispositivos iOSpowered (tales como iPods,
iPhones y iPads).

el lenguaje de Visual Basic de Microsoft Visual Basic se introdujo a principios de 1990 para simplificar la
desarrollo de aplicaciones de Microsoft Windows. Sus versiones ms recientes soportan programacin orientada a
objetos.

Visual C# tres lenguajes de programacin primaria orientados a objetos de Microsoft son Visual Basic (basado en la
base original), Visual C ++ (basado en C ++) y Visual C # (basado en C ++ y Java, y desarrollado para la
integracin de Internet y la web en las aplicaciones informticas).

PHP PHP, una, de cdigo abierto lenguaje de programacin orientado a objetos con el apoyo de una comunidad de usuarios y

desarrolladores, es utilizado por millones de sitios web. PHP es existen plataformas independientes-implementaciones para

todos los principales sistemas operativos UNIX, Linux, Mac y Windows. PHP tambin soporta muchas bases de datos,

incluyendo el popular de cdigo abierto MySQL.

Perl Perl (Practical Extraction e Informe de Idiomas), uno de los lenguajes de programacin orientadas a objetos ms
utilizados para la programacin web, fue desarrollado en 1987 por Larry Wall. Cuenta con ricas capacidades de
procesamiento de texto.

Pitn Python, otro lenguaje de programacin orientado a objetos, se dio a conocer en 1991. Desarrollado por Guido
van Rossum del Instituto Nacional de Investigacin de Matemticas e Informtica de msterdam (CIT),
Python se basa fuertemente en Modula-3-un lenguaje de programacin de sistemas. Python es extensible
-se puede extenderse a travs de clases e interfaces de programacin.

JavaScript JavaScript es el lenguaje de programacin ms utilizado. Se utiliza principalmente para el comportamiento dinmico
a las pginas-web de ejemplo, animaciones y una mejor interactividad con el usuario. Est dotado de todos los
navegadores web.

Fig. 1.5 | Algunos otros lenguajes de programacin. (Parte 2 de 3)


1.8 de Java 17

Lenguaje de
programacin Descripcin

es un cdigo abierto, la programacin orientada a objetos


lenguaje con una sintaxis simple que es similar a Python. Ruby on Rails combina el lenguaje de scripts de Ruby con el
marco de aplicacin web desarrollada por los carriles 37Signals. Su libro, Getting Real ( gettingreal.37signals.com/toc.php), es una
lectura obligada para los desarrolladores web. Muchos desarrolladores de Ruby on Rails han reportado aumentos de
la productividad con respecto a otros idiomas cuando en desarrollo de aplicaciones web, bases de datos intensivos.

Fig. 1.5 | Algunos otros lenguajes de programacin. (Parte 3 de 3)

1.8 Java
La contribucin ms importante de la revolucin del microprocesador hasta la fecha es que permiti el desarrollo de los
ordenadores personales. Los microprocesadores han tenido un profundo impacto en los dispositivos inteligentes de consumo
electrnico. Reconociendo esto, Sun Microsystems en 1991 financi un proyecto de investigacin corporativa interna dirigido por
James Gosling, lo que result en un basado en C ++ lenguaje de programacin orientado a objetos que llama Sun Java.

Un objetivo clave de Java es ser capaz de escribir programas que se ejecutarn en una gran variedad de sistemas informticos
y dispositivos controlados por el ordenador. Esto a veces se llama escribir una vez, ejecutar en cualquier lugar.

La web explot en popularidad en 1993, y Sun vio el potencial del uso de Java para aadir contenido dinmico , tales como
la interactividad
verificar y animaciones,
y ejecutar. Los discutimosenenlas
el pginas
contexto web.
de la Java
Rub llam
en loslacarriles
atencin de la Ruby,
de Java comunidad
creadodea negocios
mediadosdebido al inters
de la dcada de 1990,
fenomenal en la web. Java ahora se utiliza para desarrollar aplicaciones empresariales a gran escala, para mejorar la
funcionalidad de los servidores web (los ordenadores que proporcionan el contenido que vemos en nuestros navegadores web),
para proporcionar aplicaciones para dispositivos de consumo (telfonos celulares, telfonos inteligentes, televisin set-top cajas y
ms) y para muchos otros propsitos. Java es tambin la lengua clave para el desarrollo de telfonos inteligentes y tabletas
Android aplicaciones. Sun Microsystems fue adquirida por Oracle en 2010.

Bibliotecas de clases de Java


Puede crear cada clase y el mtodo que necesita para formar los programas Java. Sin embargo, la mayora de los programadores de
Java se aprovechan de las ricas colecciones de clases y mtodos existentes en los bibliotecas de clases de Java , tambin conocido
como el Java APIs (interfaces de programacin de aplicaciones) .

Rendimiento Tip 1.1


El uso de clases y mtodos en lugar de escribir sus propias versiones puede mejorar el rendimiento del programa de API de
Java, porque estn cuidadosamente escritas para llevar a cabo de manera eficiente. Esto tambin reduce el tiempo de
desarrollo del programa.

1.9 Un entorno de desarrollo de Java tpica


Ahora nos explicamos los pasos para crear y ejecutar una aplicacin Java. Normalmente hay cinco fases-editar, compilar, cargar,
18 Captulo 1 Introduccin a las computadoras, Internet y Java

SE 8 Development Kit (JDK). ver el Antes de que empieces seccin para obtener informacin sobre cmo descargar e
instalar el JDK en Windows, Linux y OS X.

Fase 1: Creacin de un programa


Fase 1 consiste en editar un archivo con una programa de edicin, normalmente conocido simplemente como una editor
(Fig. 1.6). Usando el editor, escriba un programa Java (normalmente conocido como cdigo fuente ),
hacer las correcciones necesarias y guardarlo en un dispositivo de almacenamiento secundario, como su disco duro. archivos de
cdigo fuente de Java se les da un nombre que termina con el . Java extensin , lo que indica que el archivo contiene el cdigo fuente de
Java.

Programa se crea en un editor y se

almacena en el disco en un archivo


Fase 1: Editar Editor
Disco cuyo nombre termina con. Java

Fig. 1.6 | fase de edicin de entorno de desarrollo de Java tpico.

Dos editores ampliamente utilizados en sistemas Linux son vi y emacs. windows proporciona
Bloc. OS X ofrece Edicin de textos. Muchos editores freeware y shareware tambin estn disponibles en lnea,
incluyendo Notepad ++ ( notepad-plus-plus.org), EditPlus ( www.editplus.com),
TextPad ( www.textpad.com) y jEdit ( www.jedit.org).
entornos de desarrollo integrado (IDE) proporcionar herramientas que apoyan el proceso de desarrollo de software, tales
como editores, depuradores para la localizacin errores lgicos ( errores que causan los programas a ejecutar de forma incorrecta) y
ms. Hay muchos entornos de desarrollo Java populares, incluyendo:

Eclipse ( www.eclipse.org)
NetBeans ( www.netbeans.org)
IntelliJ IDEA ( www.jetbrains.com)
En la pgina web del libro en

www.deitel.com/books/jhtp10

proporcionamos buceo-En videos que muestran cmo ejecuta aplicaciones Java de este libro y cmo desarrollar
nuevas aplicaciones Java con Eclipse, NetBeans y IntelliJ IDEA.

Fase 2: Compilacin de un programa Java en bytecodes


En la fase 2, se utiliza el comando javac ( el compilador de Java ) a compilar un programa (Fig. 1.7). Por ejemplo, para
compilar un programa llamado Welcome.java, debera escribir

javac Welcome.java

en la ventana de comandos del sistema (es decir, el Smbolo del sistema en Windows, el Terminal
aplicacin en OS X) o un shell Linux (tambin llamado Terminal en algunas versiones de Linux). Si el programa se compila, el
compilador produce una . clase archivo llamado Welcome.class que contiene la versin compilada. IDE suelen proporcionar un
elemento de men, como por ejemplo Construir o Hacer,
que invoca el javac comando para usted. Si el compilador detecta errores, tendr que volver a la Fase 1 y corregirlos.
En el captulo 2, diremos ms acerca de los tipos de errores que el compilador puede detectar.
1.9 Un entorno de desarrollo de Java tpica 19

Compilador crea cdigo de bytes y los

almacena en el disco en un archivo cuyo


Fase 2: Recopilar Compilador
Disco nombre termina con. clase

Fig. 1.7 | fase entorno de compilacin de desarrollo Java tpico.

El compilador de Java traduce el cdigo fuente de Java en bytecodes que representan las tareas a ejecutar en la
fase de ejecucin (Fase 5). los mquina virtual de Java ( JVM ) -a parte del JDK y el fundamento de la plataforma
Java-ejecuta los cdigos de bytes. UN mquina virtual
( VM ) es una aplicacin de software que simula un ordenador, pero oculta el sistema operativo subyacente y el hardware de
los programas que interactan con l. Si la misma mquina virtual se ejecuta en muchas plataformas de computacin, las
aplicaciones escritas para ese tipo de mquina virtual se puede utilizar en todas las plataformas. La JVM es una de las
mquinas virtuales ms utilizados. .NET de Microsoft utiliza una arquitectura de mquina virtual similar.

A diferencia de instrucciones en lenguaje mquina, que son dependientes de la plataforma ( es decir, independiente del
hardware de ordenador especfico), las instrucciones de cdigo de bytes son plataforma independiente. Por lo tanto, los cdigos de
bytes de Java son porttil -sin volver a compilar el cdigo fuente, las mismas instrucciones de cdigo de bytes pueden ejecutar en
cualquier plataforma que contiene una JVM que entiende la versin de Java en el que se recopilaron los cdigos de bytes. La JVM es
invocado por el Java mando. Por ejemplo, para ejecutar una aplicacin Java llamada Bienvenido, debera escribir el comando

Bienvenido java

en una ventana de comandos para invocar la JVM, que luego iniciar los pasos necesarios para ejecutar la aplicacin. Esto
comienza la fase 3. IDE suelen proporcionar un elemento de men, como por ejemplo Correr, que invoca el Java comando para
usted.

Fase 3: Carga de un programa en la memoria


En la fase 3, la JVM coloca el programa en la memoria para ejecutarlo, esto se conoce como cargando
(Fig. 1.8) .La JVM de cargador de clases toma el . clase archivos que contienen los cdigos de bytes y los transfiere a la memoria
principal del programa. Asimismo, las cargas cualquiera de los. clase archivos proporcionados por Java que utiliza su programa. Los
. clase se pueden cargar archivos desde un disco en su sistema o en una red (por ejemplo, su universidad local o de red de la
empresa o Internet).

Memoria

primaria
cargador de clases lee
Fase 3: Cargar cargador
. clase archivos que contienen los

cdigos de bytes de disco y pone


los cdigos de bytes en la
. . .

memoria

Disco Clase

Fig. 1.8 | fase entorno de desarrollo de Java carga tpica.


20 Captulo 1 Introduccin a las computadoras, Internet y Java

Fase 4: Verificacin Bytecode


En la Fase 4, ya que las clases son cargados, el verificador de cdigo de bytes examina sus cdigos de bytes para asegurarse
de que son vlidos y no violan las restricciones de seguridad de Java (Fig. 1.9). Java impone una fuerte seguridad para asegurarse
de que los programas Java que llegan por la red no daan sus archivos o su sistema (como virus y gusanos informticos podra).

Memoria

primaria
verificador de cdigo de bytes
Fase 4: Verificar Verificador de cdigo de bytes
confirma que todos los cdigos de

bytes son vlidos y no violan las

restricciones de seguridad de Java

. . .
Fig. 1.9 | fase entorno de desarrollo de Java de verificacin tpica.

Fase 5: Ejecucin
En la Fase 5, la JVM ejecuta bytecodes del programa, realizando as las acciones especificadas por el programa (Fig. 1.10). En las
primeras versiones de Java, la JVM era simplemente una Interprete de bytecodes Java. La mayora de los programas de Java se
ejecute lentamente, debido a que la JVM sera interpretar y ejecutar un cdigo de bytes a la vez. Algunas arquitecturas informticas
modernas pueden ejecutar varias instrucciones en paralelo. JVM de hoy en da se suelen ejecutar los cdigos de bytes utilizando una
combinacin de interpretacin y los llamados just-in-time (JIT) compilacin . En este proceso, la JVM analiza el cdigo de bytes a
medida que se interpretan, en busca de Puntos calientes -partes de los cdigos de bytes que se ejecutan con frecuencia. Por estas
partes, una justo a tiempo ( JIT ) compilador , tales como Oracle compilador Java HotSpot , traduce el cdigo de bytes en lenguaje
de mquina del ordenador subyacente. Cuando la JVM se encuentra con estas partes compilados de nuevo, el cdigo de lenguaje de
mquina ms rpido se ejecuta. Por lo tanto los programas de Java en realidad pasan por dos compilacin fases-uno en el que el
cdigo fuente se traduce en bytecodes (para portabilidad a travs de JVM en diferentes plataformas de ordenador) y una segunda en
la que, durante la ejecucin, la bytecodes se traducen en

Lenguaje de mquina para el equipo real en el que se ejecuta el programa.

Para ejecutar el programa, la JVM lee los


Memoria
cdigos de bytes y justo a tiempo (JIT
primaria
compila) (es decir, se traduce) a un lenguaje
Fase 5: Ejecutar Java Virtual Machine (JVM) que la computadora pueda entender. A

medida que el programa se ejecuta, puede

almacenar valores de datos en la memoria


. . .

principal.

Fig. 1.10 | fase entorno de ejecucin de Java desarrollo tpico.

Problemas que pueden ocurrir en tiempo de ejecucin


Los programas pueden no funcionar en el primer intento. Cada una de las fases anteriores pueden fallar debido a diversos
errores que vamos a discutir en este libro. Por ejemplo, un programa en ejecucin
1.10 prueba de manejo de una aplicacin Java 21

podra tratar de dividir por cero (una operacin ilegal de nmeros enteros aritmtica en Java). Esto hara que el
programa Java para mostrar un mensaje de error. Si esto ocurriera, tendra que volver a la fase de edicin, haga las
correcciones necesarias y proceder a travs de las fases restantes de nuevo para determinar las correcciones que
arreglaron el problema (s). [ Nota:
La mayora de los programas en los datos de entrada o salida de Java. Cuando decimos que un programa muestra un mensaje,
normalmente nos referimos a que muestra que el mensaje en la pantalla de su ordenador. Los mensajes y otros datos pueden ser la
salida a otros dispositivos, tales como discos e impresoras en papel, o incluso a una red para la transmisin a otros equipos.]

Error comn de programacin 1.1


Errores como la divisin por cero se producen como se ejecuta un programa, por lo que se llaman los errores de ejecucin
o errores en tiempo de ejecucin . los errores de ejecucin fatales hacer que los programas de terminar inmediatamente sin
tener xito realizado su trabajo. los errores de ejecucin no fatales permiten que los programas se ejecuten por completo, a
menudo produciendo resultados incorrectos.

1.10 Prueba de manejo de una aplicacin Java


En esta seccin, se encontrar con e interactuar con su primera aplicacin Java. los Pintor aplicacin, que se va a construir
a lo largo de varios ejercicios, le permite arrastrar el ratn para pintar. Los elementos y funcionalidad que usted ve aqu
son tpicos de lo que aprender a programar en este libro. Utilizando el Pintor 'S interfaz grfica de usuario (GUI), se puede
controlar el color de dibujo, la forma de dibujar (lnea, rectngulo o un valo) y si la forma se rellena con el color de dibujo.
Tambin puede deshacer la ltima forma que ha aadido al dibujo o borrar todo el dibujo. [ Nota: Utilizamos fuentes de
distinguir entre las caractersticas. Nuestra convencin es poner de relieve caractersticas de la pantalla, como ttulos y
mens (por ejemplo, la Archivo Men) en un semibold

Helvetica sans-serif fuente y hacer hincapi en los elementos nonscreen, tales como nombres de archivo, programa o cdigo de
entrada (por ejemplo, ProgramName.java), en un sans-serif Lucida fuente.]
Los pasos de esta seccin muestran cmo ejecutar el Pintor aplicacin de una Smbolo del sistema ( Windows), Terminal
( OS X) o Windows Shell (Linux) en su sistema. A lo largo del libro, nos referiremos a estas ventanas simplemente
como ventanas de comandos. Realice los siguientes pasos para usar la Pintor aplicacin para dibujar una cara sonriente:

1. Comprobacin de la configuracin. Lea la seccin Antes de comenzar a confirmar que usted tiene
configurar Java correctamente en el equipo, que ha copiado ejemplos del libro en su disco duro
y que sabe cmo abrir una ventana de comandos en el sistema.

2. Cambiar al directorio de la aplicacin completa. Abrir una ventana de comandos y


utilizar el discos compactos comando para cambiar al directorio (tambin llamado carpeta) Para el Pintor
solicitud. Suponemos que los ejemplos del libro se encuentran en C: ejemplos \ en Windows o en la de su
cuenta de usuario Documentos / ejemplos carpeta en Linux / OS X. En el tipo de Windows cd C: \ ejemplos \ CH01 \
pintor, entonces presione Entrar. En Linux / OS X, el tipo cd ~ / Documents / examples / CH01 / pintor, entonces
presione Entrar.

3. Ejecucin de la Pintor solicitud. Recordemos que el Java comando, seguido de la


nombre de la aplicacin de. clase presentar (en este caso, Pintor), ejecuta la aplicacin. Escriba el comando java
Pintor y pulse Entrar para ejecutar la aplicacin. La figura 1.11 muestra la aplicacin que se ejecuta en
Windows, Linux y OS X, respectivamente, que acorta las ventanas para ahorrar espacio.
22 Captulo 1 Introduccin a las computadoras, Internet y Java

un) Pintor aplicacin se ejecuta en Windows

Cerca botn

Seleccionar un color
Borrar todo el
Seleccione una forma dibujo

Especificar

si un rectngulo
Deshacer la ltima

o un valo est
forma que se

lleno de colores
aadi al dibujo

segundo) Pintor aplicacin que se ejecuta en Linux.

Cerca
botn

do) Pintor aplicacin que se ejecuta en OS X.

Cerca
botn

Fig. 1.11 | Pintor aplicacin que se ejecuta en Windows 7, Linux y OS X.

[ Nota: comandos de Java son distingue maysculas y minsculas -es decir, las letras maysculas son diferentes
de letras minsculas. Es importante que escriba el nombre de esta aplicacin como
Pintor con un capital PAG. De lo contrario, la solicitud ser no ejecutar. Especificacin del. clase extensin
cuando se utiliza el Java comando resulta en un error. Adems, si recibe el mensaje de error Excepcin en hilo
"principal" java.lang.No- ClassDefFoundError: Pintor," el sistema dispone de una CLASSPATH problema. Por favor refirase a
la seccin Antes de comenzar para obtener instrucciones para ayudar a solucionar este problema.]

4. Dibujar un valo amarillo lleno de la cara. Seleccionar Amarillo como el color de dibujo, Oval
como la forma y comprobar el Lleno casilla de verificacin, a continuacin, arrastre el ratn para dibujar un valo grande
(Fig. 1.12).
1.10 prueba de manejo de una aplicacin Java 23

Fig. 1.12 | Dibujar un valo amarillo lleno de la cara.

5. Dibujo ojos azules. Seleccionar Azul como el color de dibujo, a continuacin, dibuje dos pequeos valos como
los ojos (Fig. 1.13).

Fig. 1.13 | Dibujo ojos azules.

6. Dibujo cejas negras y una nariz. Seleccionar Negro como el color y el dibujo Lnea
como la forma, a continuacin, dibujar las cejas y una nariz (Fig. 1.14). Lneas no tienen relleno, por lo que salir de la Lleno casilla
de verificacin marcada no tiene efecto cuando el trazado de lneas.
24 Captulo 1 Introduccin a las computadoras, Internet y Java

Fig. 1.14 | Dibujo cejas negras y una nariz.

7. Dibujo de una boca de color magenta. Seleccionar Magenta como el color y el dibujo Oval como el
forma, a continuacin, dibujar una boca (Fig. 1.15).

Fig. 1.15 | Dibujo de una boca de color magenta.

8. Dibujar un valo amarillo en la boca para hacer una sonrisa. Seleccionar Amarillo como el dibujo

color, a continuacin, dibuje un valo para cambiar el valo magenta en una sonrisa (Fig. 1.16).
1.11 Internet y la World Wide Web 25

Fig. 1.16 | Dibujar un valo amarillo en la boca para hacer una sonrisa.

9. al salir de la Pintor solicitud. Para salir de la Pintor aplicacin, haga clic en el Cerca
botn (en la esquina superior derecha de la ventana en Windows y de la esquina superior izquierda en
Linux y OS X). Al cerrar la ventana hace que el Pintor aplicacin terminar.

1.11 Internet y la World Wide Web


A finales de 1960, ARPA-la Agencia de Proyectos de Investigacin Avanzada del Departamento de Defensa de Estados Unidos
extiende el plazo a cabo los planes para la creacin de redes de los principales sistemas informticos de aproximadamente una
docena de universidades financiadas por ARPA e instituciones de investigacin. Las computadoras eran para ser conectado con las
lneas de comunicaciones que operan a velocidades del orden de 50.000 bits por segundo, una tasa impresionante en un momento
cuando la mayora de la gente (de los pocos que an tenan acceso a redes) se conectan a travs de lneas telefnicas a las
computadoras a una velocidad de 110 bits por segundo. La investigacin acadmica estaba a punto de dar un salto de gigante. ARPA
procedi a poner en prctica lo que rpidamente se hizo conocido como ARPANET, el precursor de hoy Internet .

Hoy en da velocidades ms rpidas de Internet son del orden de mil millones de bits por segundo con velocidades trillionbit por
segundo en el horizonte!
Las cosas funcionaron de manera diferente respecto al plan original. Aunque la ARPANET permiti a los investigadores en
red sus ordenadores, su principal beneficio result ser la capacidad para la comunicacin rpida y fcil a travs de lo que lleg a ser
conocido como el correo electrnico (e-mail). Esto es cierto incluso en la Internet de hoy, con el correo electrnico, mensajera
instantnea, transferencia de archivos y medios sociales como Facebook y Twitter permite a mil millones de personas en todo el
mundo para comunicarse de forma rpida y fcil.

El protocolo (conjunto de reglas) para comunicarse a travs de la ARPANET se conoce como la Protocolo de
Control de Transmisin (TCP) . TCP garantiza que los mensajes, que consta de piezas numeradas secuencialmente
llamados paquetes, fueron dirigidas bien del emisor al receptor, llegado intacto y se ensamblaron en el orden correcto.
26 Captulo 1 Introduccin a las computadoras, Internet y Java

1.11.1 El Internet: una red de redes


En paralelo con la evolucin temprana de la Internet, las organizaciones de todo el mundo fueron la aplicacin de
sus propias redes, tanto para intraorganization (es decir, dentro de una organizacin) y Interorganizaciones (es
decir, entre organizaciones) de comunicacin. Una gran variedad de hardware y software de red apareci. Uno de
los retos era permitir a estas redes diferentes para comunicarse entre s. ARPA logra esto mediante el desarrollo
del protocolo de Internet (IP), que cre una verdadera red de redes, la arquitectura actual de Internet. El conjunto
combinado de protocolos se llama ahora TCP / IP .

Las empresas se dieron cuenta rpidamente de que mediante el uso de la Internet, podran mejorar sus operaciones y
ofrecer nuevos y mejores servicios a sus clientes. Las empresas comenzaron a gastar grandes cantidades de dinero para
desarrollar y mejorar su presencia en Internet. Esto gener una fuerte competencia entre los operadores de comunicaciones y
proveedores de hardware y software para satisfacer la creciente demanda de infraestructura. Como resultado, ancho de banda -la
capacidad de transportar informacin de comunicaciones lneas en Internet ha aumentado enormemente, mientras que los costos
de hardware han cado en picado.

1.11.2 La World Wide Web: hacer que Internet sea fcil de usar
los Red mundial ( simplemente llamado la web) es un conjunto de hardware y software asociado con la Internet que permite a
los usuarios de la computadora para localizar y documentos basados en multimedia de vista (documentos con varias
combinaciones de texto, grficos, animaciones, audios y videos) sobre casi cualquier tema . La introduccin de la web era un
acontecimiento relativamente reciente. En
1989, Tim Berners-Lee de CERN (Organizacin Europea para la Investigacin Nuclear) comenzaron a desarrollar una tecnologa
para compartir informacin a travs de los documentos de texto hipervnculos. BernersLee llam a su invencin, la HyperText
Markup Language (HTML) . Tambin escribi los protocolos de comunicacin tales como Protocolo de transferencia de
hipertexto (HTTP) para formar la columna vertebral de su nuevo sistema de informacin de hipertexto, que se refiri como la World
Wide Web.
En 1994, Berners-Lee fund una organizacin, llamada Consorcio Mundial de la red ( W3C , www.w3.org),
dedicado al desarrollo de tecnologas web. Uno de los objetivos principales de la W3C es hacer la web accesible a
todos, independientemente de la discapacidad, idioma o cultura. En este libro, va a utilizar Java para crear
aplicaciones basadas en web.

1.11.3 Servicios Web y aplicaciones web hbridas

En el captulo 32 en lnea, incluimos un tratamiento sustancial de los servicios web (Fig. 1.17). La metodologa aplicaciones de
desarrollo de mashups le permite desarrollar rpidamente aplicaciones de software de gran alcance mediante la combinacin de (a
menudo gratis) complementarios servicios web y otras formas de informacin alimenta. Una de las primeras mashups combinan los
listados de bienes races proporcionados por www.craigslist.org con las capacidades de mapeo de mapas de Google para ofrecer mapas
que muestran la ubicacin de viviendas en venta o alquiler en un rea determinada.

fuente de los servicios web Cmo se usa

mapas de Google servicios de mapas

Gorjeo microblogging

Fig. 1.17 | Algunos servicios web populares ( www.programmableweb.com/apis/ directorio / 1? sort =


mashups). ( Parte 1 de 2.)
1.11 Internet y la World Wide Web 27

fuente de los servicios web Cmo se usa

Youtube bsqueda de vdeo

Facebook Redes sociales


Instagram compartir foto
Firme Check-in mvil
LinkedIn Las redes sociales para los negocios

Groupon Comercio social


Netflix alquiler de pelculas

eBay subastas en Internet

Wikipedia enciclopedia colaborativa


PayPal pagos
Last FM radio Internet
comercio electrnico Amazon Compras para los libros y muchos otros productos

Salesforce.com Customer Relationship Management (CRM)


Skype la telefona por Internet

microsoft Bing Buscar

Flickr compartir foto


Zillow la fijacin de precios de bienes races

yahoo Search Buscar

Insecto de lluvia Clima

Fig. 1.17 | Algunos servicios web populares ( www.programmableweb.com/apis/ directorio / 1? sort =


mashups). ( Parte 2 de 2.)

1.11.4 Ajax
Ajax ayuda a las aplicaciones basadas en Internet funcionan como aplicaciones de un escritorio tarea difcil, dado que este tipo
de aplicaciones sufren retardos de transmisin de datos como se iba y vena entre el ordenador y el servidor de ordenadores en
Internet. El uso de Ajax, aplicaciones como Google Maps han logrado un excelente rendimiento y abordar el aspecto y la
sensacin de las aplicaciones de escritorio. Aunque no discutimos la programacin Ajax en bruto (que es bastante compleja)
en este texto, nosotros mostramos en el captulo 31 en lnea cmo construir aplicaciones habilitadas para el uso de Ajax
componentes JavaServer Faces compatibles con el Ajax (JSF).

1.11.5 La Internet de las cosas


Internet ya no es slo una red de ordenadores, es una Internet de las Cosas . UN cosa
es cualquier objeto con una direccin IP y la capacidad de enviar datos de forma automtica a travs de una red, por ejemplo, un
coche con un transpondedor para los peajes que pagan, un monitor cardiaco implantado en un ser humano, un medidor inteligente que
reporta el uso de energa, aplicaciones mviles que pueden realizar un seguimiento el movimiento y la ubicacin, y termostatos
inteligentes que ajustan la temperatura ambiente sobre la base de las previsiones meteorolgicas y la actividad en el hogar. Vamos a
usar las direcciones IP para construir aplicaciones en red en el captulo 28 en lnea.
28 Captulo 1 Introduccin a las computadoras, Internet y Java

1.12 Tecnologas de software


Figura 1.18 enumera una serie de palabras de moda que se oir en la comunidad de desarrollo de software. Hemos
creado centros de recursos en la mayora de estos temas, con ms en camino.

Tecnologa Descripcin

gil de software Desarrollo gil de Software es un conjunto de metodologas que tratan de conseguir el
desarrollo software implementado ms rpido y con menos recursos. Echa un vistazo a la Alianza gil
( www.agilealliance.org) y el manifiesto gil ( www.agilemanifesto.org).

refactoring refactoring implica reelaboracin programas para hacerlos ms claros y fciles de mantener, preservando su
correccin y funcionalidad. Es ampliamente empleado con metodologas giles de desarrollo. Muchos IDE
contienen incorporados herramientas de refactorizacin hacer grandes porciones de la reelaboracin de forma
automtica.

Patrones de diseo Patrones de diseo se ha comprobado para la construccin de arquitecturas flexibles y

mantenible software orientado a objetos. El campo de patrones de diseo intenta enumerar esos patrones
recurrentes, animando a los diseadores de software reutilizar
a desarrollar el software de mejor calidad con menos tiempo, dinero y esfuerzo. Se discuten los
patrones de diseo de Java en el Apndice lnea N.

LMPARA LMPARA es un acrnimo de las tecnologas de cdigo abierto que muchos desarrolladores utilizan para
construir aplicaciones web-que representa Linux, Apache, MySQL y
PHP ( o Perl o Pitn -dos otros lenguajes de scripting). MySQL es un sistema de gestin de bases de
datos de cdigo abierto. PHP es el ms popular del lado del servidor lenguaje de cdigo abierto
scripting para el desarrollo de aplicaciones web. Apache es el software ms popular servidor web.
El equivalente para el desarrollo de Windows es WAMP- ventanas, Apache, MySQL y PHP.

Software como Software en general ha sido visto como un producto; la mayora del software todava se ofrece de esta manera.
Servicio (SaaS) Si desea ejecutar una aplicacin, usted compra un paquete de software de un proveedor de software, a menudo
un CD, DVD o descarga de la web. Que a continuacin se instala el software en su ordenador y ejecutarlo
cuando sea necesario. A medida que aparecen nuevas versiones, actualizar su software, a menudo a un costo
considerable en tiempo y dinero. Este proceso puede llegar a ser engorroso para las organizaciones que deben
mantener decenas de miles de sistemas en una amplia gama de equipos informticos. Con Software como
Servicio (SaaS) , el software se ejecuta en los servidores de otros lugares en Internet. Cuando se actualiza el
servidor, todos los clientes en todo el mundo ver las nuevas capacidades no es necesaria la instalacin local. Se
accede al servicio a travs de un navegador. Los navegadores son muy porttil, para que pueda ejecutar las
mismas aplicaciones en una amplia variedad de equipos desde cualquier parte del mundo. Salesforce.com,
Google y de Microsoft Office Live y Windows Live todos ofrecen SaaS.

Plataforma como Plataforma como servicio (PaaS) proporciona una plataforma informtica para el desarrollo y ejecucin de
Servicio (PaaS) aplicaciones como un servicio a travs de Internet, en lugar de instalar las herramientas en su computadora.
Algunos proveedores de PaaS son Google App Engine, Amazon EC2 y Windows Azure .

Fig. 1.18 | tecnologas de software. (Parte 1 de 2.)


1.12 Software Technologies 29

Tecnologa Descripcin

SaaS y PaaS son ejemplos de computacin en la nube . Puede utilizar el software y los datos almacenados en el

informtica -es decir nube, visitada en equipos remotos (o servidores) a travs de Internet y disponible en la demanda, en

lugar de tenerlo almacenado en su escritorio, ordenador porttil o dispositivo mvil. Esto le permite aumentar o

disminuir los recursos informticos para satisfacer sus necesidades en un momento dado, lo que es ms rentable

que la compra de hardware para proporcionar suficiente capacidad de almacenamiento y potencia de

procesamiento para satisfacer las demandas pico ocasionales. La computacin en nube tambin ahorra dinero al

trasladar la carga de la gestin de estas aplicaciones para el proveedor de servicios.

las comunidades de usuarios como una serie de comunicados, cada una ms completa y pulida que la anterior (fig. 1.19). Nube
Software Kits de desarrollo de software (SDK) incluir las herramientas y los desarrolladores de documentacin utilizan
Development Kit para programar aplicaciones. Por ejemplo, vamos a usar el Kit de Desarrollo de Java (JDK) para generar y
(SDK) ejecutar aplicaciones Java.

disear e implementar. Cuando los grandes productos de software estn en fase de desarrollo, por lo general estn a disposicin de
Fig. 1.18 | tecnologas de software. (Parte 2 de 2.)

El software es compleja. Grandes, aplicaciones de software del mundo real pueden tomar muchos meses o incluso aos para

Versin Descripcin

Alfa Alfa software es el primer lanzamiento de un producto de software que an est en desarrollo activo. versiones alfa
son a menudo con errores, incompleta e inestable y se liberan a un nmero relativamente pequeo de los

desarrolladores para probar nuevas caractersticas, obtener retroalimentacin temprana, etc.

Beta Beta versiones se liberan a un mayor nmero de desarrolladores ms adelante en el proceso de desarrollo despus
de la mayora de los grandes errores han sido corregidos y nuevas caractersticas son casi completa. software beta

es ms estable, pero an sujetas a cambios.

Lanzamiento candidatos de liberacin son generalmente Completar funcin, ( en su mayora) libre y listo para su uso por la
candidatos comunidad, lo que proporciona una prueba de diversa con el medio ambiente que el software se utiliza en sistemas

diferentes, con diferentes limitaciones y para una variedad de propsitos de errores.

Lanzamiento final Cualquier error que aparecen en la versin candidata se corrigen, y, finalmente, el producto final es liberado
al pblico en general. Las compaas de software a menudo distribuir actualizaciones incrementales a travs
de Internet.

Continuo Software que se ha desarrollado utilizando este enfoque (por ejemplo, bsqueda de Google o Gmail) generalmente
beta no tienen nmeros de versin. Se aloja en el nube ( no se han instalado en el ordenador) y que est en constante
evolucin para que los usuarios tienen siempre la versin ms reciente.

Fig. 1.19 | Software terminologa de liberacin del producto.


30 Captulo 1 Introduccin a las computadoras, Internet y Java

1.13 Mantener Up-to-Date con Tecnologas de la Informacin


Figura 1.20 listas de publicaciones tcnicas y de negocios que le ayudar a mantenerse al da con las novedades y
tendencias y la tecnologa. Tambin puede encontrar una lista cada vez mayor de Internet- y centros de recursos
relacionados con la web en www.deitel.com/ResourceCenters.html.

Publicacin URL

AllThingsD allthingsd.com

Bloomberg BusinessWeek www.businessweek.com

CNET news.cnet.com

Comunicaciones del ACM cacm.acm.org


Mundo de la informtica www.computerworld.com

Engadget www.engadget.com

eWeek www.eweek.com

Fast Company www.fastcompany.com/

Fortuna money.cnn.com/magazines/fortune

GigaOM gigaom.com

Hacker News news.ycombinator.com

Revista IEEE Computer www.computer.org/portal/web/computingnow/computer

InfoWorld www.infoworld.com

Mashable mashable.com

Mundo PC www.pcworld.com

SD Times www.sdtimes.com

Slashdot slashdot.org/

Technology Review technologyreview.com

Techcrunch techcrunch.com

The Next Web thenextweb.com

la Verge www.theverge.com

Wired www.wired.com

Fig. 1.20 | publicaciones tcnicas y de negocios.

Ejercicios de auto-revisin
1.1 Llenar los espacios en blanco en cada una de las siguientes afirmaciones:

a) Los datos de proceso Informtica bajo el control de conjuntos de instrucciones llamadas .


b) Las unidades lgicas clave de la computadora son la , , , ,
y .
c) Los tres tipos de lenguajes analizados en el captulo son , y
.
d) Los programas que traducen programas en lenguaje de alto nivel a lenguaje de mquina se denominan
.
Respuestas a los ejercicios de auto-revisin 31

mi) es un sistema operativo para dispositivos mviles basados en el kernel de Linux y Java.
F) software es generalmente caracterstica completa, (supuestamente) libre de errores y listo para su uso por la

comunidad.

g) El mando de Wii, as como muchos telfonos inteligentes, utilice una (n) que permite la de-
tornillo de banco para responder al movimiento.

1.2 Rellenar los espacios en blanco en cada una de las siguientes frases sobre el entorno Java:
a) La comando desde el JDK ejecuta una aplicacin Java.
b) La comando desde el JDK compila un programa Java.
c) Un archivo de cdigo fuente de Java debe acabar con el extensin de archivo.

d) Cuando se compila un programa en Java, el archivo generado por el compilador termina con la
extensin de archivo.

e) El archivo producido por el compilador de Java contiene que son ejecutados por el Java
Mquina virtual.

1.3 Rellena los espacios en blanco en cada una de las declaraciones siguientes (basado en la Seccin 1.5):

a) Objetos permitir la prctica del diseo - aunque pueden saber cmo com-
municar entre s a travs de interfaces bien definidas, que normalmente no se les permite saber cmo otros
objetos se implementan.
b) los programadores de Java se concentran en la creacin de , que contienen los campos y el conjunto de

mtodos que manipulan esos campos y proporcionan servicios a los clientes.


c) El proceso de anlisis y diseo de un sistema desde un punto de vista orientado a objetos se llama
.
d) Una nueva clase de objetos puede ser creado convenientemente por - la nueva clase (llamada
la subclase) comienza con las caractersticas de una clase existente (llamada la superclase), posiblemente la personalizacin
de ellos y la adicin de caractersticas nicas de su propia.
mi) es un lenguaje grfico que permite a las personas que los sistemas de software de diseo para utilizar una notacin

estndar de la industria para representarlos.

f) El tamao, forma, color y peso de un objeto se consideran de la clase del objeto.

Respuestas a los ejercicios de auto-revisin

1.1 programas A). b) unidad de entrada, la unidad de salida, unidad de memoria, unidad central de procesamiento, la aritmtica

y la unidad lgica, la unidad de almacenamiento secundario. c) lenguajes de mquina, lenguajes de montaje, lenguajes de alto nivel. d)

compiladores. e) Android. f) Release Candidate. g) acelermetro.

1.2 un) Java. segundo) javac. c). Java. d). clase. e) bytecodes.

1.3 a) ocultacin de informacin. b) clases. c) anlisis orientado a objetos y diseo (OOAD).


d) herencia. e) El Lenguaje de Modelado Unificado (UML). f) atributos.

Ceremonias

1.4 Llenar los espacios en blanco en cada una de las siguientes afirmaciones:

a) La unidad lgica que recibe informacin desde fuera del ordenador para su uso por el ordenador es la
.
b) El proceso de instruir a la computadora para resolver un problema se llama .
do) es un tipo de lenguaje de programacin que utiliza abreviaturas Englishlike para obtener instrucciones en
lenguaje mquina.
re) es una unidad lgica que enva informacin que ya ha sido procesada por el ordenador para varios
dispositivos de manera que se puede utilizar fuera del ordenador.
mi) y son unidades lgicas del equipo que retienen informacin.
F) es una unidad lgica del ordenador que realiza los clculos.
gramo) es una unidad lgica de la computadora que toma decisiones lgicas.
32 Captulo 1 Introduccin a las computadoras, Internet y Java

marido) idiomas son los ms convenientes para el programador para escribir programas de forma rpida y sencilla.

i) El nico lenguaje que una computadora puede entender directamente es que la computadora de .
j) es una unidad lgica del equipo que coordina las actividades de todas las otras unidades lgicas.

1.5 Llenar los espacios en blanco en cada una de las siguientes afirmaciones:

a) La lenguaje de programacin ahora se utiliza para desarrollar la empresa a gran escala AP-

complicaciones, para mejorar la funcionalidad de los servidores web, para proporcionar aplicaciones para los dispositivos de

consumo y para muchos otros propsitos.

segundo) Inicialmente se hizo ampliamente conocido como el lenguaje de desarrollo del sistema operativo UNIX.

c) La asegura que los mensajes, que consta de piezas numeradas secuencialmente llamados

bytes, se encamina adecuadamente del emisor al receptor, lleg intacto y se ensamblaron en el orden correcto.

d) La lenguaje de programacin fue desarrollado por Bjarne Stroustrup en los primeros


1980 en los Laboratorios Bell.

1.6 Llenar los espacios en blanco en cada una de las siguientes afirmaciones:

a) los programas de Java pasan normalmente a travs de cinco fases: , , ,


y .
b) A (n) proporciona muchas herramientas que apoyan el proceso de desarrollo de software,
tales como editores de programas de escritura y edicin, depuradores para la localizacin de errores lgicos en los programas, y

muchas otras caractersticas.

c) El comando Java invoca la , que ejecuta programas Java.


d) A (n) es una aplicacin de software que simula un ordenador, pero oculta la sub
mentira sistema operativo y hardware de los programas que interactan con l.
e) La toma el . clase archivos que contienen los cdigos de bytes y las transferencias del programa

a la memoria principal.
f) La examina los cdigos de bytes para asegurarse de que son vlidos.

1.7 Explicar las dos fases de compilacin de programas Java.

1.8 Uno de los objetos ms comunes del mundo es un reloj de pulsera. Discutir cmo cada uno de los siguientes trminos y conceptos se
aplica a la nocin de un reloj: objetos, atributos, comportamientos, clase, herencia (Considrese, por ejemplo, un reloj despertador),
modelado, mensajes, encapsulacin, la interfaz y la ocultacin de informacin.

Hacer una diferencia


A lo largo del libro hemos incluido Hacer una Diferencia ejercicios en los que se le pedir a trabajar en los problemas que realmente
importan a las personas, comunidades, pases y el mundo. Para obtener ms informacin acerca de las organizaciones internacionales
que trabajan para hacer una diferencia, y para las ideas de programacin de proyectos relacionados, visite nuestro Haciendo la
Diferencia en el Centro de Recursos makingadifference www.deitel.com/.

1.9 (Test-Drive: Carbon Footprint Calculator) Algunos cientficos creen que las emisiones de carbono, especialmente a partir de la
quema de combustibles fsiles, contribuyen significativamente al calentamiento global y que esto puede ser combatida si las personas toman

medidas para limitar el uso de los combustibles a base de carbono. Organizaciones e individuos estn cada vez ms preocupados por sus huellas

de carbono. Los sitios web como TerraPass

http://www.terrapass.com/carbon-footprint-calculator/

y la huella de carbono

http://www.carbonfootprint.com/calculator.aspx
Hacer una diferencia 33

proporcionar calculadoras de carbono-huella. Prueba de manejo de estas calculadoras para determinar su huella de carbono. Los ejercicios en los

captulos siguientes le pedirn que programar su propia calculadora de huella de carbono. Para prepararse para esto, utilizar la web para investigar

las frmulas para el clculo de la huella de carbono.

1.10 (Test-Drive: ndice de Masa Corporal Calculadora) La obesidad provoca un aumento significativo en enfermedades como
la diabetes y enfermedades del corazn. Para determinar si una persona tiene sobrepeso o es obeso, puede utilizar una medida
llamada el ndice de masa corporal (IMC). El Departamento de Salud y Servicios Humanos de Estados Unidos ofrece una calculadora
de IMC en http://www.nhlbi.nih.gov/guidelines/obesity/BMI/ bmicalc.htm. Lo utilizan para calcular su propio IMC. En un prximo ejercicio le pedir que
programar su propio ndice de clculo. Para prepararse para esto, utilizar la web para investigar las frmulas para el clculo de IMC.

1.11 (Atributos de vehculos hbridos) En este captulo has aprendido algunos conceptos bsicos de clases. Ahora vamos a dar cuerpo a
aspectos de una clase llamada Vehculo hbrido. Los vehculos hbridos son cada vez ms populares, ya que a menudo consiguen mucho mejor

kilometraje que los vehculos puramente a gasolina. Navegar por la web y estudiar las caractersticas de cuatro o cinco de los coches hbridos

populares de hoy en da, a continuacin, la lista ya que muchos de sus atributos relacionados con hbridos que pueda. Algunos atributos comunes

incluyen ciudades-millas por galn y la autopista-millas por galn. Tambin lista los atributos de las pilas (tipo, peso, etc.).

1.12 (Neutralidad de gnero) Muchas personas quieren eliminar el sexismo en todas las formas de
comunicacin. Se le ha pedido para crear un programa que puede procesar un prrafo de texto y reemplazar
palabras especficas de gnero con los neutrales. Si se asume que le han dado una lista de palabras especficas
de gnero y sus reemplazos de gnero neutro (por ejemplo, sustituir tanto esposa y marido por cnyuge,
hombre y mujer por persona, hijaehijopornio), explicar el procedimiento que se usa para leer a travs
de un prrafo de texto y realizar manualmente estos reemplazos. Cmo podra su procedimiento generar un
trmino extrao como woperchild? Pronto aprender que un trmino ms formal para procedimiento es
algoritmo, y que un algoritmo especifica los pasos a realizar y el orden en que para realizarlas .