Objetos y Clases
Lic. MSc. Corina Flores Villarroel
Universidad Mayor de San SimónFacultad de Ciencias y Tecnología
Corina Flores Villarroel UMSS - Programa MEMI
Contenido
• Presentación del tema
• Objetivos
• Contenidos
• Actividades
• Síntesis
• Evaluación
Corina Flores Villarroel UMSS - Programa MEMI
Objetivos
• Que el estudiante sea capaz de:
– Explicar con sus propias palabras los conceptosbásicos de la Programación Orientada a Objetos(POO).
• ¿Qué es POO?, ¿cuál es su principal característica oprincipio?
• ¿Qué es un objeto?
• ¿Qué es ua clase?
• ¿Qué se entiende por atributos?
• ¿Qué son los métodos?
Corina Flores Villarroel UMSS - Programa MEMI
Programación Orientada a Objetos
• La Programación Orientada a Objetos, es un paradigma o modelo que utiliza objetos comola base de construcción. Al decir, que es un paradigma nos referimos a una serie de pautas y un estilo para que sigan los programadores.
Corina Flores Villarroel UMSS - Programa MEMI
Programación Orientada a Objetos
• La ProgramaciónOrientada a Objeto(POO), es un paradigma de programación en que un programa se compone de objetos y sus interacciones.
Corina Flores Villarroel UMSS - Programa MEMI
Programación Orientada a Objetos
• La POO, imita al mundo real … los objetosestan compuestos por otros objetos máspequeños, con los cuales se puedeninteractuar.
•
Corina Flores Villarroel UMSS - Programa MEMI
Programación Orientada a Objetos
• Por ejemplo:
Corina Flores Villarroel UMSS - Programa MEMI
Clases
Objetos
Métodos
Atributos
Declaraciones
Expresiones
Operadores
Programación Orientada a Objetos
Principio: una de las características principales de la POO es …
1. Abstracción, es suprimir y ocultar algunosdetalles de un proceso o de un elemento, pararesaltar algunos aspectos, detalles o estructuras.
La abstracción es la forma en que nuestramente modela la realidad, formando los objetos. Por eso se crea objetos en los programas que simulen los comportamientosde los objetos de un mundo real.
Corina Flores Villarroel UMSS - Programa MEMI
Programación Orientada a Objetos
Principio:
1. Abstracción, ejemplo …
Cuando pensamos en un automóvil, no nospreocupamos de sus componentes más pequeños: el asiento, el motor, el tipo de llantas, los espejos, etc., sino, que lo vemos como una entidad uobjeto, esto es abstraer!!! … con tal que podamosinteractuar con él para satisfacer nuestranecesidad de desplazarnos por ejemplo.
Corina Flores Villarroel UMSS - Programa MEMI
Conceptos Básicos
• Programa: Conjunto de instrucciones, comandos, órdenes y procedimientos escritos en un lenguaje de programación para que una computadora pueda realizar una tarea determinada de manera exacta y rápida.
Un programa debe caracterizarse
por ser:
• Correcto
• Completo
• EficienteCorina Flores Villarroel UMSS - Programa MEMI
Objetos
¿Qué es un objeto?
Es una entidad en la que se basa la POO. Se
denomina también como un individuoparticular, o una instancia de un clase.
Corina Flores Villarroel UMSS - Programa MEMI
AGRUPACIÓN de autos querepresenta a la clase AUTOS
OBJETORepresentación específica y
concreta de UN AUTO a partir de ese grupo de autos
ObjetosAplicando el concepto de Abstracción a la comprensiónde una cosa (objeto), en función de sus característicasy comportamientos
Continuando con el ej.
Características
Comportamiento
•Color •Marca•Modelo•Placa
•getColor() •mostrarKilometraje()•Acelerar()
Objeto
Corina Flores Villarroel UMSS - Programa MEMI
ObjetosLos objetos son entidades que combinan:
• estado (atributo),
• comportamiento (método) e
• identidad
ESTADO, se refiere a laasignación de valores concretos(datos) a los atributo.Ej. Color = “amarillo”;COMPORTAMIENTO, esta
definido por los metodos conque puede operar dicho objeto,ie, que operaciones se puederealizar con él.Ej. mostrarKilometraje()
IDENTIDAD,propiedad de unobjeto que lo diferencia delrestoEj. auto1
Corina Flores Villarroel UMSS - Programa MEMI
auto1
Resumiendo …
La POO concibe a la programación como un grupo de objetos que trabajan juntos .Porejemplo Características
(ATRIBUTOS)
Corina Flores Villarroel UMSS - Programa MEMI
Resumiendo
• Un objeto es la materialización de una clase. Pero, ¿qué es una clase?
Corina Flores Villarroel UMSS - Programa MEMI
Clases
Define una categoría de objetos, en otraspalabras, son plantillas que permiten crearobjetos a partir de ellas. Estan compuestasde:
Características(ATRIBUTOS)
Comportamiento(METODOS)
Clase
SIMILARES(comunes)
•Color •Marca•Modelo•Placa
•getColor() •mostrarKilometraje()•Acelerar()
Corina Flores Villarroel UMSS - Programa MEMI
Por ejemplo
Corina Flores Villarroel UMSS - Programa MEMI
Por ejemplo
Corina Flores Villarroel UMSS - Programa MEMI
Clase Monitor
Por ejemplo
Corina Flores Villarroel UMSS - Programa MEMI
Clase Monitor
Monitor Samsumg
Monitor LG
Monitor Sony
Creamos distintos objetos a partir de la clase
Corina Flores Villarroel UMSS - Programa MEMI
Monitor Samsumg
Monitor LG
Monitor Sony
Clases
¿Qué es una clase?Una clase es una agrupación o colección de objetosque comparten características y comportamientocomunes.
La Clase representa una abstracción, la esencia que compartenlos objetos.
* Un objeto es un ejemplo de una clase.* Un objeto no es una clase, y una clase no es un objeto
Las clases muestran:• visión externa de comportamiento (interface)• visión interna (implementación)
Corina Flores Villarroel UMSS - Programa MEMI
Representación de Clases
Características(Atributos)
Nombre Clase
Comportamiento(Métodos )
Una clase se representa en un modelo(representación gráfica) como se ve en la figura:
Corina Flores Villarroel UMSS - Programa MEMI
CABECERA de la clase
CUERPO de la clase
class nombreClase
}
Declaración atributos
Definición de métodos
{
Declaración de Atributos
Corina Flores Villarroel UMSS - Programa MEMI
En la declaración se distinguen 3 elementos :
• El nombre del tipo de dato o tipo de valores que puedetomar un atributo.
• El nombre del atributo, denominado tambiénidentificador o variable.
• El separador punto y coma (;) que marca el fin de unadeclaración
Declaración de Atributos
Corina Flores Villarroel UMSS - Programa MEMI
class Auto{// Declaración de atributos
String color ;
String marca ;
int modelo ;
String placa ;
// Declaración y definición de métodos
}
Tipo Dato Identificador
Separadores
Tipo de Datos
NuméricasRepresentan el valor
numérico especificado.se puede realizar
operaciones aritméticas. Ejemplo: 3, 100 ,Pi
Tipos de Datos
ConstantesDatos que no cambian
su valor durante eldesarrollo o ejecución
de un programa
VariablesDatos que cambian omodifican su valordurante el desarrolloo ejecución de unpograma.
AlfanuméricasRepresentan los letreros
especificadosno se pueden realizar operaciones aritméticasEjemplo: “CASA” “10”
NuméricasAlmacenan datos
numéricos: Trabajo, Contadoras, Acumuladoras
Dimensionadas.Ejemplo: SUMA= A+B
AlfanuméricasAlmacenan letras,
números y caracteresespeciales.
Ejemplo: A$= “España”RESULTADO = “Aprobado”
Corina Flores Villarroel UMSS - Programa MEMI
Define un conjuntode valores y lasoperaciones sobreestos valores.
TAREA
• Averiguar la forma como se representan los tipos de datos en Java.
• Ej. Numéricos (entero)….
Corina Flores Villarroel UMSS - Programa MEMI
Int
Short
…
Tipo de Dato: Constante
• Datos que no cambian su valor durante el desarrollo o ejecución de un programa
Corina Flores Villarroel UMSS - Programa MEMI
3.141592Valor_de_Pi
double Valor_de_Pi ;
= ;
Tipo de Dato: Variable
• Datos que cambian o modifican su valordurante el desarrollo o ejecución de unprograma.
Corina Flores Villarroel UMSS - Programa MEMI
0velocidad 60120
Estado de un objeto
int velocidad ;
= ;
Tipo de dato: Asignación
• Las variables o llamadas también comocontenedoras tienen la capacidad de recibirvalores de acuerdo al tipo de dato.
• Del ejemplo …
int velocidad = 120 ;
Corina Flores Villarroel UMSS - Programa MEMI
SímboloASIGNACIÓN
Ambos deben corresponder al MISMO tipo de dato
Corina Flores Villarroel UMSS - Programa MEMI
int velocidad = 120 ;
Tipo de dato: Asignación
TipoDato NombVariable SimbAsignación Valor
Iniciamos con BlueJ
1. Creamos un proyecto
2. Ingresamos en el entorno de BlueJ
3. Las herramientas dispuestas al lado izquierdo de la ventana, permiten crear: Clases, establecer relaciones entre clases, yefectuar la compilación del código.
4. Se deja algunas direcciones de tutoriales de BlueJ para su revisión:
– www.bluej.org/tutorial/tutorial-spanish-1.pdf
– http://www.slideshare.net/anaclos/uso-de-bluej-presentation
Corina Flores Villarroel UMSS - Programa MEMI
Iniciamos con BlueJ
• Algunas recomendaciones antes de iniciar a escribir código.
– En la cabecera del código, completar con datos del autor del programa y la versión o fecha. Así:
Corina Flores Villarroel UMSS - Programa MEMI
/*** Write a description of class Auto here.* * @author (CFV) * @version (30-09-2011)*/
Iniciamos con BlueJ … cont
• Algunas recomendaciones antes de iniciar a escribir código.
– Nominación de clase … comenzar con mayúscula, singular y dar un nombre significativo. En cambio los atributos, siempre se escriben en minúsculas
– Mantener claramente identificando la estructura del programa, con comentarios significativos donde corresponde, esto es documentarinternamente el código
Corina Flores Villarroel UMSS - Programa MEMI
public class Auto{
// Aquí se describen las característicaso atributos de la clase AUTO:// marca, es un atributo de tipo cadena para representar a la marca de un auto// modelo, representa un atributo para indicar el modelo de un auto. Ej: 2009private String marca;
Operadores
Tipos de OperadoresPermiten realizar operaciones
aritméticas, lógicas o de comparación con los diferentes
tipos de datos
Aritméticos: + - * /
Comparación= < > >= <=
Lógicos:NOT NegaciónAND ConjunciónOR Disyunción
Corina Flores Villarroel UMSS - Programa MEMI
Símbolo queindica quéoperación debellevarse a cabo
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
• Definen el comportamiento de una clase
• Es la agrupación de un conjunto de instruccionesque resuelven una tarea particular.
• Una invocación (llamada) a un método activa esecomportamiento sobre un determinado objeto.
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
• La definición de un método tiene dos partes:
– El encabezamiento
– El cuerpo
• Así por ejemplo ...
tipoRetorno nombreMetodo( [lista_de_parámetros] )
{
cuerpoMetodo
}
Corina Flores Villarroel UMSS - Programa MEMI
• Encabezamiento de un método– Contiene a su vez tres elementos:
1. Tipo de resultado o retorno
2. Nombre del método
3. La lista de parámetros que se encuentran entre ()
Ejemplo:
Métodos
public String getColor(){
// put your code herereturn color;
}
1 2 3
Iniciamos con BlueJ … cont
• Algunas recomendaciones antes de iniciar a escribir código.
– Nominación de métodos de la clase, comienzan con minúsculasy generalmente es la combinación de dos o tres palabras.
Corina Flores Villarroel UMSS - Programa MEMI
public String marcaAuto()
{return marca;
}
public int modeloAuto(){
return modelo;}
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
• El tipo de retorno de un método dependerá de:
• Si después de procesar los datos, al método no se pide quedevuelva un valor, el tipo de retorno será void.
• En cambio, si se pide por ejemplo, calcular el salario líquidode una persona, el tipo de retorno estará en función al resultado que se produzca del cálculo de salario, es decir: el tipo de retorno puede ser int o double
• Para devolver un valor desde un método, se utiliza la palabraclave return. Como última instrucción en el cuerpo del método.
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
Nombre del método
• El nombre del método puede ser cualquier identificador legal en Java.
• Un identificador legal en Java es aquel que comprende una serie de caracteres. Así:
calculaSalario()
imprimeListas()
buscaUnEmpleado()
• No puede ser sin embargo, el mismo identificador que una palabrareservada o ser igual al nombre de una variable que aparece en su cuerpodel método.
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
Parámetro o argumento
• Es una variable que es recibida por un método. Un parámetroinfluye en el comportamiento o el resultado de la ejecucióndel método.
Una variable es un espacio de memoriareservado para almacenar un valor quecorresponde a un tipo de dato
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
PARAMETROS
ACTUALES, permiten enviarvalores al método. Se encuentran generalmente en la llamada al método.
FORMALES, permiten recibirvalores para usar dentro el método. Se encuentran en la definición del método.
Métodos
Corina Flores Villarroel UMSS - Programa MEMI
Parámetrosformales
public void setKilometraje(int kilom)
{
kilometraje = kilom;
}
Parámetrosactuales
auto1.setKilometraje(45) ;
Llamada a método
Corina Flores Villarroel UMSS - Programa MEMI
Existen dos formas de invocar: interna y externa
• Para llamar a un método interno, se requiere:
nombreMetodo (lista de parámetros)
Un nombrerelacionado con la tarea que realizará el método.
Todos los valoresnecesarios para ejecutar la tarea, sin especificar sustipos
setValor(double respuesta) ;Así:
Llamada a método
Corina Flores Villarroel UMSS - Programa MEMI
• La llamada o invocación a un método externo se realizacon el fin de que un objeto pueda hacer uso de los servicios que presta el método.
• Para realizar la invocación se utiliza la siguiente notación:
Objeto . método()
Operador
Objeto, es el nombre
del objeto o la instancia
de una clase.
Método, es el nombre
del método que pertenecea la clase
Paso de parámetros
Corina Flores Villarroel UMSS - Programa MEMI
• Al hecho de que los parámetros actuales envian valoresque los parámetros formales de un método reciben se denomina: PASO DE PARAMETROS.
• Esto sucede en el momento en el que se invoca al método. Por ej.:
auto1.setKilometraje(45);
void setKilometraje(int kilom)
Paso de parámetros
Corina Flores Villarroel UMSS - Programa MEMI
Es importante que:
Tanto los parametros actuales y formales de un método,deben coincidir en :
• Número• Tipo de datos con los que se declaran• El orden en el que aparecen en la lista
El constructor
Corina Flores Villarroel UMSS - Programa MEMI
Permite la creación de objetos quepertenecen a una clase.
• Tiene el mismo nombre de la clase
• No tiene un tipo de retorno
• Siempre es el primero que se escribe después de la declaración de atributos.
• Siempre es de acceso público
• Asigna valores iniciales a los atributos de la clase.
El constructor
Corina Flores Villarroel UMSS - Programa MEMI
public class Auto{
// Declaración de atributosprivate String color;private String marca;private int modelo;private String placa;
public Auto(){
// Constructor 1color = "azul";marca = "ford sport";modelo = 2010;placa = "777CBA";
}
public Auto(String color, String marca, int mod, String pl){
// Constructor 2this.color = color;this.marca = marca;modelo = mod;placa = pl;
}
Creación de objetos
Corina Flores Villarroel UMSS - Programa MEMI
• Recordemos que … podemos crear diferentesobjetos de una clase, tantos como necesitemos!!!
…..
Creación de objetos
Corina Flores Villarroel UMSS - Programa MEMI
• Para crear un objeto o una instancia de una clase
– Empleamos la palabra reservada new
– Declarar el identificador que representará al objetocon el tipo de dato que hace referencia a la clase.
– Después invocamos al constructor de la clase.
Creación de objetos
Corina Flores Villarroel UMSS - Programa MEMI
• Así por el ejemplo : Creamos un objeto de nombre auto1
a.) Declaramos el objeto
Auto auto1;
nombreClase nombreObjeto
Llamada al constructor de la clase
b.) Definimos el objeto
Auto auto1 = new Auto( “amarillo”, “Nissan”, 2006, “241LPZ”) ;
Creación de objetos
Corina Flores Villarroel UMSS - Programa MEMI
Abrir el proyectoClasesObjetos.zip de www.cs.umss.edu.bo
Estudiar el código!!
Corina Flores Villarroel UMSS - Programa MEMI
Ejercicios
• A continuación … trabajaremos en parejas,
Corina Flores Villarroel UMSS - Programa MEMI
Un equipo de futbol esta constituído por 11 jugadores, dependiendo del sistema de juego que determine el entrenador los jugadores cubren diferentes roles en el campo de juego, porejemplo: mediocampistas, delanteros, … etc. Un entrenador antes de ingresar al campo de juego debe tener conformado el equipocon los jugadores que cree conveniente, para lo que define unalista con los siguientes datos: nombre del jugador, edad, nacionalida, un número que lo identifique y el rol que cumplirádurante el juego.
Ejercicios
• A continuación … trabajaremos en parejas,
Corina Flores Villarroel UMSS - Programa MEMI
Se pide:
1. Identificar las clases
2. Los atributos de las clases identificadas.
3. Los métodos de las clases identificadas. Un métodoque devuelva el número asignado a un jugador y, otroque muestre simplemente el nombre de un jugador.
Ejercicios
• A continuación … trabajaremos en parejas,
Corina Flores Villarroel UMSS - Programa MEMI
Se pide:
4. Representar el modelo de clases
5. Traducir el modelo en código
Ejercicios
• A continuación … trabajaremos en parejas,
Corina Flores Villarroel UMSS - Programa MEMI
Se pide:
7. Escribir el constructor para representar un jugadorcon todos los datos indicados en la descripción.
8. Crear al menos dos objetos utilizando el constructor
9. Con el objeto creado, hacer llamadas a los métodos
Metacognición
Trabajaremos de forma individual 25´, reflexionasobre
• ¿Qué haz aprendido?
• Anota los conceptos que crees no habercomprendido
Corina Flores Villarroel UMSS - Programa MEMI
Ejercicios
Verifica si las siguientes afirmaciones son falsos o verdaderos. Asimismo, verifica si los trozos de código estan bién escritos, si crees que hay error, indicá cuál?, y reescribe el código correcto.
1) Una clase, al igual que un objeto tiene atributos y define suscomportamientos V F
2) A través de los atributos, se determinan el estado de un objeto V F
3) Supongamos que tenemos el siguiente códigopublic void Alarma(Int rinrin){
return suena=true;}
Corina Flores Villarroel UMSS - Programa MEMI
Examina si existe un error, en caso de advertir, indica ¿cuál es?
Ejercicios
4) Sea el siguiente constructor
Estudiante (int codigo, String nombre, String carrera){
…
}
Tomando en cuenta el constructor, creamos objetos estudiantes
Estudiante est = estudiante(“Ana”, 7072011, Sistemas);
Estudiante est = estudiante(2002CBA, “Lola”, “Informatica”);
Corina Flores Villarroel UMSS - Programa MEMI
¿Detectas algún error?, ¿cuál (es)?. Explica! … intenta escribir la forma correcta.
Ejercicios
Sea el modelo de clase
Traduce el modelo a código Java, respetando la sintaxis.
Corina Flores Villarroel UMSS - Programa MEMI
Figura
tamañocolortipo
indicarTamaño()establecerTipo(Boolean t)
Top Related