Programacion Orientada A Objetos
Programacion Orientada A Objetos
Programacion Orientada A Objetos
2024
Ica – Perú
RESUMEN CAPITULO 3: Conceptos básicos de
programación orientada a objetos
3.2 Clase
Una clase se define como un tipo extracto de dato que contiene atributos y métodos a
través de una clase se implementa un concepto abstraído de la realidad en este caso los
atributos hacen referencia a las características del concepto extraído y los métodos hacen
referencia a los servicios de dicho concepto.
-Atributos
Los atributos hacen referencia a las características que se le incluyen a la clase. Estos
atributos pueden ser declaraciones de tipos primitivos de datos o declaraciones de clases.
-Visibilidad
La visibilidad se refiere al nivel de accesibilidad de los atributos y métodos. Los niveles de
accesibilidad se dan por los siguientes términos
Private. Se puede acceder desde un método implementado desde la misma clase
Public. Se puede acceder desde un método implementado en cualquier clase
Protected. Se puede acceder desde un método implementado de una clase que herede la
clase que contiene esta visibilidad y es desde clases implementadas en el mismo paquete
-Métodos
Los métodos hacen referencia a los servicios que se incluyen a la clase. En estos métodos
se implementan el código necesario del servicio
Visibilidad. se debe establecer si el método es private public o protected.
Retorno. un método puede retornar Información. Si el método no retorno información se
debe colocar la palabra reservada void.
El retorno puede ser un tipo primitivo de dato o una clase si un método tiene retorno en la
implementación del método debe estar presente la palabra reservada return.
Nombre. identificador del método en la clase.
Parámetros. un método puede recibir de cero a n parámetros un parámetro puede ser un
tipo primitivo de dato una declaración de una clase los parámetros deben estar separados
por comas.
-Encapsulamiento
Eso característica que indica que los atributos que definen propiedades propias de la clase
deben tener visibilidad private, de esta forma se ofrece seguridad a la información
depositada en dichos atributos
-Apuntador “this”
El apuntador this permite acceder a los atributos y métodos de la clase, el uso del
apuntador no es obligatorio pero se recomienda usarlo como buena práctica es posible que
el parámetro de un método tenga el mismo nombre que un atributo en este caso el uso del
apuntador this es obligatorio para que la compilador identifique si estaba haciendo
referencia al atributo o al parámetro del método
3.3 Objeto
Un objeto es la referencia a instancia de una clase a crear una referencia se asigna a un
espacio de memoria dinámica al objeto pero no es utilizable al crear la instancia el objeto
es utilizable
3.4 Sentencia static
Una clase puede tener atributos y/o métodos propios o no del objeto la sentencia Static
define estos atributos y métodos de tal forma que puedan ser accedidos sin requerir una
instancia de la clase Por otro lado un atributo Static toma el mismo valor para todos los
objetos que sean instancia de la clase que lo contiene
3.5 Sentencia final
Una clase puede tener atributos finales que hacen referencia a constantes que no pueden
cambiar su valor en tiempo de ejecución de la aplicación.
3.6 Clasificacion de métodos: Se pueden clasificar de 4 tipos:
1.Constructores: Un constructor es un método especial que se ejecuta automáticamente
al crear una instancia de una clase. Se utiliza para inicializar los atributos de la clase. Debe
tener visibilidad pública, no tiene tipo de retorno y puede estar sobrecargado.
2.Consultores: También conocidos como getters, son métodos que permiten acceder al
valor de un atributo privado de una clase. Ayudan a implementar el concepto de
encapsulamiento.
3.Modificadores: También llamados setters, son métodos que permiten asignar un valor a
un atributo privado de una clase. También son parte del concepto de encapsulamiento.
4.Analizadores: Son métodos que implementan la lógica de un servicio en una clase. Aquí
se pueden implementar algoritmos requeridos para la manipulación de los atributos de la
clase.
3.9 Bajo acoplamiento: Es un principio de diseño que sugiere que las clases deben tener
una dependencia mínima entre sí. Esto se logra separando las responsabilidades de las
clases y reduciendo la interdependencia.
3.10 Alto cohesión: Es otro principio de diseño que sugiere que los elementos de una
clase deben estar relacionados y enfocados en una sola tarea o responsabilidad. Una clase
con alta cohesión es más fácil de entender y mantener.
3.11 Manejo de excepciones: Las excepciones son condiciones anormales que pueden
ocurrir durante la ejecución de un programa. En Java, se manejan mediante las estructuras
try-catch y throws, que permiten controlar y gestionar estos errores de manera adecuada.
3.11.1 Estructura try, catch y finally:
Las excepciones en Java deben ser capturadas mediante el uso de las estructuras "try",
"catch" y finally. En el bloque try se debe implementar el código del proceso que se desea
ejecutar.
Sobrecarga de métodos:
La sobrecarga de métodos es una de las características de la programación orientada a
objetos que permite definir múltiples métodos en una clase con el mismo nombre pero con
diferentes parámetros o tipos de retorno esto brinda flexibilidad al programador y facilita
la reutilización del código
public class Calculadora {
// Método sobrecargado 1: Suma de dos números enteros
public int sumar(int a, int b) {
return a + b;
}
En este ejemplo la clase calculadora define tres métodos llamados sumar cada uno con
una lista diferente de parámetros esto permite utilizar mimo nombre de método para
realizar operaciones de suma con diferentes tipos de datos y números de
argumentos recursividad.
La recursividad es una técnica de la programación que implica la llamada un método
desde sí mismo esto crea un ciclo donde la función se llama repetidamente hasta que se
cunmpla una condicion de salida la recursividad se puede utilizar como alternativa a la
estructura de repetición como “while” o “for”
Ejemplo:
public class Factorial {
// Método recursivo para calcular el factorial de un número
public int factorial(int n) {
if (n == 0 || n == 1) {
return 1; // Caso base: factorial de 0 y 1 es 1
} else {
return n * factorial(n - 1); // Llamada recursiva
}
}
}
//con parámetro
public cuadrado(double lado) {
this.lado = lado;
}
//consultor
public double getLado() {
return lado;
}
// modificador
public void setLado(double lado) {
this.lado = lado;
}
// metodo analizador para el area
public double calcularArea() {
return lado * lado;
}
// metodo analizador para el perimetro
public double calcularPerimetro() {
return 4 * lado;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Métodos consultores
public double getLongitud() {
return longitud;
}
// Métodos modificadores
public void setLongitud(double longitud) {
this.longitud = longitud;
}
public void setAncho(double ancho) {
this.ancho = ancho;
}
// Ejemplo de uso
rectangulo rectangulo1 = new rectangulo();
System.out.println("Area: " + rectangulo1.calcularArea());
System.out.println("Perimetro: " + rectangulo1.calcularPerimetro());