Está en la página 1de 40

Tema 2.

Objetos, Clases y Programas

Introducción a la Informática y a la Programación


Índice

1. Introducción a clases y objetos


2. Definición de una clase Java: tipos y Componentes
ü Actividad 1
3. Creación y manipulación de un objeto Java
ü Actividad 3, 4, 5, 6, 7

IIP – Grupo G Tema 2.- Objetos, clases y programas 2


1. Introducción a clases y objetos

Ø La Programación es una tarea compleja: escribir


código es costoso y sujeto a errores.
Ø Los lenguajes de alto nivel dan facilidades que
permiten hacer esta tarea más productiva y segura,
entre otras:
‒ Uso de datos complejos o abstractos
‒ Librerías

IIP – Grupo G Tema 2.- Objetos, clases y programas 3


1. Introducción a clases y objetos
Ø Uso de datos complejos o abstractos:
Ø Aunque los ordenadores trabajan con datos numéricos
codificados en binario, los lenguajes dan herramientas para
trabajar con datos que se abstraen de su representación
última.
Ø Por ejemplo:
Ø Se podrán manejar variables numéricas enteras o reales,
Ø Y también variables que contengan frases completas como
“Hola a todos”,
Ø Abstrayéndose de cómo se codifica el carácter ‘H’, el carácter
‘o’, …, y de dónde se almacenan en memoria todos los
caracteres de una frase.

IIP – Grupo G Tema 2.- Objetos, clases y programas 4


1. Introducción a clases y objetos
Ø En los Lenguajes Orientados a Objetos (LOO), como es
el caso de Java, los datos complejos o abstractos se
denominan objetos.
Ø Las clases de Java sirven también para definir la estructura
o componentes de los objetos del mismo tipo.
ØA los objetos de un mismo tipo o clase se le podrán
aplicar las operaciones definidas en su clase.
Ø Java proporciona en sus API's un amplio repertorio de
clases predefinidas que definen clases de objetos.
Ø El programador también podrá definir sus propias clases
de objetos.

IIP – Grupo G Tema 2.- Objetos, clases y programas 5


1. Introducción a clases y objetos
Ø objeto: agrupación o colección de datos y operaciones.
Ø Los objetos que comparten cierto comportamiento se pueden
agrupar en diferentes categorías llamadas clases
Ø clase: describe comportamiento de los objetos que pertenecen
a dicha clase
Ø objeto == instancia de clase

IIP – Grupo G Tema 2.- Objetos, clases y programas 6


1. Introducción a clases y objetos

IIP – Grupo G Tema 2.- Objetos, clases y programas 7


1. Introducción a clases y objetos
Ejemplo: Clase Punto

Ø Deseamos definir la clase Punto


Ø ¿Qué atributos tendrá?
Ø ¿Qué operaciones (métodos) podremos hacer sobre los
objetos de esa clase?
Ø Muestra ejemplos de objetos de la clase Punto

IIP – Grupo G Tema 2.- Objetos, clases y programas 8


1. Introducción a clases y objetos
Ejemplo: Clase Punto

Ø Deseamos definir la clase Punto


Ø ¿Qué atributos tendrá? x, y (abcisa, ordenada)
Ø ¿Qué operaciones (métodos) podremos hacer sobre los
objetos de esa clase?

p2 • Crear puntos (método constructor)


• Obtener su abcisa / ordenada
• Modificar su abcisa / ordenada
• Calcular la distancia del punto al
origen: 𝑥 ! + 𝑦 !
p1
• Mostrar el punto en formato: (x,y)

Ø Ejemplos de objetos de la clase punto:


Ø Punto p1
Ø Punto p2

IIP – Grupo G Tema 2.- Objetos, clases y programas 9


1. Introducción a clases y objetos
Ejemplo: Clase Rectángulo

Ø Deseamos definir la clase Rectángulo


Ø ¿Qué atributos tendrá?
Ø ¿Qué operaciones (métodos) podremos hacer sobre los
objetos de esa clase?
Ø Muestra ejemplos de objetos de la clase Rectángulo

IIP – Grupo G Tema 2.- Objetos, clases y programas 10


1. Introducción a clases y objetos
Ejemplo: Clase Rectángulo

Ø Deseamos definir la clase Rectangulo


Ø ¿Qué atributos tendrá? base, altura, color, centroX, centroY
Ø ¿Qué operaciones (métodos) podremos hacer sobre los
objetos de esa clase?
• Crear rectángulos (método constructor)
• Obtener su base / altura / color / centro
• Modificar su base / altura / color / centro
• Calcular su diagonal, su perímetro, su área

Ø Ejemplos de objetos de la clase Rectangulo:


Ø Rectangulo r1
r1
Ø Rectangulo r2 r2

IIP – Grupo G Tema 2.- Objetos, clases y programas 11


1. Introducción a clases y objetos à Librerías
Ø En Java, las clases que no contienen un main, son
repositorios o almacenes de operaciones utilizables en
el código de otras clases.

Ø De hecho, al instalar Java se instala un amplísimo repertorio


de estas clases: librerías predefinidas de Java
Ø Ya compiladas y acompañadas por su documentación en formato
html (Application Programing Interface o Interfaz de Programación de
Aplicaciones).
Ø Ejemplo de librerías predefinidas de Java: System, Math

Ø El programador también podrá definirse sus propias


librerías.

IIP – Grupo G Tema 2.- Objetos, clases y programas 12


1. Introducción a clases y objetos à Librerías
Ø Ejemplo: El siguiente programa escribe la raíz cuadrada
de 26, usando una operación de la librería Math:
public class Ejemplo3 {
public static void main(String[] args) {
int a = 26;
System.out.println(Math.sqrt(a));
}
}

Ø Al ejecutar Ejemplo3, además del código escrito


explícitamente en su operación main, indirectamente se
está usando código de, entre otras, las clases predefinidas
de Java System, y Math.

IIP – Grupo G Tema 2.- Objetos, clases y programas 13


Índice

1. Introducción a clases y objetos


2. Definición de una clase Java: tipos y Componentes
ü Actividad 1
3. Creación y manipulación de un objeto Java
ü Actividad 3, 4, 5, 6, 7

IIP – Grupo G Tema 2.- Objetos, clases y programas 14


2. Definición de una clase Java: tipos y componentes
Ø Clasificaremos las clases de Java según su estructura y uso:
Ø Clases Programa. Contienen una operación de la forma:
public static void main (String[] args) {
...
}

Cuando se ejecuta la JVM, se empieza ejecutando esta operación main.

Ø Clases de utilidades o librerías. Son almacenes de operaciones que


pueden utilizarse desde otras clases.
Ø Ejemplo: la clase predefinida de Java Math.

Ø Clases Tipos de Datos. Definen clases de objetos. NO tienen método


main.
Ø Ejemplos: la clase Circulo, la clase predefinida de Java String.

IIP – Grupo G Tema 2.- Objetos, clases y programas 15


2. Definición de una clase Java: tipos y componentes
Ø Estructura básica de una clase: cabecera y cuerpo

IIP – Grupo G Tema 2.- Objetos, clases y programas 16


2. Definición de una clase Java: tipos y componentes
Ø Estructura básica: bloques
Ø Java es un lenguaje orientado a bloques, o “unidades” de código
Ø Delimitadores de bloque: llaves de inicio { y final de bloque }
Ø Bloques de instrucciones:
Ø Secuencia de cero o más instrucciones comprendidas entre las llaves { }
Ø Las instrucciones están separadas por ; y serán ejecutadas
secuencialmente.

Ejemplo:
cuerpo de
una clase

IIP – Grupo G Tema 2.- Objetos, clases y programas 17


2. Definición de una clase Java: tipos y componentes
Ø Estructura básica: modificadores
Ø Definen el ámbito de la declaración
Ø private: toda la información declarada private es exclusiva del objeto e inaccesible
desde fuera de la clase.
Ø public: toda la información declarada public es accesible desde fuera de la clase.
public class Circulo {

private double radio;


Cualquier intento de acceso a estos
private String color;
atributos desde fuera de la clase Circulo
private int centroX;
dará un error de compilación
private int centroY;

public Circulo() {
radio = 50; color = "negro";
centroX = 100; centroY = 100;
}
public double area() {
Estos métodos son public y sí pueden
return 3.14 * radio * radio;
ser utilizados desde fuera de esta clase.
}
...
IIP
} – Grupo G Tema 2.- Objetos, clases y programas 18
2. Definición de una clase Java: tipos y componentes
Ø Estructura básica: modificadores
Ø Definen el ámbito de la declaración
Ø private: toda la información declarada private es exclusiva del objeto e inaccesible
desde fuera de la clase.
Ø public: toda la información declarada public es accesible desde fuera de la clase.
public class Circulo { Cualquier intento de acceso a un atributo
privado desde fuera de la clase Circulo
private double radio; dará un error de compilación
private String color;
private int centroX; public class PruebaCirculo {
private int centroY; public static void main(String[] args){
Circulo miCirculo = new Circulo();
public Circulo() { miCirculo.radio = 2;
radio = 50; color = "negro"; double area = miCirculo.area();
centroX = 100; centroY = 100; }
} }
public double area() {
El método area es public y sí puede ser
return 3.14 * radio * radio;
utilizado desde fuera de esta clase.
}
...
IIP
} – Grupo G Tema 2.- Objetos, clases y programas 19
2.1. Estructura básica de su cuerpo à atributos
Ø Los atributos representan las componentes que tiene
una clase
Ø Se declaran de un tipo de datos determinado
Ø Habitualmente se definen como privados
Ø Eltipo de datos de un atributo define los valores que
éste puede tomar y las operaciones que sobre él se
pueden realizar

IIP – Grupo G Tema 2.- Objetos, clases y programas 20


2.1. Estructura básica de su cuerpo à métodos
Ø Los métodos definen las operaciones que tiene una clase, i.e. las
operaciones que se pueden aplicar sobre los objetos de la clase.
Ø Constan de dos partes:
Ø Cabecera o perfil: modificador de visibilidad, tipo de su resultado,
nombre y, en su caso, lista de parámetros (separados por comas)
Ø Es posible que un método NO devuelva un resultado (tipo void)

Ø Cuerpo: instrucciones que permiten obtener su resultado, al ejecutarlo.


Ø La instrucción return es obligatoria, salvo si el tipo de su resultado es
void, y permite devolver el resultado calculado.

IIP – Grupo G Tema 2.- Objetos, clases y programas 21


2.1. Estructura básica de su cuerpo à métodos
Ø Tipos de métodos:
Ø Constructores: crean un objeto, inicializando sus atributos
Ø Consultores: muestran el estado de un objeto, sin alterarlo,
devolviendo el valor de uno o más de sus atributos
Ø Modificadores: alteran el estado de un objeto, cambiando los valores de
sus atributos
public class Circulo {
...
public Circulo() {
radio = 50; color = "negro”; centroX = 100; centroY = 100;
}
public Circulo(double r, String c, int px, int py){
radio = r; color = c; centroX = px; centroY = py;

public double getRadio() { return radio; }


public void setRadio(double radioNuevo) { radio = radioNuevo; }
...
}
IIP – Grupo G Tema 2.- Objetos, clases y programas 22
Actividades
Actividad 1 - Tipos de métodos
Ø Indica en esta clase qué métodos son constructores, consultores o modificadores

IIP – Grupo G Tema 2.- Objetos, clases y programas 23


2.1. Estructura básica de su cuerpo à métodos
Ø El método main
Ø Marca el punto de inicio de la ejecución de una aplicación (Clase
Programa)
Ø La aplicación más sencilla en Java es una clase cuyo único método público
es main

IIP – Grupo G Tema 2.- Objetos, clases y programas 24


2.1. Estructura básica de su cuerpo à métodos
Ø Ejemplo:

IIP – Grupo G Tema 2.- Objetos, clases y programas 25


Índice

1. Introducción a clases y objetos


2. Definición de una clase Java: tipos y Componentes
ü Actividad 1
3. Creación y manipulación de un objeto Java
ü Actividad 3, 4, 5, 6, 7

IIP – Grupo G Tema 2.- Objetos, clases y programas 26


3. Creación y manipulación de objetos
Ø Operadores new y punto (.)
Ø El operador new se utiliza para crear un objeto de una clase
Ø El operador punto (.) se emplea para seleccionar el atributo
deseado o el método específico que se desea aplicar (ejecutar) sobre
el objeto.

IIP – Grupo G Tema 2.- Objetos, clases y programas 27


3. Creación y manipulación de objetos
Ejemplo: clases Rectángulo y Círculo

Ø En el siguiente ejemplo se va a:
Ø Definir las clases Rectángulo y Círculo
Ø Realizar un programa en Java que usando dichas clases:
1. Cree un objeto Rectángulo
2. Cree un objeto Círculo
3. Muestre por pantalla el área de los polígonos
4. Muestre por pantalla el perímetro de los polígonos

IIP – Grupo G Tema 2.- Objetos, clases y programas 28


3. Creación y manipulación de objetos
Clase Rectángulo en Java
Clase Rectangulo
class Rectangulo { Definición de la clase
double base;
double altura; Atributos, también llamados variables de instancia
/** Crea un rectangulo de base b, altura a */
Rectangulo(double b, double a) {
base = b; Métodos constructores
altura = a; (en este ejemplo solo hay uno)
}

/** Devuelve el area del Rectangulo */


double area() {
return base * altura;
}
Resto de métodos
/** Devuelve el perimetro del Rectangulo */
double perimetro() {
return 2 * (base + altura);
}
}

IIP – Grupo G Tema 2.- Objetos, clases y programas 29


3. Creación y manipulación de objetos
Clase Círculo en Java
Clase Circulo
class Circulo { Definición de la clase

double radio; Atributos, también llamados variables de instancia

/** Crea un Circulo de radio r */


Circulo(double r) { Métodos constructores (en este ejemplo
radio = r; solo hay uno)
}

/** Devuelve el area del Circulo */


double area() {
return 3.14 * radio * radio;
}
Resto de métodos
/** Devuelve el perimetro del Circulo */
double perimetro() {
return 2 * 3.14 * radio;
}

IIP – Grupo G Tema 2.- Objetos, clases y programas 30


3. Creación y manipulación de objetos
Clase Principal
Clase Principal (clase Programa)
Clase Principal
public
Claseclass Principal {
Principal
public class
public Principal
static void {
main(String[] args) {
public class Principal
public
{
// static
Crea unvoid main(String[]
Rectangulo de baseargs)
30 y {
altura 20
Rectangulo r1 = new Rectangulo(30, 20);
public static void main(String[]
Creación de objetos
// Crea un Rectangulo de base 30 args) { 20
y altura usando los métodos
Rectangulo
// Crea un r1 = newde
Circulo Rectangulo(30,
radio 10 20); Creación de objetos
// Crea un Rectangulo de
Circulo c1 = new Circulo(10);base 30 y altura 20 constructores
usando los métodos
Creación de objetos
//Rectangulo r1 = new
Crea un Circulo Rectangulo(30,
de radio 10 20);
constructores
Circulo c1 = new Circulo(10); usando los métodos
// Crea un Circulo de radio 10
Circulo
double c1 = new Circulo(10);
areaDelRectangulo = r1.area();
constructores
Uso de métodos para obtener
double areaDelRectangulo
areaDelCirculo = = r1.area();
c1.area(); información sobre los objetos
Uso de métodos para obtener
double areaDelCirculo = c1.area(); información sobre los objetos
double areaDelRectangulo = r1.area(); Uso de métodos para obtener
double areaDelCirculo = c1.area(); información sobre los objetos

}
Tema 2.- Objetos, clases y programas
}IIP – Grupo G 31
Actividades
Actividad 2
1. Crea una carpeta llamada teoriaIIP
2. Abre BlueJ y crea un Nuevo Proyecto claseIIP dentro de la
carpeta teoriaIIP.
3. Crea un nuevo paquete llamado tema2.

IIP – Grupo G Tema 2.- Objetos, clases y programas 32


Actividades
Actividad 2

Ø Descárgate el fichero actividad2. Descomprímelo, copia todos sus


ficheros en tu carpeta de claseIIP/tema2 y ábrelo en BlueJ
Ø Analiza las clases que contiene.
Ø Ejecuta el programa principal. Para ello:
Ø Sobre la clase “Principal”, pulsa botón derecho, selecciona “void main...”
Ø En la ventana que sale, dale a “Aceptar”
Ø Aparecerá una nueva ventana donde se muestra el cálculo de las áreas y
perímetros de los polígonos.
Ø Modifica el programa principal para que muestre el cálculo de áreas y
perímetros de otros círculos y rectángulos.
Ø Crea nuevos objetos de tipo círculo y rectángulo, con valores distintos de radios,
bases y alturas, respectivamente.
Ø Utilizando los métodos correspondientes, calcula sus áreas y perímetros y
muestra el resultado por pantalla.

IIP – Grupo G Tema 2.- Objetos, clases y programas


Actividades
Actividad 3

¿Qué hay incorrecto en el siguiente código? Corrígelo

IIP – Grupo G Tema 2.- Objetos, clases y programas


Actividades
Actividad 4

Ø Descárgate el fichero actividad4. Descomprímelo, copia todos sus ficheros


en tu carpeta de claseIIP/tema2 y ábrelo en BlueJ.
Ø Revisa todas las clases del proyecto actividad 3 y contesta a las siguientes
preguntas:
a) Respecto a las clases PrimerPrograma y Circulo del proyecto, ¿cuál tiene
atributos y cuál no? ¿Por qué?
b) Para cada atributo de la clase que sí los tenga, identifica los elementos de su
declaración.
c) Para la clase Circulo, identifica los elementos de varias cabeceras de sus métodos.
d) Para la clase Circulo, identifica sus métodos constructores, consultores y
modificadores.
e) La clase Rectangulo, ¿tiene métodos equivalentes a los de la clase Circulo? ¿Por
qué? Identifica sus métodos constructores, consultores y modificadores
f) La clase PrimerPrograma, ¿tiene métodos equivalentes a los de la clase Circulo?
¿Por qué?

IIP – Grupo G Tema 2.- Objetos, clases y programas 35


Actividades
Actividad 4

Ø ¿Cuál de las clases del proyecto actividad4 tiene un


método main? Observa qué ocurre cuando se
ejecuta este método en tu proyecto.

IIP – Grupo G Tema 2.- Objetos, clases y programas 36


Actividades
Actividad 5

Ø Crea una clase SegundoPrograma en el proyecto.


a) Edita la clase para que su único método sea el main que figura a
Introducción a la Informática y a la Programación Grupo D - Curso 2020/21
continuación:

b) Compila la clase SegundoPrograma y, si no tiene errores, ejecútala ¿Cuál es


b) Compila la clase SegundoPrograma y, si no tiene errores, ejecútala
el resultado?
c) Observa
¿Cuál có mo y en que ó rden se han usado los operadores new y punto (.)
es el resultado?
para conseguir que el resultado del algoritmo sea el que es.
c) Observa cómo y en qué orden se han usado los operadores new y
punto (.)
Actividad 4: Crea una clase PruebaCirculo en el proyecto.
a) Edita la clase para su ú nico mé todo sea el main que figura a continuació n.
Antes
IIP – Grupo Tema 2.- Objetos,
G de cada instrucció clases
n, escribe uny programas
comentario que indique qué hace. 37
Actividades
Actividad 6

Ø Genera la documentación de la clase Circulo


Ø Abre la clase Circulo.
Ø En la parte superior derecha de la ventana, despliega el panel
donde indica "Source Code/Código Fuente" y selecciona
"Documentation/Documentación".
Ø Accede a la subcarpeta doc de este proyecto y abre su
fichero Circulo.html para ver la documentación de la
clase Circulo,
Ø generada por BlueJ al editar su interfaz.
Ø Genera ahora la documentación de la clase Pizarra de
este proyecto.

IIP – Grupo G Tema 2.- Objetos, clases y programas 38


Actividades
Actividad 7 - Banco de objetos

Ø Crea varios objetos en el “Banco de Objetos” de BlueJ, usando


los constructores de las clases Circulo y Rectangulo.
Ø Ejemplo:
Ø crea el objeto “circulo1” usando el constructor por defecto.
Ø crea el objeto “circulo2” usando el constructor con parámetros.
Ø Observa los objetos que se crean y revisa el valor de sus
atributos.
Ø Utilizando alguno de los objetos creados, invoca varios de sus
métodos desde el Banco de objetos.
Ø Ejemplo:
Ø consulta el perimetro y el área de circulo1.
Ø modifica el radio de circulo1.
Ø utiliza el método toString de circulo1.

IIP – Grupo G Tema 2.- Objetos, clases y programas 39


Resultados de aprendizaje

Ø Al finalizar esta unidad, el alumno debe ser capaz de:


Ø Definir los conceptos Clase, Objeto y Programa
Ø Clasificar una clase según el uso que vaya a hacerse de ella
Ø Describir e identificar los componentes básicos de una clase
(atributos y métodos) y sus elementos.
Ø Crear un objeto de una clase y ejecutar alguno de sus métodos,
de acuerdo a lo que se especifica en su documentación.
Ø Identificar el lugar de comienzo de ejecución de una clase si
existe (método main) y determinar el orden de ejecución de una
secuencia de instrucciones.
Ø Completar y modificar el código de clases sencillas a partir de
los ejemplos proporcionados y en base a su documentación.

IIP – Grupo G Tema 2.- Objetos, clases y programas 40

También podría gustarte