Está en la página 1de 56

PROGRAMACIÓN

ORIENTADA A OBJETOS
• En esta unidad se introducirán conceptos relacionados a:
Agenda

1. Java: Qué y Por qué?


2. Tipos de Datos y Operadores
3. Sintaxis
4. Variables y asignación
5. Conversiones de Datos
6. Flujo de programación en Java
7. Expresiones y Estructuras de Control
8. API de Java
Introducción a Java
Introducción a Java
• Creado por el equipo de Sun Microsystems liderado por James
Gosling (1991).
• Es un lenguaje compilado e interpretado.
• Es un lenguaje de propósito general.
• Java incorpora el uso de la orientación a objetos como uno de sus
pilares básicos y fundamentales.
Historia de las versiones de Java
¿Por qué Java?
1. Lenguaje Multiplataforma - Write Once, Run Anywhere
• Una plataforma es el entorno de hardware o software en el que se ejecuta un
programa ( Microsoft Windows, Linux, Solaris OS, and Mac OS.)
• Cuando un programa está escrito en Java, cualquiera pieza de hardware que
tenga Java instalado puede ejecutar esa pieza de software.
Java - Multiplataforma
¿Por qué Java?
2. Lenguaje multipropósito.
• Aplicaciones empresariales Web y Desktops
• El 90% de los escritorios empresariales ejecutan Java
• El 89% de los escritorios (o computadoras) en Estados Unidos ejecutan Java
• Algunos sitios web que corren Jave - eBay.com, linkedin.com, amazon.com, y
facebook.com
• Aplicaciones móbiles – Android
• 3000 millones de dispositivos móviles utilizan Java
¿Por qué Java?
3. Gran soporte y comunidad
• Más de 9 millones de desarrolladores en el mundo
Java – Lenguaje de Programación
• Java es un lenguaje de programación de alto nivel, basado en clases,
orientado a objetos.
• Java puede ser caracterizado por las siguientes palabras:

• Simple • Arqutectura Neutral


• Seguro • Interpretado
• Portable • Alto Rendimiento
• Orientado a Objetos • Multihilo
• Robusto
La tecnología Java

• Java es un lenguaje de programación y una plataforma informática


comercializada por primera vez en 1995 por Sun Microsystems.
Grupos de Porductos de Tecnología Java
• Hay cuatro grupos de productos de tecnología Java con sus
correspondientes tipos de dispositivos de destino
• Java Platform, Standard Edition (SE)
• Java Platform, Entrepise Edition (EE)
• Java Platform, Micro Edtion (ME)
• Java Card
Grupos de Porductos de Tecnología Java
Java - Plataforma
• Una plataforma es el ambiente (software o hardware) en el cual un
programa corre.
• La plataforma Java difiere de la mayoría de las otras plataformas en
que es una plataforma de solo software que se ejecuta en la parte
superior de otras plataformas basadas en hardware.
Java - Plataforma
• La plataforma de Java tiene 2 componentes:
• The Java Virtual Machine
• The Java Application Programming Interface (API)
Java - Plataforma
Proceso de Compilación e Interpretación

• Los desarrolladores de JAVA crearon un proceso de compilación de 2


pasos para simplificar de escribir compiladores para cada tipo de
arquitectura.
Proceso de Compilación e Interpretación

1. En el proceso de compilación, el compilador JAVA (javac.exe) genera un código independiente


de la plataforma, código bytecode
Bytecode es una especie de lenguaje de máquina de una máquina virtual
Proceso de Compilación e Interpretación

2. En el proceso de ejecución, la Java Virtual Machine (java.exe) realiza una compilación Just In
Time
Compila el Bytecode para generar el código de máquina según la arquitectura y
sistema operativo sobre el cual se encuentra
Proceso de Compilación e Interpretación
Comparación entre Python y Java
Tipos de Datos y
Operadores
Tipos de Datos

• Es la especificación de un dominio (rango de valores) y de un


conjunto válido de operaciones a los que normalmente los
traductores asocian un esquema de representación interna
propio.
Tipos de Datos
• El lenguaje Java define 8 tipos de datos primitivos
• Datos de tipos numericos
• Números enteros: byte, short, int, long
Tipos de Datos
• Datos de tipos numéricos
• Número con punto flotante: float, double
Tipos de Datos
• Datos de tipo caracter
• Char

• Datos de tipo lógico


• boolean
Tipos de Datos
• Tipos complejos o compuestos (poseen sus propios métodos)

• La Clase String à crear cadenas de caracteres

• La Clase Scanner à leer entrada de datos por teclado

• La Clase ArrayList à creación de arreglos dinámicos


Tipos de Datos
• Operadores aritméticos
Tipos de Datos
• Caracteres especiales (secuencias de escape)
Tipos de Datos
• Operadores Lógicos
Sintaxis en Java
Estructura de programas Java
Estructura de una clase
Reglas de Léxico

qSeparadores:
§ () lista de parámetros en métodos, expresiones, sentencias de control, conversiones
de tipos.
§ {} Inicialización de arreglos. Encierra: bloques de código, contenido de clases y
métodos.
§ [] Declara arreglos, referencia a elementos de arreglos.

§ ; Para terminar una sentencia

§ , Separador de variables

§ . Separa nombres en paquetes en subpaquetes y clases.


Separador de variables o métodos de una referencia.
Programa en Java
//********************************************************************
// Lincoln.java Author: Lewis/Loftus
// Demonstrates the basic structure of a Java application.
//********************************************************************
public class Lincoln
{
//-----------------------------------------------------------------
// Prints a presidential quote.
//-----------------------------------------------------------------
public static void main (String[] args)
{
System.out.println ("A quote by Abraham Lincoln:");
System.out.println ("Whatever you are, be a good one.");
}
}
Comentarios

• No afectan a la ejecución del programa


• Ayudan a la compresión del ser humano
• Deben proveer un buen entendimiento del código.
• No debe ser ambigua o entrar en mucho detalle
• Se puede generar documentación automática a través de la utilidad
javadoc
Palabras Reservadas en Java
abstract default goto* null switch
boolean do if package synchonized
break double implements private this
byte else import protected throw
case extends instanceof public throws
catch false int return transient
char final interface short true
class finally long static try
const* float native strictfp void
continue for new super volatile
while
Identificadores

• Inician con una letra


• Puede contener letras, números, _ y $
• Deben ser descriptivos y legible
• Si el nombre es compuesto por varias palabras debe iniciar con
minúscula y luego cada palabra con mayúscula.
promedio contador $test this_is_ok val1
2contador alto-ancho No/si itemActual
• Java es case sentive. Las letras minúsculas y mayúsculas son
diferentes
Variables y Asignación
Variables y Asignación

• Una variable es un nombre para una espacio en memoria que


almacenara un valor de un determinado tipo.
• Consiste de un tipo seguido de una lista de variables.
• Cada variable puede ser inicializada en la declaración.
• Puede incluir la palabra reservada final, en cuyo caso se convierte en
una constante y debe tener un valor asociado.
Variables y Asignación

Ejemplos:
• int total;
• double num1, num2 = 4.356, num3;
• char letter = ʻAʼ, digit = ʻ7ʼ;
• final int MAX = 45;
Variables
• Pueden surgir errores si las asignaciones no se hacen de manera
correcta.

• El compilador lanzará una mensaje de "variable no inicializada


(uninitialized variable)" cuando usa una variable que nunca se le ha
asignado un valor.
Variables
• La solución es asignar valor a la variable antes de utilizarla:

• NOTA: No confundir declaración de variables con asignación de


valores.
Ejemplo
//********************************************************************
// PianoKeys.java Author: Lewis/Loftus
//
// Demonstrates the declaration, initialization, and use of an
// integer variable.
//********************************************************************

public class PianoKeys


{
//-----------------------------------------------------------------
// Prints the number of keys on a piano.
//-----------------------------------------------------------------
public static void main (String[] args)
{
int keys = 88;

System.out.println ("A piano has " + keys + " keys.");


}
}
String concatenación
public class Facts {
//-----------------------------------------------------------------
// Prints various facts.
//-----------------------------------------------------------------
public static void main (String[] args) {
// Strings can be concatenated into one long string
System.out.println ("We present the following facts for your “ + "extracurricular
edification:");
System.out.println ();
// A string can contain numeric digits
System.out.println ("Letters in the Hawaiian alphabet: 12");
// A numeric value can be concatenated to a string
System.out.println ("Dialing code for Antarctica: " + 672);
System.out.println ("Year in which Leonardo da Vinci invented “ + "the parachute: " + 1515)
System.out.println ("Speed of ketchup: " + 40 + " km per year");
}
}
Conversión de datos
Conversión de Datos

q Por asignación
float money;
int dollars=25;
money = dollars;
q money = 25.0;

q Por promoción aritmética


float sum, result;
int count;
result = sum / count; //count es conv. a float
q Por casting
q dollars = (int) money;
Conversión de Datos
De A
byte short, int, long, float, double
short int, long, float, double
char int, long, float, double
int long, float, double
long float, double
float double

Conversiones siempre posibles


Conversión de Datos

De A
byte char
short byte, char
char byte, short
int byte, short, char
long byte, short, char, int
float byte, short, char, int, long
double byte, short, char, int, long, float

Conversiones probables dependiendo de valores


Promoción automática
• Las reglas de promoción se aplican a
qexpresiones que contienen valores de dos o más tipos primitivos
q valores de tipo primitivo pasados como argumentos a métodos.

• Cuando se realiza una operación, si un operando es entero (int) y el


otro es de coma flotante (double) el resultado es en coma flotante
(double).
Flujo de Programación
De código fuente a programa ejecutable
Empecemos: (1)
(1) Crear un archivo fuente:
○ Abrir un editor de texto y escriba el código que define la clase HolaMundo y luego guárdelo en un
archivo HolaMundo.java
○ El nombre del archivo y clase son case sensitive and deben coincidir exactamente (excepto la
parte .java)
Ejemplo de código

public class HolaMundo {

public static void main(String[] args){

System.out.print("Hola mundo, soy el primer programa en Java");


System.out.println("de " + args[0] + " " + args[1]);

}
}
Empezando: (2)
(2) Compilar el programa:
○ Compile HolaMundo.java usando el siguiente comando:

javac HolaMundo.java
¿Qué generó este comando?

(3) Ejecutar el programa:


• Ejecute lo siguiente:
java HolaMundo Gonzalo GAbriel
• Note que el comando es java, no javac, y se refiere a
HolaMundo , no HolaMundo.java
Algo más complicado

(1) Defina la clase SaludandoEnJava que:


○ Implemente el método main y
○ preguntar su nombre

○ finalmente deberá saludarlo: Hola mundo, soy el primer programa en Java de


nombre_estudiante

○ (2)Utilizar el IDE de su preferencia y realizar la misma tarea

También podría gustarte