Trabajo Academico
Trabajo Academico
Trabajo Academico
Eléctrica
Trabajo
académico
CICLO: IV
Programación orientada a objetos
• Ejercicio 1
¿Cuáles serian los atributos de la clase PilotoDeFormula1? ¿Se te ocurren algunas
instancias de esta clase?
Clase:
Concepto abstracto que de nota una serie de cualidades, por ejemplo, PilotoDeFormula1.
Instancia:
Objeto palpable, que se deriva de la con creación de una clase, por ejemplo, mi piloto.
Atributos:
Conjunto de características que comparten los objetos de una clase, por ejemplo, para la clase
PilotoDeFormula1 tendríamos, Nombre, DNI, Código, Grado_ profesional.
// atributos
}
• Ejercicio 2
¿Cómo se utilizan estos modificadores que No son de acceso? De ejemplos.
✓ Static
Sirve para crear miembros que pertenecen a la clase, y no a una instancia de la clase.
Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para
poder acceder a estos atributos y métodos.
En ocasiones es necesario o conveniente generar elementos que tomen un mismo
valor para cualquier número de instancias generadas o bien invocar/llamar métodos
sin la necesidad de generar instancias, y es bajo estas dos circunstancias que es
empleado el calificador static.
Dos aspectos característicos de utilizar el calificador static en un elemento Java son
los siguientes:
– No puede ser generada ninguna instancia (uso de new) de un elemento static puesto
que solo existe una instancia.
– Todos los elementos definidos dentro de una estructura static deben ser static ellos
mismos, o bien, poseer una instancia ya definida para poder ser invocados.
public class Mates {
//Atributo de la clase Mates static
public static float pi = 3.14f;
//Podemos acceder a el mediante el nombre de la clase
public static void main(String[] args) {
System.out.println(Mates.pi);
}
}
✓ Final
Indica que una variable, método o clase no se va a modificar, lo cuál puede ser útil para
añadir más semántica, por cuestiones de rendimiento, y para detectar errores.
✓ Abstract
La palabra clave abstract indica que no se provee una implementación para un cierto
método, sino que la implementación vendrá dada por las clases que extiendan la clase
actual. Una clase que tenga uno o más métodos abstract debe declararse
como abstract a su vez.
✓ Synchronized
En caso de que necesitemos atomicidad podemos recurrir a synchronized o a cosas
más avanzadas, como las clases del API java.util.concurrent de Java 5.
synchronized se diferencia de volatile entre otras cosas en que este modificador se
utiliza sobre bloques de código y métodos, y no sobre variables. Al
utilizar synchronized sobre un bloque se añade entre paréntesis una referencia a un
objeto que utilizaremos a modo de lock.
//Ejemplo de syncrhonized sobre un bloque de codigo
int contador;
public void aumentar() {
synchronized(this) {
contador++;
}
}
//Ejemplo de syncrhonized sobre un metodo
int contador;
✓ Transient
Las variables Java transient sirven para demarcar el carácter temporal o transitorio de
dicha variable, es decir, que no siempre se tendrá acceso al valor de la variable.
✓ Volatile
volatile es más simple y más sencillo que synchronized, lo que implica también un
mejor rendimiento. Sin embargo, volatile, a diferencia de synchronized, no
proporciona atomicidad (que o se ejecuten todos los pasos o ninguno), lo que puede
hacer que sea más complicado de utilizar.
Una operación como el incremento, por ejemplo, no es atómica. El operador de
incremento se divide en realidad en 3 instrucciones distintas (primero se lee la
variable, después se incrementa, y por último se actualiza el valor) por lo que algo
como lo siguiente podría causarnos problemas a pesar de que la variable sea volatile:
✓ Native
EL modificador native indica que un método es implementado en una plataforma
dependiente, como a veces ocurre en C. Native es un modificador y solo puede ser
aplicado a métodos, ni a clase, ni a variables, solo a métodos. Tomemos nota de que
el cuerpo de los métodos marcados como native pueden terminar en (;) como en los
métodos abstract, indicando que la implementación está omitida.
• Ejercicio 3
¿Cuáles serian los atributos de la clase vivienda? ¿Qué subclases se te ocurren?
Clase: vivienda
Subclases:
Estados:
Atributos: área_terreno,N°pisos,N°dormitorios
Comportamiento:
• Ejercicio 4
Haz una lista con los atributos que podría tener la clase caballo. A continuación,
haz una lista con los posibles métodos (acciones asociadas a los caballos).
Clase: caballo
// atributos //
// métodos //
// constructor//
this.Nombre = Nombre;
this.color = color;
this.raza = raza;
this.sexo = sexo; }
} // getter and setter
return Nombre;
this.Nombre = Nombre; }
System. out.println("hihihihihhi");}
if (comida. equals("pasto"))