Logo Studenta

Resumen Clases y Objetos - Grupo Delta - UnaviableJosue

¡Estudia con miles de materiales!

Vista previa del material en texto

UNIVERSIDAD DE GUAYAQUIL 
FACULTAD DE INGENIERÍA INDUSTRIAL 
CARRERA DE INGENIERÍA EN SISTEMAS 
ASIGNATURA: 
PROGRAMACION ORIENTADA A OBJETOS 
PARALELO: 
SIN-S-MA-2-1 VAN20 
DOCENTE: 
ING. JOSÉ CAICEDO SALAZAR 
GRUPO DELTA 
INTEGRANTES DEL GRUPO: 
➢ MANCILLA DUMES JOSUÉ JEREMIT 
➢ FREIRE SALAZAR JORGE LUIS 
➢ LLORENTE MERA NAGELHY VICTORIA 
➢ TORRES NARVÁEZ JOHN TORRES 
➢ VILLACIS RAMOS VÍCTOR HUGO 
 
 
 
 
 
Introducción 
Todos los días, son empleados numerosos objetos en nuestras vidas, algunos de los 
cuales tienen ciertas características comunes que los hacen pertenecer a una categoría 
particular. Por ejemplo, John Davenport y Edna Smith son estudiantes en una 
universidad. Ambos tienen algunos atributos en común como el nombre, edad, 
número de identificación del estudiante, nombre de la universidad, carrera 
estudiando, estatus del estudiante, cursos registrados, calificaciones obtenidas, y así 
sucesivamente, que son comunes a cualquier estudiante. Aunque ellos comparten este 
conjunto de atributos, los valores de los atributos serán diferentes y específicos para 
cada persona. 
Similarmente, el carro de John y el de Edna pertenecen a una categoría llamada carro. 
Algunos de los atributos comunes a esta categoría son: número de placa del carro, 
fecha de fabricación, tipo de carro, etc. En un escenario orientado a objetos, John y 
Edna son objetos de la clase estudiante y sus carros son objetos de la clase carro. 
Clases y Objetos 
Una clase es una entidad auto contenida que provee una plantilla (framework) para 
definir atributos y comportamiento encontrados comúnmente en objetos de software 
pertenecientes a un tipo en particular. Los atributos se representan como variables y el 
comportamiento como métodos en una clase Java. Cualquier instancia creada a partir 
de la plantilla se denomina un objeto. El proceso a través del cual una instancia 
(objeto) se crea se llama instanciación. 
Una vez modelada la clase, se pueden crear cualquier número de objetos de ella. Para 
crear un objeto de la clase, se necesita un constructor. Un constructor es un método 
(un método es similar a una función en C o C++), que tiene el mismo nombre de la 
clase. En el ejemplo anterior, se puede usar el método Estudiante() para crear un 
objeto de la clase Estudiante, llamado estudiante. El atributo nombre de este objeto 
será el nombre de estudiante Edna Smith. El código Java que permite hacer esto se 
muestra a continuación: 
Estudiante estudiante = new Estudiante(“Edna Smith”); 
 
Estructura de una Clase Java 
Una clase Java consiste de una sentencia package, sentencia import, y una definición 
de clase. Puede haber más de una sentencia import en el mismo programa Java. 
import NombreClase; 
Las sentencias import son seguidas por la definición de la clase. De acuerdo a la 
sintaxis general de una clase, se requiere sólo la palabra reservada class seguida por 
el nombre de la clase. 
Miembros de una Clase Java 
Una clase Java tiene variables miembro y métodos miembro. Una clase Java usa 
modificadores de acceso para otorgar permiso a otras clases para acceder a una 
variable o método en particular. Un modificador de acceso especifica el acceso a una a 
variable, método o clase 
Variables 
Las variables disponibles en una clase pueden ser de varios tipos, son estos, variables 
de instancia, variables de clase, variables final, variables transient y variables volatile. 
Variables de Instancia 
Algunas variables tienen diferentes valores para diferentes instancias de la clase. Estas 
son llamadas variables de instancia. 
Variables de Clase 
Estas variables se denominan variables de clase. Las variables de clase a veces se les 
llaman variables static. Sólo habrá una copia de una variable de clase en la memoria 
independientemente del número de instancias creadas de la clase. Así si el valor es 
cambiado en alguna instancia, se reflejará en todas las instancias de la clase. Se usa el 
modificador static para declarar que una variable es una variable de clase. Para tener 
acceso a una variable de clase no se necesita crear una instancia de la clase. Se puede 
acceder a una variable de clase directamente por su nombre junto con el nombre de la 
clase. 
Variables Volátil (Volatile) 
El compilador Java, en tiempo de compilación, realiza muchas optimizaciones para 
mejorar el desempeño de un programa. El modificador volatile previene al compilador 
de realizar ciertas optimizaciones sobre una variable miembro. Le dice al compilador 
que el valor de la variable puede ser cambiado inesperadamente por otras partes del 
programa. Esta variable miembro se denomina variable volatile. El compilador, no 
realiza optimizaciones en estas variables. 
El modificador volatile se coloca antes de la declaración de la variable. 
Variables Transitorias (Transient) 
El modificador transient se usa en una declaración de variable para especificar al 
sistema de tiempo de ejecución de Java que la variable no debe ser serializada. Una 
variable que no puede ser serializada y que tiene especificado el modificador transient, 
se denomina variable transient 
La sintaxis para declarar variables transient en Java es la siguiente: 
transient int var = 100; 
4.5 Variables Final 
 El modificador final indica que el miembro tiene un valor constante. Un miembro con un valor 
constante no puede ser modificado. Este tipo de variable se denomina una variable final. En 
caso de que se trate de cambiar el valor de una variable final en el programa, entonces se 
generará un error en tiempo de compilación. Como se muestra aquí: 
final float PI = 3.14; 
 
Declaración de Variables Miembro 
Aquí, nombre es declarada como una variable miembro, porque la declaración se hace dentro 
del cuerpo de la clase y fuera de cualquier método o constructor de la clase. El nombre de la 
variable miembro es nombre, y su tipo de dato es String. El modificador private indica que 
nombre como una variable sólo puede ser accedida dentro de los constructors y métodos de la 
clase Estudiante. 
 
Métodos 
Los métodos en Java se usan para tener acceso y manipular las variables. Usualmente, los 
métodos se usan para asignar, recuperar, o cambiar los valores almacenados en una variable. 
La definición de métodos establece el tipo y nombre de los parámetros de entrada. Los 
parámetros pasan a ser variables locales del método, también el método puede declarar otras 
variables locales dentro de ella 
 
public void hacerCualquierCosa() { 
MiClase mc; 
mc.getNombre(); // Error 
mc = new MiClase(); 
mc.getNombre(); // OK 
 
También se puede combinar el uso de parámetros variables con parámetros no variables, con 
la restricción de que la declaración del parámetro variable solo se puede hacer al final de la 
lista de argumentos del método. Se presenta un ejemplo de lo dicho anteriormente: 
 
public void hacerCualquierCosa(String a, int … args) { 
System.out.println("a: " + a); 
for (int arg : args) 
System.out.println(arg); 
} 
 
 
Métodos de Instancia 
Ciertos métodos definidos en una clase operan en variables de instancia de la instancia actual 
de una clase. Ellos también pueden tener acceso a las variables de clase de esa clase. Estos 
métodos se denominan métodos de instancia. Las siguientes variables y métodos pueden ser 
accedidos por un método de instancia: 
• Variables de instancia. 
• Variables de clase. 
• Otros métodos de instancia. 
• Métodos de clase. 
 
 
Un método setter se usa para asignar valor a variables privadas. Los métodos setter se inician 
con la palabra set. La Figura 1.10 muestra como el método setter se usa para asignar valor a la 
variable nombre. 
 
public void setNombre(String nuevoNombre){ 
nombre = nuevoNombre; 
} 
Métodos de Clase 
Otros métodos definidos en la clase operan solo en variables de clase. Se pueden invocar éstos 
métodos directamente usando el nombre de la clase sin necesidadde crear una instancia. 
Estos métodos se conocen como métodos de clase o métodos estáticos. Por ejemplo, un 
método de clase miMetodoDeClase() de MiClase puede ser invocado como: 
MiClase.miMetodoDeClase() 
 
Un método de clase no puede acceder a variables de instancia o métodos de instancia. 
Acceder a variables o métodos no estáticos desde un método estático genera un error en 
tiempo de compilación, aunque un método de clase puede ser accedido a través de una 
instancia. 
La librería Math y las clases envolventes (wrapper) tienen varios métodos estáticos. La Figura 
1.11 muestra el uso del método estático parseInt definido en la clase Integer. 
 
Cuando un usuario inicia una aplicación, algún código debe ser ejecutado. Sin una referencia a 
objetos, no habrá código a ser ejecutado. Java supera esto proveyendo el método main, que es 
un método estático. Este método estático main es independiente de un objeto. Dentro del 
método main, otros objetos pueden ser instanciados. 
A continuación se aprenderá a cómo usar los métodos de clase para acceder a la clase. 
 
Uso de Métodos de Clase para Acceder a la Clase 
Cuando una declaración de un método tiene el modificador static, indica que el método es un 
método de clase y no un método de instancia. Un método de instancia solamente se puede 
usar cuando se crea un objeto. Un método de clase se puede usar independientemente del 
objeto. 
Si el constructor de una clase se declara como private, no se puede crear un objeto de la clase. 
En este caso, se puede acceder a métodos estáticos para usar los métodos y variables 
disponibles en la clase. Sea el Ejemplo 1.1, que muestra como los métodos estáticos se pueden 
usar en un programa Java. 
 
Ejemplo 1.1 
El siguiente código muestra el uso de métodos estáticos. 
El código Java comienza aquí... 
1. /*Definicion de la clase StaticEjemplo comienza aqui*/ 
2. public class StaticEjemplo { 
3. static int n; 
4. 
 5. /*El metodo agregar comienza aqui */ 
6. static public void agregar(int j, int k) { 
7. n = j + k; 
8. System.out.println(n); 
9. }/* El metodo agregar termina aqui */ 
10. 
11. /*El metodo main comienza aqui */ 
12. public static void main(String[] args) { 
13. agregar(53, 74); 
14. }/* El metodo main termina aqui */ 
15. }/*Definicion de la clase StaticEjemplo termina aqui*/ 
La sintaxis para declarar variables transient en Java es la siguiente: 
transient int var = 100; 
Una clase es una entidad auto contenida que provee un framework para definir atributos y 
comportamiento encontrados comúnmente en objetos de software pertenecientes a un tipo 
en particular. Una vez modelada la clase, se pueden crear cualquier número de objetos de ella. 
Para crear un objeto de la clase, se necesita un constructor. Un constructor es un método, que 
tiene el mismo nombre de la clase. 
Cuando se quiere usar una librería de funciones escritas en otro lenguaje como C++, se usa el 
modificador native para especificar que la implementación de este método no fue hecha en 
Java. En un ambiente multihilos, se pueden usar los modificadores de acceso de Java para 
proteger las variables y métodos de una clase de ser accedidos sin garantía por parte de otras 
clases. Un constructor se usa esencialmente para inicializar un nuevo objeto creado de un tipo 
en particular. Se puede identificar fácilmente el constructor y diferenciarlo de otros métodos 
en la clase porque el constructor tiene el mismo nombre de la clase. Java permite tener tantos 
constructores como se requiera para una clase, la única diferencia será en el número o el tipo 
de argumentos para una clase. 
El modificador public no coloca ninguna restricción en las variables y métodos de una 
clase. Cuando las variables y métodos de una clase son declarados como public, los 
objetos de cualquier clase pueden accederlos. La clase que esta haciendo el acceso no 
necesita ser una subclase de la clase accedida o estar presente en el mismo paquete 
que la clase accedida. Una clase sin ninguna relación, que está en un paquete 
diferente, puede también acceder a variables y métodos public de una clase. Se debe 
tener cuidado antes de declarar una variable o método como public para asegurar 
que no habrá ningún acceso malicioso por parte de un objeto de una clase externa, que 
pueden colocar a los objetos de la clase accedida en un estado inconsistente. 
Considere el Ejemplo 1.2, que ilustra el uso de variables y métodos public. 
La clase ClaseNoRelacionada no tiene ninguna relación con (no es una subclase de) 
la clase PublicEjemplo. A pesar de esto, se puede acceder a la variable y al método 
public definidos en la clase PublicEjemplo. 
El Modificador de Acceso 
El modificador de acceso package se usa cuando no se especifica ni public, ni 
protected, ni private como nivel de acceso. Si no se especifica el nivel de acceso 
de una variable o un método o una clase usando un modificador de acceso, entonces, 
por defecto, el nivel de acceso se asume como package. Esto significa que todas las 
clases que están presentes en el mismo paquete pueden acceder a las variables y 
métodos de la clase accedida. Un paquete es similar a un módulo. Ada fue uno de los 
primeros lenguajes en introducir el concepto de un paquete en los lenguajes de 
programación. 
El Modificador de Acceso 
El modificador de acceso private se usa para proteger información muy confidencial. 
Puede haber ocasiones cuando no se quiere que métodos o variables de una clase en 
particular accedan a ciertas variables o métodos de otra clase específica. Usando 
variables y métodos privados en una clase se provee la máxima protección. 
 
Constructores de una Clase 
Un constructor se usa esencialmente para inicializar un nuevo objeto creado de un tipo 
en particular. Se puede identificar fácilmente el constructor y diferenciarlo de otros 
métodos en la clase porque el constructor tiene el mismo nombre de la clase. Los 
constructores también son métodos, pero están definidos para realizar la tarea de 
inicialización al momento de creación de objetos. 
Todas las clases en Java tienen al menos un constructor. Si el programador no define 
ningún constructor para una clase, entonces la clase tendrá un constructor por defecto 
creado por el sistema de tiempo de ejecución de Java. El constructor por defecto no 
acepta ningún argumento. Tiene una implementación vacía y no realiza nada. 
Java permite tener tantos constructores como se requiera para una clase, la única 
diferencia será en el número o el tipo de argumentos para una clase. Esto se denomina 
sobrecarga del constructor, que será discutida en detalle en la próxima sección. 
Sobrecarga de Método 
En la sección anterior se vio que más de un constructor puede ser creado para una 
clase. De manera similar, Java permite tener dos o más métodos con el mismo nombre 
dentro de la misma clase. Como con los constructores, los métodos sobrecargados 
deben también tener un número diferente de parámetros o diferentes tipos de datos en 
los parámetros. Esta característica de Java se llama sobrecarga de métodos. Ésta es 
una forma de lograr polimorfismo en Java. El compilador detectará un error en tiempo 
de compilación si dos métodos en una clase tienen el mismo nombre y el mismo 
número y tipo de parámetros. 
Los métodos sobrecargados pueden tener diferentes tipos de datos de retorno. Pero si 
la diferencia entre dos métodos es sólo en cuanto a sus tipos de retorno, el nombre, 
número, y tipo de argumentos aceptados por el método, y el orden en el cual son 
aceptados, son iguales, el compilador no distinguirá entre los dos métodos. 
Si dos métodos son diferentes solo en sus tipos de retorno, esto no se considera una 
sobrecarga de métodos. Sin embargo, si existen dos métodos que aceptan el mismo 
número de argumentos y el mismo tipo de argumentos, pero difieren en el orden de los 
tipos de datos aceptados por los dos métodos, entonces sí se considera una sobrecarga 
de métodos.

Más contenidos de este tema