Texto: Trini Moreno Música: Andalucía. A. Segovia Montaje: Eloísa DJ Avance Manual.
Java Teoria Clase_y_Objetos Trini
-
Upload
alexander-primo -
Category
Documents
-
view
13 -
download
2
Transcript of Java Teoria Clase_y_Objetos Trini
-
1
Programacin Orientada a Objetos: CLASES Y OBJETOS
1. Clase
Es la estructura bsica para la creacin de programas Java. Una clase es un modelo para la
creacin de objetos que tienen caractersticas comunes o similares. Por lo tanto define la
estructura lgica de un objeto, que est compuesta de atributos (caractersticas del objeto)
y el comportamiento o funciones del objeto (mtodos () o interfaz funcional), Ejemplo:
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.
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 instancias, y cada objeto particular puede tener valores distintos para
estas variables.
Las variables de instancia tambin denominados miembros dato, son declaradas dentro de
la clase pero fuera de los mtodos sus valores son fijados y cambiados en el objeto.
Adems de las variables de instancia hay variables de clase cuyo tipo es static , 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.
Los atributos se declaran dentro de las llaves de apertura y cierre de la declaracin de la
clase. Ejemplo:
class Carro{
String marca, modelo;
double precio;
int ao;
}
1.2. Mtodos
Define el comportamiento del objeto o funcin que realiza (mtodos() ) ,una funcin es un
conjunto de instrucciones que se realizan en forma lgica y secuencial Los mtodos
definen la interfaz con el mundo externo de una clase, sus capacidades y comportamiento.
Todas las variables declaradas dentro de los mtodos son llamadas variables locales, su
mbito es dentro del mtodo . Los mtodos pueden tener una lista de parmetros que
Clase Carro
modelo, color, marca
Prendido, apagado, acelerado
Nombre de la Clase
Atributos (datos)
Mtodos (funciones)
class NombreClase{
//...
//cuerpo de la clase
//...
}
String nombre; // variable de instancia
Static string marca ; // variable de clase
-
2
permiten comunicar informacin entre mtodos. Los parmetros de un mtodo tambin
son variables locales.
Los mtodos se declaran al mismo nivel que las variables de instancia dentro de una
definicin de clase. Ejemplo:
class Carro{
String marca, modelo;
double precio;
boolean estadoDelMotor=false;
void prendido(boolean stadoDelMotor)
{
estadoDelMotor=stadoDelMotor;
if(estadoDelMotor == false)
System.out.println(el motor esta apagado) stadoDelMotor=true;
}
}
2. Objeto
El nombre de una clase declara un tipo de dato, cada vez que se declara un tipo de dato se
aade otro tipo de dato que se puede utilizar para definir 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:
Ejemplo:
Carro volksWagen;
Esta es una declaracin de una variable volksWagen que es una referencia a un objeto de
la clase Carro, de momento con un valor por defecto de null.
Un objeto se distingue de otros miembros de la clase por sus atributos.
3. Mtodo Constructor
Es un mtodo que Tiene el mismo nombre de la clase a la que pertenece. Se utiliza para
crear un objeto, inicializar los atributos un objeto, El constructor no devuelve ningn tipo
de valor , un constructor puede sobre cargarse (mismo nombre pero diferentes parmetros
)
Si no se definen constructores para una clase, el compilador crea un constructor por
omisin que no tiene 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.
Nombre del Objeto
Mtodos prendido, apagado , acelerado
Atributos modelo, ao, marca
volksWagen
tipo Nombre_del_metodo (parmetros)
void prendido(boolean estadodelMotor )
Clase objeto;
Class Carro;
Atributos o Variables
Mtodos
-
3
class Carro
{
Carro(){
}
Carro(boolean stadoDelMotor){
estadoDelMotor=stadoDelMotor
}
}
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.
Ejemplo:
Carro volksWagen = new Carro();
5. Operador punto (.)
El operador punto (.) se utiliza para acceder a:
Las variables de instancia:
Los mtodos contenidos en un objeto:
6. Referencia this
Es una variable de referencia a un objeto, que se utiliza dentro de cualquier mtodo para
referirse al objeto que llamo al metodo(), Se puede utilizar this siempre que se requiera
identificar a un objeto en particular de una clase . Si hay dos objetos que utilicen el mismo
cdigo ( variables y metodos ), seleccionados a travs de otras instancias, cada uno tiene
un nico valor para this.
Class Carro {
String modelo; / se declara una variable de instancia
Carro volksWagen = new Carro (); // se crea el objeto
System.out.println(Ingrese el modelo del Carro); modelo =volksWagen.nextInt(); // se asigna el valor de lectura
volksWagen.setModelo(modelo);// se llama al metodo()
public void setModelo(String modelo){
this.modelo = modelo;// this.modelo es variable de instancia
} // modelo es variable local
}// fin de la clase Carro
Clase objeto = new metodoConstructor();
Constructor sin parmetros
Constructor con parmetros
Nombre_del_objeto.variable_de_instancia
Nombre_del_objeto.mtodo()
-
4
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 modificadores de acceso definen niveles de visibilidad entre miembros (variables y
mtodos) de una clase y otros objetos. Java utiliza los siguientes modificadores:
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.
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.
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 sobrescrito por subclase alguna.
Un miembro tiene acceso a:
Puede ser accedido por mtodos
de:
public protected omitido private
La misma clase
Subclases del mismo paquete
Otras clases del mismo paquete
Subclases en otros paquetes
Otras clases de otros paquetes
Si
Si
Si
Si
Si
Si
Si
Si
Si
-
Si
Si
Si
-
-
Si
-
-
-
-
modificador_de_acceso tipo nombre_variable;
modificador_de_acceso tipo nombre_metodo( ){ }
-
5
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
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.
import java.io.*; // import java.util.Scanner;
public class Cliente{
//atributos
private String nombre;
private String apellidos;
private double desc;
private double consumo;
//mtodos de la clase
public Cliente() // mtodo constructor
{
}
//mtodos acceso
public void setNombre(String nombre){
this.nombre = nombre ;
}
public String getNombre(){
return nombre ;
}
-
6
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;
}
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 {
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()); }
}