13
Android de la A a la Z Unidad 1 “Conceptos generales sobre Java” 1.1 Introducción Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Java fue pensado originalmente para utilizarse en cualquier tipo de electrodoméstico pero la idea fracasó. Uno de los fundadores de Sun rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito Sun describe Java como un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto desempeño y multihilos. Cada una de estas palabras es una característica del lenguaje Java. Mientras muchas de estas características pueden usarse para describir otros lenguajes, esta combinación en particular es única en Java y su ambiente. Simple: Se dice que Java es simple porque aunque tiene todas las características de un lenguaje potente, descarta las características menos usadas y más confusas de éstos. C y C++ son lenguajes muy conocidos, por eso Java se diseñó para ser parecido a C++ y así facilitar su aprendizaje. En Java no es necesario liberar memoria, no se usan la 1

Android de la A a la Z - Introducción

Embed Size (px)

DESCRIPTION

by Jorge Ulises Gonzalez Medina

Citation preview

Page 1: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

1.1 Introducción

Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general.

Java fue pensado originalmente para utilizarse en cualquier tipo de electrodoméstico pero la idea fracasó. Uno de los fundadores de Sun rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito

Sun describe Java como un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto desempeño y multihilos. Cada una de estas palabras es una característica del lenguaje Java. Mientras muchas de estas características pueden usarse para describir otros lenguajes, esta combinación en particular es única en Java y su ambiente.

Simple: Se dice que Java es simple porque aunque tiene todas las características de un lenguaje potente, descarta las características menos usadas y más confusas de éstos. C y C++ son lenguajes muy conocidos, por eso Java se diseñó para ser parecido a C++ y así facilitar su aprendizaje. En Java no es necesario liberar memoria, no se usan la aritmética de punteros, las referencias, registros, definición de tipos (typedef) ni macros.

Orientado a objetos: Desde el punto de vista del usuario la orientación a objetos no cambia nada. Al correr un programa no importa si está escrito en programación convencional o en lenguaje orientado a objetos. Pero si se está acostumbrado a programar en lenguajes convencionales como Pascal y C, entonces “orientado a objetos” significa que serán necesarios mayores ajustes en la planeación e implementación de las aplicaciones. Este ajuste es probablemente la parte más difícil en el aprendizaje de Java.

1

Page 2: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

Distribuido: Java viene con una completa biblioteca de aplicaciones para red que facilita al programador el trabajar con protocolos desde bajo nivel como TCP/IP (Transport Control Protocol and Internet Protocol) o alto nivel como HTTP (Hyper Text Transfert Protocol) y FTP (File Transfer Protocol).

Interpretado: La ejecución de un programa en Java pasa a través de dos fases:1. El compilador de java convierte el código fuente en un tipo de lenguaje de bajo nivel llamado bytecode.2. Para correr el programa se usa un intérprete que ejecuta el bytecode compilado. Este intérprete es conocido como la JVM (Java Virtual Machine).

Robusto: Java no solo verifica el código para encontrar problemas en tiempo de compilación, también busca errores que se puedan presentar en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Entre otras cosas proporciona la comprobación de límites de arreglos, manejo de excepciones, etc.

Seguro: Debido a que Java fue diseñado para correr en un ambiente de red tienes restricciones de seguridad. Además durante la ejecución el intérprete usa un mecanismo para verificar que el bytecode cargado a través de la red no viola ninguna restricción del lenguaje Java.

Multihilos: En la actualidad muchas aplicaciones permiten al usuario realizar múltiples tareas en forma simultánea. La capacidad para ejecutar varios procesos al mismo tiempo se conoce como multihilo. Java proporciona paquetes para implementar y aplicaciones multihilo.

Dinámico: Java es un lenguaje dinámico porque puede adaptarse a un ambiente cambiante y en desarrollo. Java no intenta conectar todos los módulos que conforman una aplicación hasta el tiempo de ejecución. Las librerías nuevas o actualizadas no paralizarán las aplicaciones actuales.

Arquitectura Neutral: La internet es la composición de muchas computadoras interconectadas con procesadores y sistemas operativos diferentes. Java fue desarrollado con la meta de ser capaz de correr en cualquier tipo de computadora sin tener que recompilar el código. Por esta razón, cuando se compila un programa fuente de Java, el resultado no es un código nativo sino un bytecode de arquitectura neutral de bajo nivel que representa los datos en un formato independiente de la máquina objeto. El intérprete de Java puede más tarde, leer este bytecode y traducirlo a llamadas de sistema dependientes de máquina. Esta combinación de características es la razón por la que las aplicaciones de Java pueden correr en cualquier computadora que implementa la Java Virtual Machine.

Portable: Ser de arquitectura neutral es sólo una parte de ser portable. Java además implementa otros estándares de portabilidad para facilitar el desarrollo, por ejemplo los enteros son siempre de 32 bits, la construcción de interfaces de usuarios se realiza utilizando las clases del paquete awt (abstract window toolkit) de forma que las ventanas puedan ser implantadas en cualquier entorno.

2

Page 3: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

1.2 ¿Cómo se genera un programa en Java?

En el lenguaje de programación Java, todo el código es escrito en formato de archivo de texto plano con extensión .java. Este código fuente es compilado en un archivo .class por el compilador javac.

máquina virtual de

JAVA

Programa.java

Compilador

Programa.class Programa en ejecución

Un .class no contiene código nativo en su proceso; este contiene bytecodes el cual es el lenguaje de la maquina virtual de Java (VM Virtual Machine); la herramienta java ejecuta la aplicación con la instancia de la maquina virtual.

MacOS Windows Unix/Linux

Programa Java

public class Ejemplo { public static void main(String[] args) { System.out.println("Hola a todos"); }}

VM VM VM

Compilador

3

Page 4: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

1.3 API´s de Java

Sun define tres plataformas en un intento por cubrir distintos entornos de aplicación. Así, ha distribuido muchas de sus APIs (Application Program Interface) de forma que pertenezcan a cada una de las plataformas:

Java Standard Edition (J2SE) Java Enterprise Edition (J2EE) Java Micro Edition (J2ME)

1.4 ¿Qué es el JRE (Java Runtime Environment)?

JRE es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilarlos, el JRE es suficiente.

El JRE incluye el Java Plug-in, que es el 'añadido' que necesitan lo navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java 2, tanto para aplicaciones normales (denominadas 'standalone') como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador).

4

Page 5: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

1.5 Tipos de datos

Java es un lenguaje que posee un control fuerte de Tipos (Strongly Typed). Esto significa que cada variable y cada expresión tiene un Tipo que es conocido en el momento de la compilación. El Tipo limita los valores que una variable puede tener, además de condicionar las operaciones soportadas sobre esos valores y determina el significado de las operaciones. El control fuerte de tipos ayuda a detectar errores en tiempo de compilación.

Los tipos primitivos contienen un sólo valor e incluyen los tipos como los enteros, coma flotante, los caracteres, de tipo booleano, entre otros.

Los tipos referenciados o referencias se denominan así porque el valor de una variable es una referencia (un puntero) hacia el valor real. En Java tenemos los arrays, las clases y los interfaces como tipos de datos referenciados.

1.5 Tipos de datos primitivos

Los tipos primitivos son aquellos que permiten manipular valores numéricos (con distintos grados de precisión), caracteres y valores booleanos (verdadero / falso).

El tamaño de los tipos de datos NO depende de la implementación de Java. Son siempre los mismos.

1.5 Variables

Una variable es un área en memoria que tiene un nombre y un Tipo asociado. El Tipo puede ser primitivo o referenciado.

5

Page 6: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

Es obligatorio declarar las variables antes de usarlas. Para declararlas se indica su nombre y su Tipo, de la siguiente forma:

tipo_variable nombre ;

Ejemplos:

int valor; // Declaración de un dato entero

float cantidad; // Declaración de un dato flotante

boolean respuesta; // Declaración de un dato booleano

En Java las mayúsculas y minúsculas son significativas. No es lo mismo el nombre de una variable cantidad que CANTIDAD.

1.5 Literales

Un literal, constante literal ó valor literal es una constante cuyo nombre o identificador es la representación escrita de su valor y posee ese significado en el código fuente de un programa Java. Hay literales para todos los tipos de datos; por ejemplo:

Literales carácter (char)‘A’, ‘B’, ‘y’, ‘z’, ‘%’, ‘2’\n //nueva línea.\r //retorno de carro.\t //tabulador.

Literales booleanas (boolean)truefalse

Literales enteras (int, short, long)34 // de tipo int, solo dígitos-78 // número negativo034 // en octal (equivale al 28 decimal)0x1C // en hexadecimal (equivale al 28 decimal)875L // de tipo long

Literales reales (float, double)15.2 // de tipo double15.2D // el mismo valor de tipo double1.52e1 // el mismo valor de tipo double0.152E2 // el mismo valor de tipo double.8e10 // de tipo double15.8f // de tipo float15.8F // tambien de tipo float

1.5 Operadores 6

Page 7: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

Un operador lleva a cabo operaciones sobre uno (operador unario), dos (operador binario) o tres (operador ternario) datos u operandos de tipo primitvo devolviendo un valor determinado también de un tipo primitivo. El tipo de valor devuelto tras la evaluación depende del operador y del tipo de los operandos. Por ejemplo, los operadores aritméticos trabajan con operandos numéricos, llevan a cabo operaciones aritméticas básicas y devuelven el valor numérico correspondiente.

Operador de asignación

Operadores aritméticos

Operadores aritméticos incrementales

Operadores aritméticos y de asignación

Operadores relacionales

Operadores booleanos

7

Page 8: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

Operadores a nivel de bits

Operadores de agrupación

8

Page 9: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

1.5 Programación orientada a objetos

1.5 Clases VS Objetos

Un objeto se define como la unidad que en tiempo de ejecución realiza las tareas de un programa. También a un nivel más básico se define como la instancia de una clase.

Un objeto está formado por: Un nombre, el cual es una designación que nos permite distinguir al objeto de otros. Características o atributos que nos permiten determinar cómo es o cómo está dicho objeto. Acciones o métodos; los cuales nos permiten describir el comportamiento que posee dicho objeto.

Ejemplos de objetos:

Una clase está formada por los métodos y los atributos que definen las características comunes a todos los objetos de esa clase. Precisamente la clave está en abstraer los métodos y las características comunes a un conjunto de objetos y almacenarlos en una clase.

Una clase es como una especie de molde que nos permite crear varios ejemplos o instancias del mismo tipo; por ejemplo:

9

Nombre: Pepito

Atributos o características:

peso -> 50g

edad -> 1 año

especie -> canarioAcciones o métodos:

cantar()volar()comer()

Nombre: Luis

Atributos o características:

edad -> 2 meses

género -> masculino

altura - > 40 cmAcciones o métodos:

llorar()comer()dormir()

Page 10: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

A continuación desarrollaremos el código para la clase Ave y además crearemos un objeto de la misma:

10

Una clase

Muchos objetos

Una clase

Muchos objetos

class Ave {float peso;int edad;string especie;

void cantar() { System.out.printl(“pio, pio”); }}

atributos

nombre de la clase1

Definimos la clase Ave con sus atributos y un método

class Prueba {public static void main (String[] args) {// Aquí crearemos las aves }}

Siempre debe de existir un solo método “main”

2

Creamos un clase de prueba donde colocaremos objetos que serán aves.

Page 11: Android de la A a la Z - Introducción

Android de la A a la Z

Unidad 1 “Conceptos generales sobre Java”

11

Creamos al objeto, asignamos valores a sus atributos y hacemos uso del método cantar()

class Prueba{public static void main (String[] args) { Ave pepito = new Ave(); pepito.peso = 50; pepito.edad = 1; pepito.especie = “canario”;

pepito.cantar(); }}

Creamos un objeto de tipo Ave, el cual se llama “pepito”

3

Asignamos datos a sus atributos

Mandamos llamar al método cantar() para el objeto pepito