Objetos y Clases Lic. MSc. Corina Flores Villarroel Universidad Mayor de San Simón Facultad de...
-
Upload
adelita-cortes -
Category
Documents
-
view
232 -
download
3
Transcript of Objetos y Clases Lic. MSc. Corina Flores Villarroel Universidad Mayor de San Simón Facultad de...
UMSS - Programa MEMI
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 conceptos
básicos de la Programación Orientada a Objetos (POO).
• ¿Qué es POO?, ¿cuál es su principal característica o principio?
• ¿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 como la 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ón Orientada 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 objetos estan compuestos por otros objetos más pequeños, con los cuales se pueden interactuar.
•
Corina Flores Villarroel
UMSS - Programa MEMI
Programación Orientada a Objetos
• Por ejemplo:
Corina Flores Villarroel
Clases
Objetos
Métodos
Atributos
Declaraciones
Expresiones
Operadores
UMSS - Programa MEMI
Programación Orientada a Objetos
Principio: una de las características principales de la POO es …
1. Abstracción, es suprimir y ocultar algunos detalles de un proceso o de un elemento, para resaltar algunos aspectos, detalles o estructuras.
La abstracción es la forma en que nuestra mente modela la realidad, formando los objetos. Por eso se crea objetos en los programas que simulen los comportamientos de 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 nos preocupamos 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 u objeto, esto es abstraer!!! … con tal que podamos interactuar con él para satisfacer nuestra necesidad de desplazarnos por ejemplo.
Corina Flores Villarroel
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• Eficiente
Corina 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 individuo particular, o una instancia de un clase.
Corina Flores Villarroel UMSS - Programa MEMI
AGRUPACIÓN de autos que representa a la clase AUTOS
OBJETORepresentación específica y
concreta de UN AUTO a partir de ese grupo de autos
UMSS - Programa MEMI
Objetos Aplicando el concepto de Abstracción a la comprensión de una cosa (objeto), en función de sus características y comportamientosContinuando con el ej.
Características
Comportamiento
•Color •Marca•Modelo•Placa
•getColor() •mostrarKilometraje()•Acelerar()
Objeto
Corina Flores Villarroel
UMSS - Programa MEMI
Objetos Los objetos son entidades que combinan:
• estado (atributo),
• comportamiento (método) e
• identidad
ESTADO, se refiere a la asignación de valores concretos (datos) a los atributo. Ej. Color = “amarillo”; COMPORTAMIENTO, esta
definido por los metodos con que puede operar dicho objeto, ie, que operaciones se puede realizar con él.Ej. mostrarKilometraje()
IDENTIDAD,propiedad de un objeto que lo diferencia del restoEj. auto1
Corina Flores Villarroelauto1
UMSS - Programa MEMI
Resumiendo …La POO concibe a la programación como un grupo de objetos que trabajan juntos .Por ejemplo 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
ClasesDefine una categoría de objetos, en otras palabras, son plantillas que permiten crear objetos a partir de ellas. Estan compuestas de:
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
Clase Monitor
UMSS - Programa MEMI
Por ejemplo
Corina Flores Villarroel
Clase Monitor
Monitor Samsumg
Monitor LG
Monitor Sony
UMSS - Programa MEMI
Creamos distintos objetos a partir de la clase
Corina Flores Villarroel
Monitor Samsumg
Monitor LG
Monitor Sony
UMSS - Programa MEMI
Clases¿Qué es una clase?
Una clase es una agrupación o colección de objetos que comparten características y comportamiento comunes.
La Clase representa una abstracción, la esencia que comparten los 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
CABECERA de la clase
CUERPO de la clase
class nombreClase
}
Declaración atributos
Definición de métodos
{
UMSS - Programa MEMI
Declaración de Atributos
Corina Flores Villarroel
En la declaración se distinguen 3 elementos :
• El nombre del tipo de dato o tipo de valores que puede tomar un atributo.
• El nombre del atributo, denominado también identificador o variable.
• El separador punto y coma (;) que marca el fin de una declaración
UMSS - Programa MEMI
Declaración de Atributos
Corina Flores Villarroel
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
UMSS - Programa MEMI
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
Define un conjunto de valores y las operaciones sobre estos valores.
UMSS - Programa MEMI
TAREA
• Averiguar la forma como se representan los tipos de datos en Java.
• Ej. Numéricos (entero)….
Corina Flores Villarroel
Int
Short
…
UMSS - Programa MEMI
Tipo de Dato: Constante
• Datos que no cambian su valor durante el desarrollo o ejecución de un programa
Corina Flores Villarroel
3.141592Valor_de_Pi
double Valor_de_Pi ;
= ;
UMSS - Programa MEMI
Tipo de Dato: Variable
• Datos que cambian o modifican su valor durante el desarrollo o ejecución de un programa.
Corina Flores Villarroel
0velocidad 60120
Estado de un objeto
int velocidad;= ;
UMSS - Programa MEMI
Tipo de dato: Asignación
• Las variables o llamadas también como contenedoras tienen la capacidad de recibir valores de acuerdo al tipo de dato.
• Del ejemplo …
int velocidad = 120 ;
Corina Flores Villarroel
Símbolo ASIGNACIÓN
Ambos deben corresponder al MISMO tipo de dato
UMSS - Programa MEMICorina Flores Villarroel
int velocidad = 120 ;
Tipo de dato: Asignación
TipoDato NombVariable SimbAsignación Valor
UMSS - Programa MEMI
Iniciamos con BlueJ1. Creamos un proyecto2. Ingresamos en el entorno de BlueJ3. Las herramientas dispuestas al lado izquierdo de la ventana,
permiten crear: Clases, establecer relaciones entre clases, y efectuar 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
/** * Write a description of class Auto here. * * @author (CFV) * @version (30-09-2011) */
UMSS - Programa MEMI
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 documentar internamente el código
Corina Flores Villarroel
public class Auto{ // Aquí se describen las características o 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: 2009 private String marca;
UMSS - Programa MEMI
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ón AND ConjunciónOR Disyunción
Corina Flores Villarroel
Símbolo que indica qué operación debe llevarse a cabo
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
• Definen el comportamiento de una clase• Es la agrupación de un conjunto de instrucciones
que resuelven una tarea particular.• Una invocación (llamada) a un método activa ese
comportamiento sobre un determinado objeto.
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
• La definición de un método tiene dos partes:– El encabezamiento– El cuerpo
• Así por ejemplo ...
tipoRetorno nombreMetodo( [lista_de_parámetros] )
{ cuerpoMetodo }
UMSS - Programa MEMICorina Flores Villarroel
• Encabezamiento de un método– Contiene a su vez tres elementos:
1. Tipo de resultado o retorno2. Nombre del método3. La lista de parámetros que se encuentran entre ()
Ejemplo:
Métodos
public String getColor() { // put your code here return color; }
1 2 3
UMSS - Programa MEMI
Iniciamos con BlueJ … cont• Algunas recomendaciones antes de iniciar a escribir código.
– Nominación de métodos de la clase, comienzan con minúsculas y generalmente es la combinación de dos o tres palabras.
Corina Flores Villarroel
public String marcaAuto() { return marca; }
public int modeloAuto() { return modelo; }
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
• El tipo de retorno de un método dependerá de:
• Si después de procesar los datos, al método no se pide que devuelva un valor, el tipo de retorno será void.
• En cambio, si se pide por ejemplo, calcular el salario líquido de 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 palabra clave return. Como última instrucción en el cuerpo del método.
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
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 palabra reservada o ser igual al nombre de una variable que aparece en su cuerpo del método.
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
Parámetro o argumento
• Es una variable que es recibida por un método. Un parámetro influye en el comportamiento o el resultado de la ejecución del método.
Una variable es un espacio de memoria reservado para almacenar un valor que corresponde a un tipo de dato
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
PARAMETROS
ACTUALES, permiten enviar valores al método. Se encuentran generalmente en la llamada al método.
FORMALES, permiten recibir valores para usar dentro el método. Se encuentran en la definición del método.
UMSS - Programa MEMI
Métodos
Corina Flores Villarroel
Parámetros formales
public void setKilometraje(int kilom)
{
kilometraje = kilom;
}
Parámetros actuales
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 nombre relacionado con la tarea que realizará el método.
Todos los valores necesarios para ejecutar la tarea, sin especificar sus tipos
setValor(double respuesta) ;Así:
UMSS - Programa MEMI
Llamada a método
Corina Flores Villarroel
• La llamada o invocación a un método externo se realiza con 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 instanciade una clase.
Método, es el nombre del método que pertenece a la clase
UMSS - Programa MEMI
Paso de parámetros
Corina Flores Villarroel
• Al hecho de que los parámetros actuales envian valores que 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)
UMSS - Programa MEMI
Paso de parámetros
Corina Flores Villarroel
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
UMSS - Programa MEMI
El constructor
Corina Flores Villarroel
Permite la creación de objetos que pertenecen 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.
UMSS - Programa MEMI
El constructor
Corina Flores Villarroel
public class Auto{ // Declaración de atributos private 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;
}
UMSS - Programa MEMI
Creación de objetos
Corina Flores Villarroel
• Recordemos que … podemos crear diferentes objetos de una clase, tantos como necesitemos!!!
• Para crear un objeto o una instancia de una clase – Empleamos la palabra reservada new– Declarar el identificador que representará al objeto
con el tipo de dato que hace referencia a la clase.– Después invocamos al constructor de la clase.
UMSS - Programa MEMI
Creación de objetos
Corina Flores Villarroel
• 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”) ;
UMSS - Programa MEMICorina Flores Villarroel
UMSS - Programa MEMI
Ejercicios
• A continuación … trabajaremos en parejas,
Corina Flores Villarroel
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, por ejemplo: mediocampistas, delanteros, … etc. Un entrenador antes de ingresar al campo de juego debe tener conformado el equipo con los jugadores que cree conveniente, para lo que define una lista 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étodo que devuelva el número asignado a un jugador y, otro que 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 jugador con 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
UMSS - Programa MEMI
Metacognición
Trabajaremos de forma individual 25´, reflexiona sobre
• ¿Qué haz aprendido?
• Anota los conceptos que crees no haber comprendido
Corina Flores Villarroel
UMSS - Programa MEMI
EjerciciosVerifica 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 sus comportamientos 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
Examina si existe un error, en caso de advertir, indica ¿cuál es?
UMSS - Programa MEMI
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
¿Detectas algún error?, ¿cuál (es)?. Explica! … intenta escribir la forma correcta.
UMSS - Programa MEMI
Ejercicios
Sea el modelo de clase
Traduce el modelo a código Java, respetando la sintaxis.
Corina Flores Villarroel
Figura
tamañocolortipo
indicarTamaño()establecerTipo(Boolean t)