Sunteți pe pagina 1din 70

Programación Orientada a

Objetos con
JAVA
Historia de Java
 Sun anunció formalmente a Java en 1995.
 Actualmente Java se utiliza para desarrollar
aplicaciones empresariales a gran escala, para
mejorar la funcionalidad de los servidores de WWW
(las computadoras que proporcionan el contenido que vemos
en nuestros navegadores Web), para proporcionar
aplicaciones para los dispositivos domésticos
(teléfonos celulares, radiolocalizadores y asistentes
digitales personales) y para muchos otros propósitos.
Historia de Java
 El JDK incluye herramientas para construcción de interfaces
gráficas de usuario (GUI, Graphical User Interface), trabajo
en red e implantación de applets, pequeños programas de
Java que agregan contenido dinámico a las páginas Web.
 La independencia de la plataforma es una razón importante
del éxito de Java. Sus programas se compilan en códigos de
bytes (bytecodes) y pueden ejecutarse en cualquier
computadora con un intérprete o una máquina virtual de Java
(JVM, Java Virtual Machine), proporcionando un ambiente
en tiempo de ejecución para ejecutar programas de Java.
Historia de Java
 Java es un nuevo lenguaje de programación
orientado a objetos desarrollado por Sun
Microsystems
 Descrito como: Simple, orientado a objetos,
distribuido, interpretado, robusto, seguro, de
arquitectura neutral, portable, de alto rendimiento,
multitarea y dinámico.
Características de Java
 Simple:
 Elimina la complejidad de los lenguajes como "C", mantiene las
facilidades básicas de lenguaje en un mínimo y proporciona un gran
número de extras con las librerías de clases.
 Orientado a objetos:
 Encapsulacion
 Herencia
 Polimorfismo
 Distribuido:
 Capacidades de interconexión TCP/IP, además de los protocolos http,
ftp.
Características de Java
 Robusto:
 Busca errores en tiempo de compilación como en
ejecución.
 El sistema de Java maneja la memoria de la computadora
por lo que no es necesario reocuparse por apuntadores,
memoria que no se esté utilizando, etc.
 Portable:
Como el código compilado de Java (conocido como
bytecode) es interpretado, un programa compilado de Java
puede ser utilizado por cualquier computadora que tenga
implementado el intérprete de Java.
Características de Java
 Seguro:
El sistema de Java tiene ciertas políticas que evitan se puedan codificar
virus con este lenguaje. Existen muchas restricciones, especialmente para
los applets, que limitan lo que se puede y no puede hacer con los recursos
críticos de una computadora.
 Arquitectura neutral:
Compila su código a un archivo objeto de formato independiente.
Características de Java
 Multitarea:
El lenguaje soporta la concurrencia a través de hilos,
o sea que puede ejecutar varios procedimientos en
paralelo.

 Dinámico:
Java no requiere compilar todas las clases de un
programa para que funcione, si se realiza una
modificación a una clase, Java se encarga de
encontrar cada clase.
Internet y World Wide Web
 Internet (red global de computadoras) desarrollada
hace más de cuatro décadas, patrocinada por el
Departamento de Defensa de los Estados Unidos.
 En principio, conectaba los sistemas de cómputo
principales de una docena de universidades y
organizaciones de investigación, hoy día, es utilizada
por cientos de millones de computadoras en todo el
mundo.
Internet y World Wide Web
 World Wide Web permite a los usuarios de
computadoras localizar y ver documentos basados en
multimedia, sobre casi cualquier tema, a través de
Internet.
 Con la introducción de WWW, Internet se ha
convertido explosivamente en uno de los principales
mecanismos de comunicación en todo el mundo.
 Internet y WWW se encuentran, entre las creaciones
más importantes de la humanidad.
Pasos para editar y ejecutar un
programa en Java
Elementos básicos del
lenguaje Java
Definición del método main:
public static void main ( String args[ ] )
{
}

NOTA: Es obligatorio que los tipos de los parámetros


de main y el tipo de resultado sean los mostrados
arriba.
Tipos de datos

 Primitivos:
 byte, short, int, long, float, double, char,

boolean
 Definidos por el usuario
 Se refiere a los nuevos tipos de objeto,

llamados clases
byte Entero 8 bits -128 a 127
short Entero 16 bits -32,768 a 32767
int Entero 32 bits -2,147,483,648 a
2,147,483,647
long Entero 64 bits -(2^63) a (2^63)-1
float Punto flotante, 32 6 dígitos significativos
bits 10^(-46) a (10^38)
double Punto flotante, 15 d.s.
64 bits 10^(-324) a 10^308
char Caracter Unicode
boolean Variable booleana True & False
Literales
 Por default, una constante entera es de tipo int.
 Por default, una constate con decimales es double.
 Para cambiar estos default podemos hacer uso de las
literales l y f.
 ejemplos:
123l, se cambia a long
23.8f, se cambia a float
Identificadores
 Se usan para nombrar variables, constantes,
métodos, clases, etc.
 Deben iniciar con letra (a-z, A-Z)
 Solo pueden contener letras, números, underline (_)
y$
 Pueden ser de cualquier longitud
 Se hace diferenciación entre mayúsculas y
minúsculas
Estándares para
identificadores
 Por estándar, se utiliza la primera letra minúscula
para nombres de métodos, variables y constantes.
 Por estándar, se utiliza la primera letra mayúscula
para nombres de clases.
 Si el nombre esta compuesto por más de una palabra
se recomienda se utilice mayúscula en la primera
letra de cada una de las palabras (p.e.
ImpuestoPredial, EmpleadoVentas).
Identificadores
 Ejemplos:
Válidos no válidos
Empleado 2004ventas
x _area
gastos2004 tu edad
Palabras clave
abstract default if null switch
boolean do implements package synchronized
break double import private this
byte else instanceof protected throw
case extends int public throws
catch final interface return try
char finally long short void
class float native static volatile
continue for new super while
Secuencias de escape
\n carácter de nueva línea
\t tabulador horizontal
\r retorno de carro
\\ carácter de barra inclinada
\’ carácter comilla simple
\” carácter de dobles comillas
\0 caracter nulo
Comentarios

/* Heredado de C */
// Heredado de C++
Constantes

Son valores que no cambian mientras el programa


está ejecutando.
Ejemplos:

e
pi
velocidad de la luz
aceleración debido a la gravedad
Constantes (cont.)
• Enteras: Se representan en notación decimal,
octal o hexadecimal
 Para octales: prefijo 0
 Para Hexadecimales: prefijo 0x
• Tipo carácter: Se encierran entre dos comillas
simples (por ejemplo, ‘x’)
• Tipo cadena: Se encierran entre dobles comillas
(por ejemplo, “cadena”)
Constantes (cont.)

 Un enfoque es escribir los valores directamente en el


programa.
 Ejemplos:
area = 3.1416 * r * r ;
energia = masa * altura * 9.8f;
Constantes (cont.)
 Otro enfoque es declarar tales números como
variables que tienen un valor constante y asignarles
un nombre.
final tipo_dato constante = valor;
Ejemplo:
final float g = 9.8f;
….
energia = masa * altura * 9.8f;
Variables
 ¿Qué es?
 Es un espacio en memoria que nos sirve para
almacenar información.
 El tamaño de este espacio de memoria varía
dependiendo de la información que se desea guardar,
esto es, depende del tipo de dato con que se declare
la variable.
 El nombre con que se referencia una variable sigue
la regla para identificadores.
Ver página 45
Declaración de variables
Tipo_dato lista_de_variables;

 Donde lista_de_variables puede ser el nombre de


una variable o una lista de variables separadas por
comas.
 No se permite el uso de palabras reservadas ni
reutilizar nombres de identificadores.
 Java es sensible a mayúsculas
Declaración de variables
(cont.)
 Ejemplos:
int num3;
int x = 0, num2 = 5;
int num1 = num2;
Operadores aritméticos
 Aritméticos
+ suma
- resta
* multiplicación
/ división
% residuo de la división
++ incremento en uno
-- decremento en uno
/ para datos enteros, regresa la parte entera del resultado

Ver página 46
Operadores
aritméticos(cont.)
 Ejemplos:
7/3 regresa 2
int x = 7/3; asigna a x un 2
double y = 7/3; asigna a y un 2.0
double y = 7/3.0; asigna a y un 2.333
Operadores relacionales y de
igualdad
 Relacionales:
< x>y x es mayor que y
> x<y x es menor que y
<= x <= y x es menor o igual que
y
>= x >= y x es mayor o igual que y
 De igualdad:
== x == y x es igual a y
!= x != y x no es igual a y
Operadores lógicos(cont.)

&& AND condicional


|| OR condicional
! NOT lógico o negación lógica

Ver página 167


Operadores de asignación
 Común: =
 Compuestos: +=, -=, *=, /=
Expresión equivale a expresión
c += a c=c+a
Modifican el valor de la variable situada en el lado
izquierdo del operador.
Prioridad de los operadores
Nivel operador asociatividad
1 !,--,++,-(negativo), + (positivo) de derecha a izquierda
• *, /, % de izquierda a derecha
• +, - de izquierda a derecha
• <, <=, >, >= de izquierda a derecha
• ==, != de izquierda a derecha
• && de izquierda a derecha
• || de izquierda a derecha
• =, +=, -=,*=, /=, %= de derecha a izquierda
Expresiones
int a = 5; a=5
b = 8 + a++; b = (8 + 5) = 13, a = 6
c = 8 + ++a; c = (8 + 7) = 15, a = 7

Ver página 46
Expresiones (ejercicios)
 Para las variables int a = 5, p = 6 y q = 3 y las
variables double b, y r, evaluar las siguientes
expresiones:
r = 5 – 3 * 9 / 2 + ++p;
b = 5 / 2 + --a;
r = q++ -p - +2;
Conversiones de tipo
(casting)
 Es un proceso que convierte un tipo de dato a otro
tipo de dato.
 Tipos de casting:
 Implícito.
 Explícito.
Conversiones de tipo (cont.)
 Casting implícito:
Se realiza de forma automática cuando un tipo de
menor capacidad se asigna a un tipo de mayor
capacidad, también llamado promoción numérica.
byte -> short -> int -> long -> float -> double
ejemplo:
double n;
int x = 7; n = 2.0
n = x / 3;
Conversiones de tipo (cont.)
 Casting explícito:
Es necesario utilizar un operador de tipo cast.
Ejemplo:
double n;
int a = 7;
n = (double) a / 3; n = 2.333
Conversiones de tipo (cont.)
int x = 6, y = 10;
double cociente;

Como solución se usaría la siguiente conversión


de tipo:
cociente = (double) x / y;
Ejercicios
 ¿Cuál de las siguientes formas es la forma
correcta de realizar el casting y por qué?
a) b)
int n; int n;
double x = 2.1; double x = 2.1;
n = x; n = (int) x;
Funciones básicas
(predefinidas)
 La clase Math proporciona una colección de
métodos que le permitirán realizar cálculos
matemáticos comunes.
 Para usar cualquiera de las funciones o constantes, la
forma general de uso es la siguiente:
variable = Math.función( parámetros);
variable = Math.constante;
 O usarse como argumento, como parte de una
expresión,etc.
Funciones básicas
(predefinidas, cont.)
 Ejemplos:
y = Math.sqrt( x ) * x;
y = Math.PI * Math.pow( radio, 2 );
calcula( Math.round(y) , 20, valor);
Funciones básicas
(predefinidas)
abs( x ) pow( x, y )
ceil( x ) sin( x )
cos( x ) sqrt( x )
exp( x ) tan( x )
floor( x )
log( x )
max( x, y )
min( x, y ) ver página 191
Funciones básicas
predefinidas (cont.)
 Ejercicios:
Para variables int i = 4 y j = 2, evalúa las siguientes
funciones predefinidas:
abs( i – 2 * j )
sqrt( i * i + j * j )
pow( i, j )
Entrada y salida estándar
 Para leer y escribir de/en la consola se utiliza la clase
System.

 System.in: permite introducir datos del teclado.


 System.out: permite enviar datos a la pantalla
Escritura
 Print escribe y no brinca de línea
 Println escribe y brinca de línea

Nota: todo lo que se escribe se debe convertir a String


Primer programa ejemplo
// Programa para imprimir texto en la pantalla
public class Bienvenido1
{
public static void main ( String args[] )
{
System.out.println ( “ Bienvenido a la
programación en Java! ” );
} //fin de main
} //fin de la class Bienvenido1
1 // Ejemplo1: Bienvenido.java

3
// Imprimiendo multiples lineas.
Outline
4 public class Bienvenido // clase principal
 Welcome4.java
5 {

6 // método main empieza la ejecución de la aplicación Java  main


7 public static void main( String args[] )
 printf

8 {

9 System.out.print( System.out.print
despliega datos formateados
10 "¡Bienvenido a" + "\n la programacion en Java!" );
en pantalla.
11

12 } // fin metodo main 


Program
13

14 } // fin class Bienvenido


output
¡Bienvenido a
la programación en Java!
Lectura estándar

• Se leen datos desde el teclado.


• Utilice el compilador jdk1.5.0_04
• Ver el siguiente ejemplo
Lectura estándar
 Otra forma de dar entrada a datos desde el teclado es
la siguiente:
 Use la clase BufferedReader y el método readLine()
como se muestra a continuación:

Private BufferedReader teclado;


Teclado = new BufferedReader (new InputStreamReader(System.in,1);

 Nota: el 1 indica el tamaño del buffer (puede omitirse).


Lectura estándar
 Para leer la línea de datos, se utiliza:

String cadena = teclado.readLine();


import java.io.*; //importa el paquete java.io

public class nombre


{
public static void main(String args[]) throws IOException //excepciones que lanza el método
{
private BufferedReader teclado;
String nombre; //declara una variable cadena

//se crea la conexión con el teclado


teclado = new BufferedReader(new InputStreamReader(System.in),1);

System.out.println( "Cual es tu nombre?");


nombre = teclado.readLine();

System.out.print("Felicidades ");
System.out.print(nombre);
System.out.println(" ! se leyo tu nombre del teclado");
System.out.println("Bye");
}
}
import java.io.*; //importa el paquete java.io

public class Cuadrado


{
public static void main(String args[]) throws IOException //excepciones que lanza el método
{
private BufferedReader teclado;
String nombre, dato; //declara una variable cadena
float numero;

//se crea la conexión con el teclado


teclado = new BufferedReader(new InputStreamReader(System.in));

System.out.println( "Cual es tu nombre?");


nombre = teclado.readLine();
System.out.println( “Dame un numero real (con punto decimal)");
dato = teclado.readLine();

//convertir el string a numero


numero = Float.parseFloat(dato);
// se despliegan resultados

System.out.print(“El cuadrado del numero que ");


System.out.print(nombre);
System.out.println(" tecleo es: “ + (numero * numero));
System.out.println("Bye");
}
}
Instrucciones
condicionales
Instrucción if - else
 Estatuto if :
if (condición)
instrucción uno;
else
instrucción dos;

Nota: las instrucciones uno o dos pueden ser compuestas, en


la forma { inst1; … instn ;}
if simple
 También puede omitirse la parte else:

if (condición)
instrucción;
Operadores relacionales y de
igualdad
Operadores Operadores de Ejemplo de
algebraicos igualdad y una condición Significado de una
de igualdad y relacionales en en Java condición en Java
relacionales Java
Operadores de igualdad
= == x == y x es igual a y
≠ != x != y x no es igual a y
Operadores relacionales
> > x > y x es mayor que y
< < x < y x es menor que y
≥ >= x >= y x es mayor que o igual a y
≤ <= x <= y x es menor que o igual a y
1 // Fig. 2.15: Comparison.java
2 // Compara enteros usando estatutos if, operadores relacionales
Outline
3 // y operadores de igualdad.
4 import java.util.Scanner; // uso de la class Scanner
5
6 public class Comparison
7 {
8 // el método main comienza la ejecución de la aplicación Java  Comparison.jav
9 public static void main( String args[] )
a
10 {
11 // crea una variable Scanner para obtener entrada desde la ventana de  (1 of 2)
comandos
12 Scanner input = new Scanner( System.in );  1. Class
13 Comparison
14 int number1; // primer número a comparar
15 int number2; // segundo número a comparar
1.1 main
16
17 System.out.print( "Escriba el primer entero: " ); // prompt
18 number1 = input.nextInt(); // leer el primer número del usuario 1.2 Declarations
19
20 System.out.print( "Escriba el segundo entero: " ); // prompt 1.3 Input data
21 number2 = input.nextInt(); // leer el segundo número del usuario
22 Al evaluarse la igualdad, (nextInt)
23 if ( number1 == number2 ) despliega el resultado
24 System.out.printf( "%d == %d\n", number1, number2 );
usando printf. 1.4 Compare
25 two inputs using
26 if ( number1 != number2 )
if statements
27 System.out.printf( "%d != %d\n", number1, number2 );
28
Compara dos números usando
29 if ( number1 < number2 )
30 System.out.printf( "%d < %d\n", number1, number2 );
operador relacional <.
31
32 if ( number1 > number2 )
Outline
33 System.out.printf( "%d > %d\n", number1, number2 );
34
35 if ( number1 <= number2 )
Compara dos números usando
36 System.out.printf( "%d <= %d\n", number1, number2 );
operadores relacionales >, <=
37
y >=.
 Comparison.java
38 if ( number1 >= number2 )  (2 of 2)
39 System.out.printf( "%d >= %d\n", number1, number2 );
40
41 } // fin método main
42
 Program output
43 } // fin class Comparison

Escriba el primer entero: 777


Escriba el segundo entero: 777
777 == 777
777 <= 777
777 >= 777

Escriba el primer entero: 1000


Escriba el segundo entero: 2000
1000 != 2000
1000 < 2000
1000 <= 2000

Escriba el primer entero: 2000


Escriba el segundo entero: 1000
2000 != 1000
2000 > 1000
2000 >= 1000
Errores comunes de
programación
 Olvidar el paréntesis derecho/izquierdo en la
condición del estatuto if.
 Confundir el operador de igualdad == con el
operador de asignación =.
 Contener espacios en los operadores relacionales ==,
!=, >= y <= entre sus símbolos = =, ! =, > = y < =,
respectivamente.
Errores comunes de
programación
 Colocar al revés los operadores !=, >= y <=, =!, => y
=<.
 Colocar un punto y coma inmediatamente después
del paréntesis derecho de la condición del estatuto if.

Nota: todos estos son errores de compilación.


Instrucción switch
switch (expresion)
{ case constante1 : sentencia1;
case constante2 : sentencia2;

case constanten : sentencian;


default : sentencia;
}
Instrucción switch (cont.)
switch (calif)
{ case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6: System.out.println(“REPROBADO”); break;
case 7:
case 8: System.out.println(“ALUMNO REGULAR”); break;
case 9:
case 10: System.out.println(“ALUMNO EXCELENTE”); break;
default: System.out.println(“CALIFICACION INVALIDA”); break;
}
Notas generales
 La condición de un if debe estar dentro de paréntesis.
 Si el if o el else tienen varias sentencias, estos deben
estar entre llaves {}.
 Todas las sentencias dentro del if o dentro del else
deben ser seguidos por un punto y coma.
 La expresión a evaluar dentro de un switch debe de
ser int, char, short o byte.
 Es importante no olvidar la instrucción break en
cada caso a trabajar dentro del switch.
Instrucciones repetitivas
( ciclos )
Tipos de ciclos

• while
• for
• do-while
Ciclo while
while ( condición )
instrucción;

 El cuerpo del ciclo while puede ser compuesto y


para ello debe utilizar las llaves {inst1; …; inst2; }
 Ver ejemplo:
Ciclo for
for (inicialización; condicion; actualización)
instrucción;

Donde instrucción puede ser más de una instrucción


encerradas entre llaves {}.

S-ar putea să vă placă și