Tema 6 - Clases (2015)

Apunte Español
Universidad Universidad Politécnica de Madrid (UPM)
Grado Ingeniería de Tecnologías y Servicios de Telecomunicación - 1º curso
Asignatura Programación
Año del apunte 2015
Páginas 4
Fecha de subida 26/09/2017
Descargas 0
Subido por

Vista previa del texto

TEMA 6: CLASES 6.1. Clases -Encapsulación: propiedad de los lenguajes de programación por la cual se manejan de forma conjunta e indivisible algunos datos juntos con sus operaciones. 1 objeto = 1 unidad de encapsulación.
-Una clase es una plantilla que representa un concepto. Contiene atributos y métodos propios.
Hay que poner el número mínimo de atributos.
6.2. Derechos acceso Muestran a que partes del programa se pueden acceder.
private: Sólo se puede usar dentro de esa clase. No se puede modificar ni leer.
public: Se puede usar desde cualquier sitio.
public class Punto { private double x; private double y; public Punto (double x, double y) { this.x = x; this.y = y; public double getX () { return this.x; } public void setX (double x) { this.x = x; } public boolean equals (Punto p) { if (p==null) { return false; } return ( (this.x == p.x) && (this.y == p.y) ); } } Los atributos se marcan como privados, los métodos públicos.
p.x => Significa que si quiero acceder a un atributo privado, solo puedo usar objeto.atributo si es dentro de la misma clase desde donde quiero acceder. Si queremos acceder desde otra clase, debemos usar objeto.getAtributo ().
-Parte pública o interface  Todo lo que lleva public (las cabeceras, sin el cuerpo).
-Parte privada o implementación  Los atributos privados, las métodos privados y los cuerpos de los métodos.
Si no ponemos privado o publico a un atributo, método o clase => Este será publico para las otras clases dentro del paquete, pero privado para las de fuera del paquete.
6.3. Documentación En una clase tenemos que cumplir tres cosas para que sea legible: estilo de programación, poner comentarios y poner documentación automática.
1) Estilo de programación -El nombre de la clase empieza por Mayúscula.
-El nombre de los métodos empiezan por minúscula.
-El nombre de los atributos empiezan por minúscula.
-El nombre de las constantes se escriben en MAYÚSCULAS completamente. Si son más de una palabra, se separan por guión bajo: Ej: NUMERO_PI -Hay que respetar el sangrado.
2) Comentarios Textos que descarta el compilador. Hay dos tipos: *Comentario táctico: // ……………… *Comentario estratégico: /* * TEXTO */ 3) Documentación automática (JAVADOC) Se ponen encima de la clase o del método público. Generan páginas html de lenguaje “humano”. Hay dos tipos: *Documentación automática de la clase: /** * Punto2D => Aquí se da un comentario sobre la clase *@author nombre@alumnos.upm.es => Se pone el correo del autor (o número, dirección, …) *@version 1.0 => El número de versión.
*/ *Documentación automática de los métodos publicos: /** *Calcula la distancia entre 2 puntos => Descripción del método *@param p.otroPunto => Por cada parámetro que demos, metemeos uno de estos.
*@throws Exception si p = null => Ponemos el mombre de la excepción y cual es.
*@return distancia euclídea => Que retorna */ 6.4. Paquetes Los paquetes son agrupación de clases.
package es.upm.dit.prog.practica3; import java.util.*; => Hay otras clases de otros paquetes que se pueden usar / importar.
El DNS de un paquete sería: es.upm.dit 6.5. Estáticos Pueden serlo atributos y métodos.
“Hay un solo valor para todos”  Static.
A veces se necesita un solo atributo para todos los objetos de la clase, o bien, un atributo sin objetos.
Ejemplo: Contar nº de objetos que se crean: -Forma mal hecha: class Punto { private int n = 0; public Punto () { n++; } } Está mal porque n siempre valdrá 0+1 = 1. Además, no se pueden dar valores a atributos fuera del constructor -Forma bien hecha: class Punto { private static int n = 0; public static int getN () { return n; } public Punto () n++; } } Solo se puede dar valores a atributos fuera del constructor si llevan static. No poner this.
Al atributo n se le ha puesto un get para poder llamarlo.
6.6. Relaciones entre clases a) Relación de uso: El cliente usa al servidor.
b) Relación de composición: El triángulo (“el todo”) tiene al punto (“la parte”).
6.7. Composición public class Triangulo { private Punto p1; private Punto p2; private Punto p3; //FORMA 1: public Triangulo (Punto p1, Punto p2, Punto p3) { this.p1 = p1; this.p2 = p2; this.p3 = p3; } //FORMA 2: public Triangulo (Punto p1, Punto p2, Punto p3) { this.p1 = new Punto (p1.getX(), p1.getY() ); this.p2 = new Punto (p2.getX(), p2.getY() ); this.p3 = new Punto (p3.getX(), p3.getY() ); } } public class PruebaTriangulo { Punto p1 = new Punto; Punto p2 = new Punto; Punto p3 = new Punto; Triangulo t = new Triangulo (p1, p2, p3); p1.setX(0); p2.setX (0); p1.setY (0); p2.setY (0); public double parimetro () { return (this.p1.distancia(this.p2) + this.p2.distancia(this.p3) + this.p3.distancia(this.p1) ); } public Triangulo (p1, p2, p3) throws Exception { if ( (p1==null) || (p2 == null) || (p3 == null) ) { throws new Exception (); } } } ...

Comprar Previsualizar