You are on page 1of 51

ARREGLOS

Estructuras de datos que consisten de elementos de datos


relacionados, del mismo tipo.
Son entidades de longitud fija.
Conservan siempre la misma longitud una vez creados, aunque la
referencia a un arreglo puede reasignarse a un nuevo arreglo de
distinta longitud.
En Java, un arreglo es un grupo de variables (elementos o
componentes) que contienen valores del mismo tipo.
ARREGLOS
Los arreglos en Java son objetos, por lo que se consideran tipos de
referencia.
Los elementos de un arreglo en Java pueden ser tipos primitivos o
de referencia.
Para hacer referencia a un elemento especfico en un arreglo, se
debe especificar el nombre de la referencia al arreglo y el nmero
de la posicin del elemento en el arreglo.
Todos los objetos en Java deben crearse con la palabra clave new.
ARREGLOS
Ejemplo:
int c[] = new int[12];

int c[];
c = new int[12];
Al crear un arreglo, cada uno de sus elementos recibe un valor predeterminado:
cero para los elementos numricos de tipos primitivos, false, para los elementos
boolean y null para las referencias (cualquier tipo no primitivo).
ARREGLOS BIDIMENSIONALES
Un arreglo bidimensional es en esencia una lista de arreglos
unidimensionales.
Ejemplo de la declaracin de un arreglo bidimensional:
int table[ ][ ] = new int [10][20];

Al igual que los arreglos unidimensionales pueden inicializarse mediante
inicializadores de arreglos en las declaraciones:
int b[ ][ ] = { { 1, 2 } , { 3, 4 } };
ARREGLOS BIDIMENSIONALES
La forma en que Java representa los arreglos multidimensionales los hace
bastantes flexibles. De hecho las longitudes de las filas no tienen que ser
iguales:
(1) int b[ ][ ] = { { 1, 2 }, { 3, 4, 5 } };

(2) int b[ ][ ];
b = new int[ 2 ] [ ]; // Crear 2 filas
b[0] = new int [5]; // Crear 5 columnas para la fila 0
b[1] = new int[3]; // Crear 3 columnas para la fila 1
Aunque no hay regla sintctica que lo exija, una clase bien diseada puede
definir una y slo una entidad lgica.
Una clase bien diseada agrupa informacin conectada lgicamente.
No es obligatorio en una clase definir un mtodo main( ). Un mtodo main( )
se requiere slo si esa clase es el punto de partida de un programa.
Forma General de una Clase
Definicin de una clase que encapsule informacin acerca de vehculos automotores.
A esta clase se le denomina Vehicle y almacenar tres elementos de informacin
acerca del vehculo: Nmero de pasajeros que puede llevar, capacidad de
combustible y promedio de consumo de combustible (en kilmetros por litro).
Versin 1
class Vehicle {
int pasajeros; // nmero de pasajeros
int combcap; // capacidad de combustible
int kpl; // consumo de combustible
}
La declaracin de clase es slo un tipo de descripcin; no crea un objeto real.
Definicin de una Clase
Para crear un objeto Vehicle se utiliza una declaracin como la siguiente:
Vehicle minivan = new Vehicle();
Cada vez que cree una instancia de una clase estar creando un objeto con su propia
copia de cada variable de instancia definida por la clase.
Para acceder a las variables de instancia se emplea el operador de punto (.).
El operador de punto enlaza el nombre de un objeto con el nombre de un miembro.
La forma general del operador de punto es:
Objeto.miembro
Ejemplo: minivan.combcap = 70;
Definicin de una Clase
La siguiente instruccin se us para declarar un objeto de tipo Vehicle:
Vehicle minivan = new Vehicle();
Esta declaracin desempea dos funciones.
Primero, declara una variable de nombre minivan del tipo de clase Vehicle. Esta
variable no define un objeto. Es una variable que puede referirse a un objeto.
Segundo, la declaracin crea una copia fsica del objeto y asigna minivan una
referencia a ese objeto. Esto se hace usando el operador new.
El operador new asigna dinmicamente memoria (en tiempo de ejecucin) para un
objeto y le devuelve una referencia a ste. Esta referencia es la direccin de memoria
del objeto asignado por new. Esta referencia es almacenada en una variable.
Creacin de Objetos
La combinacin de los dos pasos en el enunciado anterior se puede reescribir para
mostrar cada paso individualmente como sigue:
Vehicle minivan; // Declara referencia al objeto
Minivan = new Vehicle; // Asigna un objeto Vehicle
Creacin de Objetos
Declara a minivan como una referencia a un objeto de tipo Vehicle; es una variable
que puede referirse a un objeto pero no es un objeto por s misma. En este momento
contiene el valor null.
Crea un nuevo objeto Vehicle y asigna una referencia para minivan.
Minivan se enlaza con un objeto.
En una operacin de asignacin, las variables con referencia a objetos actan
diferente a como lo hacen las variables de tipo simple, como int.
Cuando se asigna una variable de referencia a objeto a otro se est cambiando el
objeto al que se refiere la variable de referencia.
Por ejemplo:
Vehicle car1 = new Vehicle();
Vehicle car2 = car1;
Las sentencias anteriores indican que car1 y car2 se refieren al mismo objeto. Sin
embargo, no se relacionan de ninguna otra forma.
Variables de Referencia y Asignacin
Indique el efecto de ejecutar las siguientes instrucciones:
Vehicle car1 = new Vehicle();
Vehicle car2 = car1;
Vehicle car3 = new Vehicle();
car2 = car3;
Variables de Referencia y Asignacin
1. Instancia: posee diferentes valores para diferentes instancias de clase, se usan
para representar los atributos de datos de un objeto particular.
Public class Vehiculo {
int pasajeros;
int combcap;
int kpl;
}


Tipos de Variables
2. Clase: posee el mismo valor para todas las instancias de la clase, a veces se les
llaman static. Slo habr una copia de una variable de clase en la memoria
independientemente del nmero de instancias creadas de la clase, las variables
static son usualmente privadas en la clase.
Public class Estudiante{
Static int codigoEstudiante;
Int id;
Public Estudiante(){
This.id=codigoEstudiante;
codigoEstudiante++;
}
}

Tipos de Variables
2. Voltil: el modificador volatile previene al compilador de realizar ciertas
optimizaciones sobre una variable miembro. Le dice al compilador que el valor de
la variable puede ser cambiado inesperadamente por otra parte del programa.
volatile int var=100;
3. Transitorias (transient): se usa en una declaracin de variable para especificar al
sistema de tiempo de ejecucin de Java que la variable no debe ser serializadas.
transient int var=100;
4. final: indica que el miembro tiene un valor constante.la variables miembro final
deben ser inicializadas con un valor en el momento de la declaracin si no, el
compilador arrojara un mensaje de error.
final float pi=3.14;
Tipos de Variables
Los mtodos son subrutinas que manipulan los datos definidos por una clase
y, en muchos casos, proveen acceso a esos datos.
Es frecuente que otras partes de un programa interacten con una clase a
travs de sus mtodos.
Un mtodo contiene una o ms declaraciones.
En cdigo bien escrito de Java, cada mtodo desempea slo una tarea.
Cada mtodo tiene un nombre y este nombre se usa para llamar al mtodo.
El nombre main() est reservado para el mtodo que inicia la ejecucin del
programa.
Mtodos
La forma general de un mtodo es:
tipo de retorno nombre de mtodo (lista de parmetros) {
// cuerpo del mtodo
}
Tipo de retorno especifica el tipo de datos devueltos por el mtodo
Nombre de mtodo identificador vlido
Lista de parmetros secuencia de parejas, tipo e identificador, separados por
comas. Son variables que reciben valor de los argumentos pasados al mtodo cuando
ste se llama.
Mtodos
Un mtodo getter se usa para obtener el valor de una variable de instancia y
normalmente comienza con la palabra get
public String getNombre () {
return nombre; // cuerpo del mtodo
}
Un mtodo setter se usa para asignar valor a variables privadas. Los mtodos setter
se inician con la palabra set.
public void setNombre (String sNombre) {
nombre=sNombre; // cuerpo del mtodo
}

Mtodos

El sistema de recoleccin de basura de Java reclama objetos que aparecen
transparentemente detrs de escena, sin ninguna intervencin del
programador.
Cuando no existe una referencia a un objeto, se asume que ese objeto no se
necesita ms y se recupera la memoria ocupada por ste.
La recoleccin de basura se ejecuta, generalmente, slo cuando se cumplen
dos condiciones: que existan objetos para reciclar y la necesidad de
reciclarlos.
Recoleccin de Basura y Finalizadores
Finalize()
Mtodo que ser llamado exactamente antes de la destruccin final del
objeto por parte del recolector de basura.
Se puede usar para garantizar que un objeto termine limpio.
Se emplea para aadir un finalizador a una clase.
Formato el mtodo finalize():
protected void finalize()
{
// cdigo de finalizacin
}
Recoleccin de Basura y Finalizadores
This Referencia al objeto invocado.
This
class Pwr {
double b;
int e;
double val;

Pwr(double base, int exp) {
b = base;
e = exp;

val = 1;
if(exp==0) return;
for( ; exp>0; exp--) val = val * base;
}

double get_pwr() {
return val;
}
}
class Pwr {
double b;
int e;
double val;

Pwr(double base, int exp) {
this.b = base;
this.e = exp;

this.val = 1;
if(exp==0) return;
for( ; exp>0; exp--) this.val = this.val * base;
}

double get_pwr() {
return this.val;
}
}
Java permite tener dos o ms mtodos con el mismo nombre dentro de la
misma clase. Los mtodos sobrecargados deben tambin tener un nmero
diferentes de parmetros o diferentes tipos de datos en los parmetros. Esta
es una forma de lograr polimorfismo en Java.
Distintos mtodos con el mismo nombre pero diferentes parmetros.
Sobrecarga de Mtodos
Ejemplo:
public class Area{
void area(double radio)
{
double areacirculo=0;
areacirculo=3.14*radio*radio;
System.out.println("el area del circulo\n"+areacirculo);
}
void area(double base, double altura)
{
double areatriangulo=0;
areatriangulo=0.5*base*altura;
System.out.println("el area del triangulo es\n"+areatriangulo);
}

void area(float largo,double ancho)
{
double arearectangulo=0;
arearectangulo=largo*ancho;
System.out.println("el area del rectangulo es\n"+arearectangulo);
}
void area(double radio, float altura)
{
double areacilindro=0;
areacilindro=3.14*radio*radio*altura;
System.out.println("el area del cilindro es\n"+areacilindro);
}
}
class Usuario{
public static void main(String[] args) {
Area are=new Area();
are.area(25);
are.area(5,3);
are.area(8f,2);
are.area(6,3f);
}
}

You might also like