Anda di halaman 1dari 6

Lenguaje de Programacin

Ing. Jorge Butler

CLASES Y OBJETOS

1. Clase
El elemento bsico de la programacin orientada a objetos en Java es la clase. Una clase es
una plantilla para un objeto. Por lo tanto define la estructura de un objeto y su interfaz
funcional, es decir, define los mtodos (comportamiento) y atributos (datos) de un grupo
de objetos de caractersticas similares. Ejemplo:

Clase Empleado Nombre de la Clase

trabajar, ir, asistir Mtodos (funciones)


nombres, apellidos, sueldo
Atributos (datos)

Para crear una clase se utiliza la palabra reservada class, seguida de un identificador legal
y un bloque delimitado por dos llaves para el cuerpo de la clase.

class NombreClase{
//...
//cuerpo de la clase
//...
}

Un archivo de Java debe tener el mismo nombre que la clase que contiene, y se les suele
asignar la extensin ".java". Por ejemplo la clase Empleado se guardara en un fichero que
se llamase Empleado.java

1.1. Atributos
Los atributos son las caractersticas individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables.
Las variables de instancia tambin denominados miembros dato, son declaradas en la clase
pero sus valores son fijados y cambiados en el objeto.
Adems de las variables de instancia hay variables de clase, las cuales se aplican a la clase
y a todas sus instancias. Por ejemplo, el nmero de ruedas de un automvil es el mismo
cuatro, para todos los automviles.

tipo nombre;

Los atributos se declaran dentro de las llaves de apertura y cierre de la declaracin de la


clase. Ejemplo:

class Empleado{
String nombres, apellidos;
double sueldo;
int edad;
}

1.2. Mtodos
Los mtodos son subrutinas que definen la interfaz de una clase, sus capacidades y
comportamiento. Los mtodos permiten al programador modularizar sus programas. Todas
las variables declaradas en las definiciones de los mtodos son variables locales, solo se
conocen en el mtodo en el que se define. Los mtodos pueden tener una lista de
parmetros que permiten comunicar informacin entre mtodos. Los parmetros de un
mtodo tambin son variables locales.
Lenguaje de Programacin
Ing. Jorge Butler

tipo Nombre_del_metodo (parmetros)

Los mtodos se declaran al mismo nivel que las variables de instancia dentro de una
definicin de clase. Ejemplo:

class Empleado{
Atributos o Variables
String nombres, apellidos;
double sueldo;
int edad;

void trabajar(String n, int horas, int dias){


Mtodos
}
double asistir(int faltas){
return 0;
}
}

2. Objeto
Cada vez que se crea una clase se aade otro tipo de dato que se puede utilizar para
declarar una nueva variable. A estas variables se las conoce como referencias a objeto.
Por lo tanto, un objeto es una instancia o variable de una clase. La declaracin de una
referencia a objeto se realiza:

Clase objeto;

Ejemplo:
Empleado unIngeniero;

Esta es una declaracin de una variable unIngeniero que es una referencia a un objeto de
la clase Empleado, de momento con un valor por defecto de null.
Un objeto se distingue de otros miembros de la clase por sus atributos.

unIngeniero Nombre del Objeto

Mtodos
trabajar, ir, asistir
Atributos
Fernando, Carrin, 2500

3. Mtodo Constructor
Un constructor es un mtodo que inicia un objeto inmediatamente despus de su creacin,
evitndonos tener que iniciar las variables. Tiene el mismo nombre de la clase a la que
pertenece. Adems, puede tener varias implementaciones. Puede sobrecargarse. El
constructor no devuelve ningn tipo, ni siquiera void.
Si no se definen constructores para una clase, el compilador crea un constructor por
omisin que no recibe argumentos. El constructor por omisin de una clase invoca al
constructor de la clase y procede a inicializar las variables de tipo de datos numricos
primitivos: las variables numricas a 0, las boolean a false y las referencias (cadenas) a
null.
Lenguaje de Programacin
Ing. Jorge Butler

class Empleado{
Empleado(){
Constructor sin parmetros
}
Empleado(int x, int y){
Constructor con parmetros
}
}

4. El operador new
Permite crear un nuevo objeto invocando al mtodo constructor de la clase. Cuando se
realiza una instancia de una clase (mediante new) se reserva en la memoria un espacio
para un conjunto de datos como el que definen los atributos de la clase que se indica en la
instanciacin. A este conjunto de variables se le denomina variables de instancia.

Clase objeto = new metodoConstructor();

Ejemplo:

Empleado unIngeniero = new Empleado();

5. Operador punto (.)


El operador punto (.) se utiliza para acceder a:

Las variables de instancia:

Nombre_del_objeto.variable_de_instancia

Los mtodos contenidos en un objeto:

Nombre_del_objeto.mtodo()

6. Referencia this
Java incluye un valor de referencia especial llamado this, que se utiliza dentro de cualquier
mtodo para referirse al objeto actual. El valor this se refiere al objeto sobre el que ha sido
llamado el mtodo actual. Se puede utilizar this siempre que se requiera una referencia a
un objeto del tipo de una clase actual. Si hay dos objetos que utilicen el mismo cdigo,
seleccionados a travs de otras instancias, cada uno tiene su propio valor nico de this.

7. Encapsulacin
Encapsulacin es el trmino de orientacin a objetos que describe la vinculacin de las
operaciones y estado a un objeto particular. La encapsulacin est ntimamente relacionada
con la ocultacin de la informacin, definiendo qu partes de un objeto son visibles y qu
partes estn ocultas.
La ventaja de la ocultacin de los detalles de implementacin es que el objeto puede
cambiar, y el interfaz pblico proporcionado ser compatible con el original. Entonces los
programas que utilizaban el objeto pueden seguir funcionando sin alteracin alguna. Esto
es extremadamente til al modificar cdigo (ya que se restringe la propagacin de
cambios). Tambin se fomenta la reusabilidad, ya que el cdigo puede ser utilizado como
una tecnologa de caja negra (igual que los circuitos integrados en la industria electrnica).

8. Modificadores de Acceso
Los modificacdores de acceso definen niveles de visibilidad entre miembros (variables y
mtodos) de una clase y otros objetos. Java utiliza los siguientes modificadores:
Lenguaje de Programacin
Ing. Jorge Butler

8.1. Para Miembros (variables y mtodos)


public: Especifica que las variables y mtodos de una clase podrn ser accedidas
por todos los objetos, aunque sean de clases de otros paquetes diferentes al de la
clase.
protected: Especifica que las variables y mtodos de una clase podrn ser
accedidas, adems de los mtodos de la misma clase, por los mtodos de todas las
clases del mismo paquete y por las subclases de esta aunque no se encuentren en el
mismo paquete.
private: Especifica que las variables y mtodos de una clase podrn ser accedidas
slo por los mtodos de la misma clase.

Un miembro tiene acceso a:


Puede ser accedido por mtodos public protected omitido private
de:
La misma clase Si Si Si Si
Subclases del mismo paquete Si Si Si -
Otras clases del mismo paquete Si Si Si -
Subclases en otros paquetes Si Si - -
Otras clases de otros paquetes Si - - -

Si no se especifica un modificador, las variables y mtodos de una clase solo podrn ser
accedidas por clases del mismo paquete.
El modificador de acceso se especifica inmediatamente antes que el tipo de una variable
de instancia o antes del tipo de retorno de un mtodo.

modificador_de_acceso tipo nombre_variable;

modificador_de_acceso tipo nombre_metodo( ){


}

Ejemplos:

private int a;
public void abrir(){

8.2. Otros modificadores de acceso para miembros

8.2.1. Mtodos

final: Especifica que un mtodo tiene una implementacin constante, esto es,
que no puede ser sobreescrito por subclase alguna.
static: Especifica que un mtodo es independiente de cualquier instancia, por lo
que tambin solo puede acceder a variables de instancia estticas y podr
invocar directamente solo mtodos estticos de su clase.
abstract: Son aquellos mtodos declarados pero no implementados, pues la
implementacin se encuentra en las subclases.
synchonized: especifica que solo se permitir un camino de ejecucin en un
mtodo.
native: especifica que la implementacin de un mtodo es externa: nativa en C.
El mtodo no tendr cuerpo, ni siquiera llaves.

8.2.2. Variables

final: Especifica que una variable tiene un valor constante.


static: Se especifica que una variable es comn para todas las instancias de la
clase. Por omisin (sin modificador), cada objeto (instancia de clase) reserva
Lenguaje de Programacin
Ing. Jorge Butler

memoria para sus variables de instancia cuando es creado; por cada nuevo
objeto, nuevos espacios de memoria son reservados. Las variables estticas
reservan un solo espacio independientemente de cuantas instancias de la clase
se hayan creado.
transient: Especifica al compilador que una variable no debe ser serializada.
volatile: Especifica que el compilador generar, cargar y almacenar la
variable cada vez que sea accedida, en vez de tomar el valor de un registro.

8.3. Para Clases


La visibilidad de una clase esta determinada en relacin a los paquetes:
public: Permite que una clase sea visible fuera del paquete donde pertenece.
abstract: Una clase abstracta esta compuesta de uno o ms mtodos abstractos,
los que son declarados pero no implementados, pues la implementacin se
encuentra en las subclases. Bastar que una clase contenga un mtodo abstracto
para que tenga que ser declarada tambin como abstracta.
final: Especifica que una clase no puede extenderse, esto es no puede tener
subclases.

Ejemplo

Calcular el total que paga un cliente por un consumo en un restaurante, dicho restaurante
realiza descuentos del 20% para consumos mayores a S/.50.00 y 10% para consumos
menores e iguales a S/.50.00.

public class Cliente{


//atributos
private String nombre;
private String apellidos;
private double desc;
private double consumo;
//mtodo constructor
public Cliente(){

}
//mtodos accesores
public void setNombre(String nombre){
this.nombre = nombre ;
}
public String getNombre(){
return nombre ;
}
public void setApellidos(String apellidos){
this.apellidos = apellidos;
}
public String getApellidos (){
return apellidos;
}
public void setConsumo(double consumo){
this.consumo = consumo;
}
public double getConsumo (){
return consumo;
}
public void setDesc(double desc){
this. desc = desc;
}
public double getDesc (){
return desc;
}
Lenguaje de Programacin
Ing. Jorge Butler

public void setTotal(double total){


this.total = total;
}
public double getTotal (){
return total;
}

public void calculoDesc(){


if(consumo>50.00)
desc = consumo * 0.20;
else
desc = consumo * 0.10;
}
public void calculoTotal(){
total = consumo desc;
}
}

public class Aplicacion{


public static void main(String[] args) throws IOException throws IOException{
InputStreamReader p= new InputStreamReader(System.in);
BufferedReader q= new BufferedReader(p);
Cliente c = new Cliente ();
System.out.println(Ingrese nombre del cliente);
c.setNombre(q.readLine());
System.out.println(Ingrese apellidos del cliente);
c.setApellidos(q.readLine());
System.out.println(Ingrese consumo);
c.setConsumo(Double.parseDouble(q.readLine()));
c.calculoDesc();
c.calculoTotal();
System.out.println(Cliente:+ c.getNombre() + +c.getApellidos());
System.out.println(Consumo:+ c.getConsumo());
System.out.println(Descuento:+ c.getDesc());
System.out.println(Total:+ c.getTotal());
}
}

Anda mungkin juga menyukai