Académique Documents
Professionnel Documents
Culture Documents
Objetos
Programacin
Orientada a
Objetos
Envi de Clases
Mensajes
Qu es un Objeto en el Mundo Real?
Un objeto del mundo real es cualquier cosa que vemos a nuestro
alrededor.
Internamente, cada uno de estos componentes puede ser
sumamente complicado y puede ser fabricado por diversas
compaas con diversos mtodos de diseo. Pero nosotros no
necesitamos saber cmo trabajan cada uno de estos
componentes y la forma en como interactan.
Qu es un Objeto en la Programacin?
La programacin orientada a objetos trabaja de esta manera. Todo el programa est
construido en base a diferentes componentes (Objetos), cada uno tiene un rol especfico
en el programa y todos los componentes pueden comunicarse entre ellos de formas
predefinidas.
Todo objeto del mundo real tiene 2 componentes: caractersticas (Atributos) y
comportamiento (Mtodo).
Marca = Ford
Modelo = Focus
Color = Azul
Velocidad Mxima = 260 km/h
Las Clases en el Mundo Real
En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por
ejemplo, nuestro telfono celular es slo uno de los miles que hay en el mundo. Si
hablamos en trminos de la programacin orientada a objetos, podemos decir que
nuestro objeto celular es una instancia de una clase conocida como "celular". Los
celulares tienen caractersticas y comportamientos .
Las Clases en la Programacin
La clase es un modelo o prototipo que define las variables y mtodos comunes a
todos los objetos de cierta clase. Tambin se puede decir que una clase es una
plantilla genrica para un conjunto de objetos de similares caractersticas.
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto.
Es decir, es la representacin abstracta que describe a un conjunto de objetos,
es decir, representa a un conjunto de objetos que tienen en comn la misma
estructura (atributos) y comportamiento (mismas funciones).
Persona
Automvil
Mascota
Un objeto es intil si est aislado. El medio empleado para que un objeto
interacte con otro son los mensajes. Hablando en trminos un poco ms
tcnicos, los mensajes son invocaciones a los mtodos de los objetos.
Cada clase se representa con un rectngulo, que define 3 secciones.
Para la clase persona: Persona Nombre de
la clase
Modificadores
de acceso
class nombre de la clase
Una clase se declara mediante la
{
palabra clave class, la forma general de
definir una clase es la siguiente: Tipo variable de instancia1;
Tipo variable de instancia2;
Tipo variable de instanciaN;
Las clases adems de estar formadas por variables de instancia tambin tienen como
contenido mtodos. La mayora de las veces, los mtodos se utilizan para acceder a las
variables de instancia definidas dentro de la clase.
La clase persona define 3 variables de instancia: Puesto, Nombre y sueldo, adems contiene 2
mtodos: pideDatos( ) y despliega( ) el cual es almacenado con el nombre: persona.java.
Persona
+ puesto: String
+ nombre: String
+ sueldo: double
+aceptaDatos():
+despliega():
}
void despliega()
{
System.out.println(puesto : " + puesto );
System.out.println("nombre : " + nombre);
System.out.println("sueldo : " + sueldo);
} }
Es importante recordar que la declaracin de una clase solamente crea una plantilla, no un
objeto real. En el cdigo siguiente tenemos otra clase llamada prinper, el cual se almacena
con el nombre prinper.java, desde dicho cdigo vamos a acceder a las variables de instancia y
mtodos de la clase caja
Estamos creando una instancia llamada per1 de la clase persona el operador new asigna
automticamente memoria para un objeto creado y por ltimo el nombre de la clase seguido de
parntesis especifica el constructor de la clase.
Donde tipo especifica el tipo de dato que devuelve el mtodo. Puede ser de cualquier tipo valido,
incluyendo los tipos de clases que crea el programador. Si el mtodo no devuelve no devuelve un
valor, el tipo ser void.
La primera lnea invoca al mtodo pideDatos( ) del objeto per1, observe que entre el objeto y el
mtodo es necesario indicar el operador punto ( . ), adems que es de tipo void, lo cual indica
que no regresar ningn valor, dentro de este mtodo estn incluidas las instrucciones para
aceptar datos, los cuales son almacenados en las variables de instancia.
Por ltimo utilizamos el mtodo per1.despliega( ) donde son desplegados los datos contenidos
en las variables de instancia.
Como se dijo anteriormente, las clases estn formadas por variables de instancia y mtodos. La
mayora de las veces, los mtodos se utilizan para acceder a las variables de instancia definidas
por la clase.
La forma general de un mtodo es la siguiente:
void aceptaDatos(){
System.out.println("Teclea el nombre");
nombre=Leer.dato();
System.out.println("Teclea el sueldo");
sueldo=Leer.datoDouble();
}
double sueldo1() {
nsueldo=sueldo+(sueldo*0.10);
return nsueldo;
}
double sueldo2(){
nsueldo=sueldo+(sueldo*0.40);
return nsueldo;
}
}//de la clase
class mainEmpleado{
public static void main(String args[]){
double sueldoLocal=0.0;
final double ISR=0.02; // declaracin de una constante
If (oEmpleado.sueldo>10000) {
System.out.println("Tienes un aumento del 10%");
sueldoLocal=oEmpleado.sueldo1();
}
else {
System.out.println("**Tienes un aumento del 40%**");
sueldoLocal=oEmpleado.sueldo2();
}
// declaramos constructor
Auto(int modelo_m,int precio_m,String marca_m) {
modelo=modelo_m;
precio=precio_m;
marca=marca_m;
} Lista de parmetros del constructor
void printDatos() {
System.out.println("El modelo es:" + modelo);
System.out.println("El precio es:" + precio);
System.out.println("La marca es:" + marca);
}
}
class mainAuto
{
public static void main(String args[])
{
Auto oAuto=new Auto(2010,50000,Civic);
oAuto.printDatos();
}
} Se invoca al constructor y se le mandan como
argumentos 2010,50000, Civic
En la empresa X hay varios empleados, por cada empleado se tienen los datos: Nombre, Num
de hrs trabajadas y la cuota que se le paga por hra trabajada.
Cada quincena se requiere emitir un cheque con los datos: nombre del empleado y sueldo
que se le debe pagar. El sueldo se calcula multiplicando hrs trabajadas por cuota por hra.
Resumen:
Informacin que debe imprimir: Nombre y sueldo
Datos que deben leer: Nombre, horas trabajadas y cuota por hora.
Proceso: Calcular sueldo=horas trabajadas x cuota por hora.
Identificar objetos
Para esto se debe analizar el caso. Se buscan los sustantivos presentes en la especificacin;
los sustantivos son los objetos. En este problema son los empleados.
Representar la clase y mtodos a realizar para este problema.
Proceso para mantener ocultos los detalles de la implantacin de un objeto al resto de
los objetos o partes de un sistema.
El encapsulamiento relaciona datos con el cdigo que opera sobre los mismos. Al hablar
de encapsulamiento, se debe mencionar el control de acceso sobre los miembros de
una clase:
Control de acceso:
A travs de ste mecanismo se pueden controlar el acceso de los miembros de la clase
(variables y mtodos) desde las diferentes partes de un programa y de esta forma
impedir un mal uso del mismo.
Cuando se habla de control de acceso se esta refiriendo a los especificadores de acceso (
determinan cmo se puede acceder a un miembro de una clase). Se puede declarar, un
campo con un acceso especfico: public, private o protected :
public Si se declara como public, el cdigo contenido en su clase y todas las clases de otros
paquetes pueden accesar el campo
private Si se declara como private, slo el cdigo contenido en su clase puede accesar el
campo
Mltiple
Es cuando una clase hereda de dos o ms clases, Java no utiliza este tipo de herencia sin embargo, puede
implementarse haciendo uso de interfaces.
Sintaxis de la subclase
public class nombre_clase extends nombre_superclase
{
//variables y mtodos
}
Crear una clase que maneje Figuras (rectngulo y triangulo)
Abstraccin
Las figuras tienen medidas:
Largo
Altura
Atributos: Mtodos:
Largo Obtener el rea de cada figura.
Altura
Utilizando los valores protected
class figuras{
protected int largo;
protected int altura;
Atributos: Mtodos:
Largo
Obtener el rea de cada figura.
Altura
Obtener el rea de cada figura.
radio
El polimorfismo es una habilidad de tener varias formas. Se habla de polimorfismo cuando un
operador o mtodo puede cumplir con varias funciones a pesar de que sean llamados de la
misma manera.
String nombre;
int edad;
String nacionalidad;
//Constructor
Polimorfo(){
nombre="Carlitos";
edad=15;
nacionalidad="mexicana ";
}
//Constructor sobrecargado