You are on page 1of 18

Unidad 1

Clases y Objetos

Copyright IBM Corp. 2007

Qu es una Clase?
Una clase es una entidad autocontenida que tiene las
definiciones de los atributos y el comportamiento que
son comunes a todos los objetos de software de un tipo
en particular
Los atributos se convierten en las variables y el
comportamiento se refleja con los mtodos en una
clase Java
A partir de una clase se pueden
llamadas objetos.

crear instancias

Copyright IBM Corp. 2007

Qu es una Clase? 1

Caractersticas (variables)
N# de Ruedas

Tipo de Ruedas

Color

Velocidad

Bicicleta

acelerar

desacelerar

frenar

Cambiar Velocidad

Responsabilidades (mtodos)

Copyright IBM Corp. 2007

Estructura de una clase

Definicin
de la Clase

package transporte;//Opcional
import java.lang.String;//Opcional
class Bicicleta{
Conjunto de
int nRuedas;
Caractersticas
int tipoRuedas;
(variables miembro)
String color;
float velocidad;
public
public
public
public

void
void
void
void

acelerar(float a){}
desacelerar(float a){}
frenar(){}
cambiarVelocidad(int v){}

}
Responsabilidades
(mtodos)

Copyright IBM Corp. 2007

Componentes de una Clase

Componentes

Propsito

public

La clase es pblicamente accesible

abstract

La clase no puede ser instanciada

final

La clase no puede ser derivada

class nombreClase

Especifica el nombre de la clase

extends superClase

Especifica el nombre de la superclase

implements interface

Especifica las interfaces implementadas


dentro de la clase

{
}

Implementacin de la clase

Copyright IBM Corp. 2007

Qu es un Objeto?

Un objeto es una instancia de una clase

Copyright IBM Corp. 2007

Ciclo de Vida de un Objeto


Usualmente en un programa Java, muchos objetos son
creados a partir de diferentes clases y estos objetos
interactan entre s enviando mensajes
Despus de que el objeto completa el trabajo para el
cual fue creado, es recolectado como basura y sus
recursos liberados

Creacin
de Objetos

Uso
de Objetos

Destruccin
de Objetos

Copyright IBM Corp. 2007

Creacin de Objetos
La creacin de un objeto es bsicamente la creacin de
una instancia de una clase, tambin conocido como
instanciacin de una clase

La declaracin
puede estar
separada de la
creacin

Los objetos de una clase


son creados a travs del
operador new

Persona p2 = new Persona(7897009);


Persona p1;
p1 = new Persona(13077876);
La inicializacin del objeto
se realiza por la llamada al
constructor de la clase
8

Copyright IBM Corp. 2007

Miembros de un Objeto
Generalmente, para referirse a los miembros de un objeto, se puede
agregar el nombre de la variable o referencia del objeto con un punto
(.) entre ellos.
class A{
public int m1;
private int m2;
public void setM2(int val){
m2 = val;
}
public static void main(String args[]){
A obj = new A();
obj.m1 = 32; // acceso a una variable m.
obj.setM2(42);// acceso a una funcin m.
}
}

Copyright IBM Corp. 2007

Mtodos Getter y Setter


Se utilizan para acceder a propiedades de un objeto.
class A{
private int m2;
public void setM2(int val){
m2 = val;
}
public int getM2(){
return m2;
}
}

10

Copyright IBM Corp. 2007

Modificadores de Acceso
En Java, existen diferentes formas de controlar el
acceso a los miembros de una clase. Para ello se
utilizan los Modificadores de Acceso, que son:
private
proctected
public
Sin modificador (se asume package)

11

Copyright IBM Corp. 2007

Private
Un miembro especificado como private es accesible
slo dentro de la clase donde es definido
Se utiliza para mantener el estado del objeto
consistente
class Cuenta{
private float saldo; // Miembro privado
public Cuenta() { saldo = 0; }
}
class Principal {
public static void main(String args[]){
Cuenta c = new Cuenta();
c.saldo = 125; //Error, miembro privado
}

12

Copyright IBM Corp. 2007

Protected
Permite que un miembro sea accedido por la clase en el
que est definido, sus subclases y las clases en el mismo
paquete
class Padre{//Definida en el paquete p
protected int m1; // Miembro protegido
}
class Hijo extends Padre{//Definida en el paquete p
public void setM1(int val){
m1 = val; // Correcto, es protegida
}
}
class Otra{ //Definida en otro paquete
public static void main(String args[]){
new Hijo().m1 = 20; //Error m1 no es accesible
}
}

13

Copyright IBM Corp. 2007

Public

Cualquier clase perteneciente a cualquier paquete


tiene acceso a los miembros pblicos de una clase
class Padre{
public int m1; // Miembro pblico
}
class Hijo extends Padre{
public void setM1(int val){
m1 = val; // Correcto, es pblica
}
}
class Otra{
public static void main(String args[]){
new Hijo().m1 = 20; // Correcto, es pblica
}
}

14

Copyright IBM Corp. 2007

Package
Permite que un miembro sea accedido dentro de la
clase en la que est definido, y las clases en el mismo
paquete
class Padre{//Definida en el paquete p
int m1; // Miembro con acceso package
}
class Hijo extends Padre{//Definida en p
public void setM1(int val){
m1 = val; // Correcto
}
}
class Otra{//Definida en otro paquete
public static void main(String args[]){
new Hijo().m1 = 20; //Error m1 no es
accesible
}
}
15

Copyright IBM Corp. 2007

Constructores de una Clase


Todos los objetos creados en Java tienen al menos un
constructor para inicializar un nuevo objeto creado a
partir de un tipo particular

Debe tener el
mismo nombre
de la clase

class Persona{
int ci;
static int numPersonas = 0;
public Persona(){ci=0;}
public Persona(int numCi){
ci = numCi;
Si no
numPersonas++;
proporcionamos
}
algn constructor,
public getCi(){return ci;}
Java lo hace
public static int getNumPersonas(){
return numPersonas;
}
}
16

Podemos
tener tantos
constructore
s como
queramos

Copyright IBM Corp. 2007

Sobrecarga de Mtodos
Java permite tener dos o ms mtodos con el mismo
nombre dentro de la misma clase, siempre que cumplan
con alguna de las siguientes premisas:
Distinto numero de argumentos
Diferencia en los tipos de datos de los argumentos
Orden distinto en el que aparecen los argumentos
No basta con que el tipo de retorno sea distinto para
diferenciar a dos mtodos sobrecargados

17

Copyright IBM Corp. 2007

Sobrecarga de Mtodos 1

1. public class A{
Mtodo suma
2.
public int suma(int n1, int n2){
original
3.
return ( n1 + n2 );
4.
}
5.
public int suma(int n1, int n2, int n3){
6.
return ( n1 + n2 + n3 );
7.
}
Mtodo suma
8.
public void suma(int n1, int n2){
sobrecargado
9.
System.out.println( n1 + n2 );
perfectamente
10.
}
11.}
Nota: en la lnea 8 se genera un error
ya que el mtodo suma solo se diferencia en el
tipo de retorno

18

Este Mtodo
suma genera
un error

Copyright IBM Corp. 2007

You might also like