Actualizado el 15 de Diciembre del 2018 (Publicado el 24 de Noviembre del 2018)
1.072 visualizaciones desde el 24 de Noviembre del 2018
552,9 KB
128 paginas
Creado hace 17a (28/05/2007)
11
Programación Orientada a
Objetos con Java.
T- Programación
22
CONCEPTOS GENERALES
Introducción al lenguaje Java
33
• Lenguaje orientado a objetos
– Encapsulación
– Herencia
– Polimorfismo
Método publico
Método privado
Atributo privado
Atributo publico
cambiomarchas
Interface
cambiomarchas
cambiomarchas
cambiomarchas
Polimorfismo
Encapsulación
Animal
Mamífero
Reptil
Canino
Felino
Doméstico
Lobo
Perdiguero
Caniche
Herencia
Introducción al lenguaje Java
44
• Lenguaje compilado e interpretado
CCóódigo fuente
digo fuente
Clase.java
Compilación. Compilador JIT
bytecode
bytecode
Clase.class
Interpretación. Maquina virtual de Java (JVM)
Resultados
Resultados
55
Variables
66
• Una variable es un nombre que contiene un valor que puede
cambiar a lo largo del programa.
• Hay dos tipos principales de variables:
– Variables de tipos primitivos. Están definidas mediante un valor
único.
– Variables referencia. Se refieren a una información más
compleja: arrays u objetos de una determinada clase
• Desde el punto de vista de su papel en el programa, las
variables pueden ser:
– Variables miembro de una clase: Se definen en una clase, fuera
de cualquier método. Pueden ser tipos primitivos o referencias.
– Variables locales: Se definen dentro de un método o más en
general dentro de cualquier bloque entre llaves {}. Pueden ser
también tipos primitivos o referencias.
Variables
77
• Pueden ser cualquier conjunto de caracteres numéricos y
alfanuméricos, excepto algunos caracteres especiales como
operadores o separadores ( , . + - * / ).
• Existe palabras reservadas las cuales tienen un significado
especial para Java y que no se pueden utilizar como nombres
de variables.
abstract
abstract
char
char
double
double
for
for
int
int
package
package
static
static
throws
throws
boolean
boolean
class
class
else
else
goto*
goto*
interface
interface
private
private
super
super
transient
transient
break
break
const*
const*
extends
extends
if
if
long
long
protected
protected
switch
switch
try
try
case
case
default
default
finally
finally
import
import
new
new
return
return
byte
byte
continue
continue
final
final
implements
implements
native
native
public
public
synchronized this
synchronized this
void
void
volatile
volatile
catch
catch
do
do
float
float
instanceof
instanceof
null
null
short
short
throw
throw
while
while
Tipos de datos
88
• Es un lenguaje fuertemente tipado.
• Existen dos tipos de datos que se pueden asignar a las
variables.
– Tipos Simples: Definidos por el lenguaje
– Tipos Referencia: Apuntan a objetos por medio de sus
posiciones de memoria.
Tipos de datos simples
Tamaño
Tamaño
Descripción
Descripción
99
Tipo de
Tipo de
variable
variable
Boolean.
Boolean.
Char.
Char.
Byte.
Byte.
Short.
Short.
Int.
Int.
Long.
Long.
Float
Float
1 byte
1 byte
2 bytes
2 bytes
1 byte
1 byte
2 bytes
2 bytes
4 bytes
4 bytes
8 bytes
8 bytes
4 bytes
4 bytes
Valores true y false
Valores true y false
Comprende el código ASCII
Comprende el código ASCII
Valor entero entre -128 y 127
Valor entero entre -128 y 127
Valor entero entre -32768 y 32767
Valor entero entre -32768 y 32767
Valor entero entre -2.147.483.648 y 2.147.483.647
Valor entero entre -2.147.483.648 y 2.147.483.647
Valor entre -9.223.372.036.854.775.808 y
Valor entre -9.223.372.036.854.775.808 y
9.223.372.036.854.775.807
9.223.372.036.854.775.807
De -3.402823E38 a -1.401298E-45 y de
De -3.402823E38 a -1.401298E-45 y de
1.401298E-45 a 3.402823E38
1.401298E-45 a 3.402823E38
De -1.79769313486232E308 a
De -1.79769313486232E308 a
-4.94065645841247E-324 y de 4.94065645841247E-324 a
-4.94065645841247E-324 y de 4.94065645841247E-324 a
1.79769313486232E308
1.79769313486232E308
Double
Double
8 bytes
8 bytes
Tipos de datos simples
1010
• boolean no es un valor numérico: sólo admite los valores
true o false. El resultado de la expresión lógica que aparece
como condición en un bucle o en una bifurcación debe ser
boolean.
• char contiene caracteres en código UNICODE (que incluye el
código ASCII), y ocupan 16 bits por carácter.
• byte, short, int y long son números enteros que pueden ser
positivos o negativos, con distintos valores máximos y
mínimos.
• Los tipos float y double son valores reales con 6-7 (float) y
15 (double) cifras decimales.
Tipos de datos simples
1111
• Conversiones de tipos
– Implícitas: Se realizan de modo automático de un tipo a otro
de más precisión, por ejemplo de int a long, de float a
double, etc.
byte a=40;
byte b=50;
byte c= 100;
int d=a * b / c;
a * b podría superar el rango definido
a * b podría superar el rango definido
para un byte. Java promociona
para un byte. Java promociona
automáticamente el resultado a int
automáticamente el resultado a int
– Explícitas: Son las conversiones de un tipo de mayor a otro de
menor precisión. A estas conversiones explícitas se les llama
cast.
int a;
byte b;
b = (byte) a;
– No se puede convertir un tipo numérico a boolean.
Tipos de datos referencia
1212
• Una referencia es una variable que indica dónde está en la memoria
del ordenador un objeto.
• Al declarar una referencia todavía no se encuentra “apuntando” a
ningún objeto en particular, luego se le asigna el valor null.
• Si se desea que esta referencia apunte a un nuevo objeto es
necesario utilizar el operador new. Este operador reserva en la
memoria del ordenador espacio para ese objeto (variables y
funciones).
• También es posible igualar la referencia declarada a un objeto
existente previamente.
Punto p1;
p1p1
null
p1=new Punto();
p1p1
Tipos de datos especiales
1313
class Array {
public static void main(String args[]) {
• Matrices
– Una matriz (array) es un grupo de variables del mismo
tipo a las que se hace referencia con el mismo nombre.
– Pueden ser de cualquier tipo.
– No pueden redimensionarse.
– Pueden tener una o más dimensiones.
– Cada elemento de la matriz tiene un índice que se utilizará
int month_days[];
month_days = new int[12];
month_days[0] = 31;
month_days[1] = 28;
month_days[2] = 31;
month_days[3] = 30;
month_days[4] = 31;
month_days[5] = 30;
month_days[6] = 31;
month_days[7] = 31;
month_days[8] = 30;
month_days[9] = 31;
month_days[10] = 30;
month_days[11] = 31;
System.out.println("April has " + month_days[3] + " days.");
para permitir su accesibilidad.
– El índice del primer elemento es 0.
int diasmes[] = new int[12];
int diasmes[] ={31,28,31,30,31,30,31,31,30,31,30,31};
}
}
Tipos de datos especiales
1414
matriz2D
matriz2D
0 1 2 3
0 1 2 3
0,00,0
1,01,0
1,11,1
2,02,0
2,12,1
2,22,2
3,03,0
3,13,1
3,23,2
3,33,3
class DosDimensiones {
public static void main(String args[]) {
int matriz2D[][] = new int[4][];
• Matrices multidimensionales
matriz2D[0] = new int[1];
– Son matrices de matrices
matriz2D[1] = new int[2];
matriz2D[2] = new int[3];
matriz2D[3] = new int[4];
int i, j, k = 0;
for(i=0; i<4; i++)
int matriz2D[][] = new int[5][4];
o
int matriz2D[][] = new int[4][];
matriz2D[0] = new int[5];
matriz2D[1] = new int[5];
matriz2D[2] = new int[5];
matriz2D[3] = new int[5];
for(j=0; j<i+1; j++) {
matriz2D[i][j] = k;
k++;
for(i=0; i<4; i++) {
for(j=0; j<i+1; j++)
System.out.print(matriz2D[i][j] + " ");
System.out.println();
}
}
}
}
Tipos de datos especiales
1515
• Cadenas de caracteres.
– String es el tipo cadena.
– No es un tipo de datos simple.
– Tampoco es un array de char.
– Es un objeto con sus atributos, métodos y constructores.
String str = "esto es una cadena";
String str = new String ("esto es una cadena");
Visibilidad de las variables
1616
• Se entiende por visibilidad o scope de una variable, la
parte de la aplicación donde dicha variable es accesible.
• Todos las variables deben estar incluidas en una clase.
• Las variables declaradas dentro de unas llaves {}, es
decir dentro de un bloque, son visibles y existen dentro
de estas llaves.
– Las variables declaradas al principio de una función existen
mientras se ejecute la función
– Las variables declaradas dentro de un bloque if no serán
válidas al finalizar las sentencias correspondientes a dicho
if
– Las variables miembro de una clase (es decir declaradas
entre las llaves {} de la clase pero fuera de cualquier
método) son válidas mientras existe el objeto de la clase.
Operadores
1717
• OPERADORES ARITMÉTICOS
Son operadores binarios
(requieren siempre dos
operandos) que realizan las
operaciones aritméticas
habituales .
• OPERADORES DE ASIGNACIÓN
Los operadores de asignación
permiten asignar un valor a
una variable .
Nombre
Suma
Resta
Producto
División
Representación
+
-
*
/
Resto de la div.
%
Operador
uso
equivalente
+=
-=
*=
/=
%=
op1 += op2
op1= op1 + op2
op1 -= op2
op1= op1 - op2
op1 *= op2
op1= op1 * op2
op1 /= op2
op1= op1 / op2
op1 %= op2
op1= op1 % op2
Operadores
1818
• OPERADORES INCREMENTALES
incrementan o decrementan el
valor de una variable en una
unidad.
nombre
preincremento
predecremento
postincremento
postdecremento
uso
++ i
-- i
i ++
i --
equivalente
i = i + 1
i = i - 1
i = i + 1
i = i - 1
a = 5;
b = 2;
a = ++ b;
a = 5;
b = 2;
a = b ++;
Después de la ejecución
a = 3 y b = 3
Después de la ejecución
a = 2 y b = 3
Operadores
1919
Operador
uso
nombre
>
>=
<
<=
==
!=
op1 > op2
Mayor
op1 >= op2
Mayor o igual
op1 < op2
Menor
op1 <= op2
Menor o igual
op1 == op2
Igual
op1 != op2
distinto
OPERADORES RELACIONALES
realizan comparaciones de
igualdad, desigualdad y
relación de menor o mayor.
El resultado de estos
operadores es siempre un
valor boolean.
2020
Operadores
Operador
Nombre
Acción
&
|
!
&&
||
AND
OR
NOT
True si los dos son true
True si uno de los dos es true
Lo contrario
AND en cortocircuito
OR en cortocircuito
True si los dos son true. Si el primero es false no se
evalúa el segund
Comentarios de: Programación Orientada a Objetos con Java (0)
No hay comentarios