Professional Documents
Culture Documents
estructurada.
Programación estructurada.
o SECUENCIA.
o SELECCION.
o ITERACION.
Beneficios:
Los programas son mas faciles de entender, ya que pueden ser leidos de
forma secuencial
optimizacion)
Inconvenientes:
unico bloque de programa, que cuando se hace demasiado grande puede resultar
Esto significa que no es un lenguaje especifico, o una tecnologia, sino una forma
de los lenguajes que usamos hoy dia lo soportan o estan disenados bajo ese
.que vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque
cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un
(porque, aunque sean iguales, cada uno es un objeto distinto). Este es el modelo
Java
Que es Java?
estan disenados para ser compilados a codigo nativo, Java es compilado a codigo
(usando normalmente un compilador JIT) lo que le permite ser compilado una sola
pero tiene un modelo de objetos mucho mas simple y elimina herramientas de bajo
Java esta solo lejanamente emparentado con JavaScript, aunque tengan nombres
grafico:
Aplicación Java
Librerías
Sistema Operativo
Hardware
Definiciones:
Ej:
[<Atributos>]
[<Constructor>]
[<Metodos>]
2. Objeto: instancia de una clase. Creacion unica a partir del plano o clase, con
atributos independientes.
Ej:
Ej:
//Atributos
String nombre;
int patas = 4;
//Metodos
System.out.println(͞guau!͟);
[<codigo>]
}
4. Constructor: estructura dentro de la definicion de clase que permite instanciarla
Ej:
String nombre;
int patas = 4;
System.out.println(͞guau!͟);
nombre = n;
[<codigo de inicializacion>]
niveles:
En paquetes: descartar las clases que conforman al paquete para su visualizacion global.
6. Herencia: proceso por el cual una clase hija obtiene los miembros de otra clase
padre
Ej:
String nombre;
int patas = 4;
System.out.println(͞guau!͟);
nombre = n;
}
J. Polimorfismo: posibilidad de los objetos en comportarse como definidos por
multiples clases. Por ejemplo, un objeto ͞pastor aleman͟ se puede comportar como
Ej:
Ej:
//...
//Sobrecarga de metodos
comer(comida);
//Sobrecarga de constructores
public Perro(){
nombre = ͞Bobby͟;
clase hija. Las condiciones para que el metodo sea sobreescrito son:
Ej:
//...
nombre = n;
//...
Lenguajes de programación II
nombre = n;
//...
contenedor como todos los elementos contenidos deben existir y estar enlazados.
: io
13.Recolección de basura
heap.
int i = 1;
Ya que el compilador se entera que los tipos son incompatibles, Perro e int.
o uparse realmente
Lenguajes de programación II
This y Super
Ej:
String nombre;
this.nombre = nombre;
herencia.
Ej:
String nombre;
this.nombre = nombre;
//...
nombre = n;
//...
super.setNombre(String nombre);
Modificadores de acceso
Manejo de paquetes
Ej:
package com.celti.domain;
String nombre;
this.nombre = nombre;
clases.
nombre){
Sentencia import: la palabra reservada import permite hacer uso de clases que
package com.uni.domain;
import com.uni.domain.Mamifero;
import java.awt.*;
f.setVisible(true);
Miembros de clase
Sentencia static: la palabra reservada static nos indica que un miembro (metodo
proporcionar el valor del numero PI, metodos como el calculo del seno, coseno y
tangente (entre otros) sin necesidad de crear un objeto para ello. De no ser asi,
entonces deberiamos instanciar un objeto a partir de la clase Math cada vez que
Ej:
public class Calculador{
double radio = 4;
Por otro lado se debe tomar en cuenta que si un miembro pertenece a la clase (en
p1.nombre = ͞Bob͟;
p2.nombre = ͞Chip͟;
p3.nombre = ͞Speedy͟;
agregado:
System.out.println(p1.nombre);
System.out.println(p2.nombre);
System.out.println(p3.nombre);
// Speedy
// Speedy
// Speedy
Constantes
Ej:
//...
}
En un metodo: final indica que el metodo no puede ser sobreescrito
Ej:
En un atributo: indica que el atributo es constante y una vez reciba el primer valor
Ej:
Comentarios en Java.
Una declaración es una o más líneas de código terminadas por un punto y coma
(;). Ejemplo:
totales = a + b + c + d + e + f;
lo cual es equivalente a:
totales = a + b + c +
d + e + f;
cierran { }. Ejemplo:
x = y + 1;
y = x +1;
Identificadores.
Los identificadores son usados para dar nombre a las clases, los métodos y los
símbolo del dólar $. Un identificador nunca puede empezar con un número para
5a Prueba-Inicial numero/casa
Normas:
en minúscula.
Por ejemplo:
miEdadActual = 18;
ejemplo:
MiPrimerPrograma();
ejemplo para una variable es no coincidir con ciertas palabras restringidas que
tiene el lenguaje.
Literales
ejemplo:
caracteres.
Variables y constantes
Variables miembro
Una clase en Java puede contener variables y métodos. Las variables pueden ser
int i;
public Numero() {
i = 10;
int suma;
suma = i + j;
}
La clase Numero contiene una variable (i) y dos métodos, Numero() que es el
pero fuera del cuerpo de cualquier método de esa clase. Si se declara dentro de
un método, será una variable local del método y no una variable miembro de la
clase.
Para delimitar los bloques de sentencias compuestas en Java se usan dos llaves
{}. Las variables sólo son válidas desde el punto donde están declaradas hasta el
nombre:
class AmbitoVariable {
Variables de Instancia
sin anteponerle la palabra clave static, hace que sea una variable de instancia en
menos, que cualquier objeto instanciado de esa clase contiene su propia copia de
toda variable de instancia, es decir, como un objeto es una instancia de una clase,
instancia.
la variable.
Ejemplo:
objeto.laVariableDeInstancia;
Variables Estáticas
momento determinado se puede querer crear una clase en la que el valor de una
variable de instancia sea el mismo (y de hecho sea la misma variable) para todos
los objetos instanciados a partir de esa clase. Es decir, que exista una única copia
static.
Constantes
En Java, la palabra clave final se utiliza para indicar que una variable debe
class Circulo {
...
}
Si se usa la palabra clave final con una variable o clase estática, se pueden crear
La manera mas habitual de declarar una variable siempre contiene dos elementos,
También se puede declarar en una misma instrucción mas de una variable del
mismo tipo, separadas por una coma, al igual que se puede inicializar una
int valor;
Tipos de variable
Las variables en Java deben tener un tipo de dato asociado. El tipo de dato de esa
variable indicara los valores que la variable puede contener y las operaciones que
se pueden realizar con ella. Podemos diferenciar los datos en Java en dos
Los tipos primitivos contienen un sólo valor e incluyen los tipos como los enteros,
Tipos primitivos:
Logicos: boolean
Textual: char
Los tipos de datos lógico poseen dos literales: true y false y se inicializa con el
valor false;
Los tipos de datos textual deben poseer su valor encerrado en comillas simples ͚ ͛
Los tipos de dato enteros poseen tres formas: decimal (9), octal (0JJ) y
Los tipos de dato flotante incluyen un punto en su valor para indicar que son
Tipos referenciados
Más allá de los tipos de datos primitivos, tenemos los tipos de datos referenciados.
Los tipos referenciados se llaman así porque el valor de una variable de referencia
es una referencia (un puntero) hacia el valor real. En Java tenemos los arrays, las
public MiFechaDeNacimiento(){͙}
MiFechaDeNacimiento.
Continuación clase 4. Sentencias de control
variable.
Las sentencias de iteración sirve para que el programa ejecute una o mas
lineal.
Sentencias de selección
IF
if (condicion)
sentencia1;
else
sentencia2;
int a, b;
//͙..
if(a < b)
a = 0;
else
b = 0;
hace igual a cero. En ningún caso se asignara a ambas variables el valor cero.
Importa destacar que solo una sentencia puede aparecer inmediatamente
un bloque.
int a, b,c;
//͙..
if(a < b)
a = 0;
c = 0;
else
b = 0;
c = 1;
IF ANIDADOS
Ejemplo:
if (i == 10)
if(j <20)
a = b;
if (k >100)
c = d; // este if esta
else
else
IF-ELSE-IF MULTIPLES
siguiente:
if (condicion)
sentencia;
else if (condicion)
sentencia;
else if (condicion)
sentencia;
.
.
else
sentencia;
actúa como una condición por defecto, es decir, si todos los demás
hubiera un else final y todas las demás condiciones fueran falsas, entonces no
class IfElseMulitple {
String estacion;
estacion = "Invierno";
else
estacion = "Primavera";
else
estacion = "Verano";
else
estacion = "Otoño";
else
estacion + ".");
SWITCH
una alternativa mejor que una larga serie de sentencias if-else-if. El formato
switch (expresion) {
case valor1;
// Secuencia de sentencias
breake; ͙.
case valor2;
// secuencia de sentencias
breake;
default;
La expresión debe ser del tipo byte, short, int o char; cada uno de los valores
expresión. Cada uno de estos valores debe ser un literal único, es decir, una
compara el valor de la expresión con cada uno de los valores constantes que
fuera del switch. Es importante destacar que una sentencia switch es mas
class EjemploSwitch {
public static void main(String args[]) {
switch(i) {
case 0:
System.out.println("i es cero.");
break;
case 1:
System.out.println("i es uno.");
break;
case 2:
System.out.println("i es dos.");
break;
case 3:
System.out.println("i es tres.");
break;
default:
i es cero
i es uno
i es dos
i es tres
i es mayor que 3
i es mayor que 3
Sentencias de iteración.
WHILE
while (condicion) {
class While {
int n = 1;
while(n <= J) {
n++;
Numero 1
Numero 2
Numero 3
Numero 4
Numero 5
Numero 6
Numero J
while(a > b)
System.out.println("Esto no se imprimirá!");
DO ʹ WHILE
inicialmente falsa, el cuerpo del bucle no se ejecutar ni una sola vez. Sin
embargo, puede haber casos en los que se quiera ejecutar el cuerpo del bucle
do {
} while (condicion);
En cada iteración del bucle do-while se ejecuta en primer lugar el cuerpo del
class DoWhile {
int n = 1;
do {
n++;
La salida después de la ejecución será la misma que arrojó el bucle while del
ejemplo anterior.
normalmente se desea que el cuerpo del menú se ejecute al menos una vez.
FOR
llaves.
class For {
La salida después de la ejecución será la misma que arrojó el bucle while y dowhile
return.
BREAK
La sentencia breake tiene tres usos en Java. En primer lugar, como hemos
segundo lugar se puede utilizar para salir de un bucle y, tercero, se puede usar
class BreakeUso {
if(i == 8)
System.out.println("Ciclo completo.");
A pesar de que el ciclo está programado para que realice 100 iteraciones, al
encontrarse con la sentencia if y verificar que i = 8, entonces el ciclo finaliza
CONTINUE
Algunas veces es útil forzar una nueva iteración del bucle sin haber concluido
produzca un salto desde el cuerpo del bucle hasta el final del bucle. La
utiliza la sentencia continue para hacer que se impriman dos números en cada
línea:
class Continue {
if (i%2 == 0)
continue;
System.out.println("");
01
23
45
6J
89
RETURN
class Return {
boolean t = true;
if(t)
System.out.println("Esto no se ejecutará");
}
La salida del programa es la siguiente:
engañar al compilador.
Clase 5. Estructuras Estáticas y dinámicas de datos
Array
tipo, y pueden tener una dimensión igual a uno o mayor. Para acceder a un
Arrays unidimensionales
tipo. Para crearlo, se debe declarar una variable array del tipo deseado. La
tipo nombre_variable [ ] ;
Donde tipo declara el tipo básico del array, que determina el tipo de cada
elemento del mismo. Por lo tanto, el tipo básico determinara que tipo de datos
esta en null, es decir, que no tiene ningún valor. Para que exista el array
siguiente manera:
dias_del_mes[1] = 28;
System.out.println(dias_del_mes[3]);
Línea El siguiente programa resume las ideas anteriores, creando un array
class Array
dias_del_mes[0] = 31;
dias_del_mes[1] = 28;
dias_del_mes[2] = 31;
dias_del_mes[3] = 30;
dias_del_mes[4] = 31;
dias_del_mes[5] = 30;
dias_del_mes[6] = 31;
dias_del_mes[J] = 31;
dias_del_mes[8] = 30;
dias_del_mes[9] = 31;
dias_del_mes[10] = 30;
dias_del_mes[11] = 31;
El programa imprimirá:
Class ArrayInicializado
Arrays multidimensionales
En Java, los arrays multidimensionales son realmente arrays de arrays. Para
declarar una variable de este estilo, hay que especificar cada índice adicional
int month_days[][] = {
{ 1 , 2, 3},
{ 4 , 5, 6},
{ J , 8, 9},
};
tipo [ ] nombre_variable ;
al igual que:
Vectores
condición que se debía considerar era el tamaño exacto del array a utilizar; si
array cuya dimensión sea más grande que el número de elementos que
cuanto crecerá una vez haya alcanzado el tamaño máximo. Por ejemplo:
existente en el vector.
Ejemplo:
vector.addElement(͞Elemento͟);
insertado.
Por ejemplo, si queremos insertar la palabra ͞Hola͟, en la posición 5 haremos lo
siguiente:
vector.insertElementAt(͞Hola͟,5);
vector.removeElement(͞Hola͟)
vector.removeElementAt(5);
System.out.print(v.elementAt(i));
Otros
capacity().
estructuras.
Para esto existen los algoritmos de búsqueda. Entre los más frecuentemente
consecuencia la demora del tiempo de ejecución del programa, es por esto que
este problema.
búsqueda finaliza con éxito. De no ser así, pudo haber sucedido que el
puede suceder que el elemento del medio sea menor que el buscado por lo que
Algoritmo de ordenamiento.
y Selección
Algoritmos de inserción
En este algoritmo se consideran uno a la vez los elementos que van a ser
siguiente manera:
Algoritmos de intercambio
En este algoritmo se toman los elementos por pares (de dos en dos) se
indicado. Se repite dicho proceso hasta que ya se hayan analizado todos los
siguiente manera:
Algoritmos de selección
En este algoritmo se SELECCIONA el elemento menor de todos los elementos
siguiente manera:
Herencia.
Recordemos que la herencia es el proceso por el cual un objeto adquiere las propiedades de
otro. Esto es importante ya que supone la base del concepto de clasificación jerárquica. Si una
determinada clase encapsula determinados atributos, entonces cualquier subclase tendrá los
mismos atributos más cualquiera que añada como parte de su especialización. En Java una
clase que es heredada se llama superclase y una clase que hereda se llama subclase.
Solamente se puede especificar una superclase para cada subclase creada, es decir, Java no
Polimorfismo
Es una característica que permite que una interfaz sea utilizada por una clase general de
acciones. Imaginemos una pila, que es una lista en donde el último elemento es el primero que
sale. Podríamos tener un programa que requiera tres tipos distintos de pilas. Una para valores
enteros, otra para valores flotantes y la última para caracteres. El algoritmo que implementa
cada pila es el mismo, incluso aunque los datos almacenados sean diferentes. En un lenguaje
no orientado a objetos sería necesario crear tres rutinas diferentes de pila, cada una con un
CLASES ABSTRACTAS
Una de las características más útiles de cualquier lenguaje orientado a objetos es la posibilidad
de declarar clases que definen como se utiliza solamente, sin tener que implementar métodos.
Esto es muy útil cuando la implementación es específica para cada usuario, pero todos los
usuarios tienen que utilizar los mismos métodos. Un ejemplo de clase abstracta en Java es la
clase Graphics:
...
Los métodos se declaran en la clase Graphics, pero el código que ejecutará el método está en
la arquitectura->
líneas -específico de
la arquitectura->
Cuando una clase contiene un método abstracto tiene que declararse abstracta. No obstante,
no todos los métodos de una clase abstracta tienen que ser abstractos. Las clases abstractas
no pueden tener métodos privados (no se podrían implementar) ni tampoco estáticos. Una
clase abstracta tiene que derivarse obligatoriamente, no se puede hacer un new de una clase
abstracta ya que estos objetos no tendrían ninguna utilidad, pues una clase abstracta no está
subclase de una clase abstracta debe implementar todos los métodos abstractos de la
Una clase abstracta en Java es lo mismo que en C++ virtual func() = 0; lo que obliga a que al
derivar de la clase haya que implementar forzosamente los métodos de esa clase abstracta.
INTERFACES
Los métodos abstractos son útiles cuando se quiere que cada implementación de la clase
parezca y funcione igual, pero necesita que se cree una nueva clase para utilizar los métodos
abstractos.
Los interfaces proporcionan un mecanismo para abstraer los métodos a un nivel superior.
mecanismo de encapsulación de los protocolos de los métodos sin forzar al usuario a utilizar la
herencia.
Por ejemplo:
public interface VideoClip {
void reproducir();
// pausa la reproduccion
void pausar();
// detiene la reproduccion
void detener();
Las clases que quieran utilizar el interface VideoClip utilizarán la palabra implements y
proporcionarán el código necesario para implementar los métodos que se han definido para el
interface:
void reproducir() {
<código>
void pausar() {
<código>
void detener() {
<código>
Al utilizar implements para el interface es como si se hiciese una acción de copiar-y-pegar del
código del interface, con lo cual no se hereda nada, solamente se pueden usar los métodos.
La ventaja principal del uso de interfaces es que una clase interface puede ser implementada
programación sin tener que ser consciente de la implementación que hagan las otras clases
void reproducir() {
<código nuevo>
void pausar() {
<código nuevo>
void detener() {
<código nuevo>
Una clase puede implementar más de una interfaz, separando las interfaces por comas. Los
métodos que implementan una interfaz deben declararse como public. Además, el formato
definición de la interfaz.
Como todo lo que se declara en una interfaz es público, pues corresponde siempre a lo que
declaración de la interfaz. Como forzosamente todos los métodos son abstractos, ya que no
estáticas, los calificativos static y final se omiten en las declaraciones de constantes dentro de
una interfaz.