Fundamentos de la Programación Orientada a Objetos (POO) en Java

Documento de Universidad sobre Fundamentos de la Programación Orientada a Objetos (POO) en Java. El Pdf explora conceptos clave como tipos de datos, estructuras de control, clases genéricas y expresiones regulares, útil para estudiantes de Informática.

Ver más

22 páginas

UF4 - PROGRAMACIÓN:
T6 - FUNDAMENTOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (POO):
LENGUAJE DE PROGRAMACIÓN JAVA:
Java es un lenguaje de programación:
- compilado e interpretado al compilar nuestro código se obtiene un código bytecode que se interpreta a través la máquina virtual de
Java JRE (Java Runtime Environment).
- multiplataforma se puede ejecutar en cualquier plataforma, hw o SO que soporte la JRE (write once, run anywhere).
- orientado a objetos cualquier variable o método que se use debe pertenecer a una clase. No hay funciones independientes.
- con una gran biblioteca de librerías
- fácil de aprender
- basado en estándares
- se utiliza a nivel mundial
- optimizado para controlar dispositivos (ofrece un soporte para dispositivos integrados)
- con recolector de basura (que elimina automáticamente objetos que no hacen referencia a ningún espacio determinado de memoria).
PROYECTO EN JAVA:
Para programar en JAVA necesitaremos: . un IDE (Integrated Development Environment) (ej: Eclipse, ItelliJ o Netbeans)
. y las JDK (Java Development Kit) que son herramientas de desarrollo Java.
Cuando creamos nuestro proyecto en Java, en su interior encontraremos la siguiente estructura:
- package: carpeta que contiene los archivos .java y .class que usaremos para la
realización y ejecución de nuestros proyectos.
- public class NombreClase { } :
El nombre de las clases debe empezar con mayúsculas, en singular, ser descriptivo,
usar CamelCase y no usar carácteres especiales (ñ, Ç, acentos,...)
- public static void main (String[] args) { } (Método Main): función
que nos permitirá ejecutar nuestra clase, utilizando como parámetros un
array de cadena de caracteres y que no devolverá ningún valor (void).
- Comentarios: para hacer un seguimiento del programa.
// comentar una línea | /* y */ comentar varias líneas
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS:
La programación orientada a objetos: . se asemeja a los elementos de la vida cotidiana
. hace posible crear diferentes sw con pequeños bloques de código reutilizables.
Sus propiedades más importantes son:
- Abstracción: se basa en qué hace el objeto y para qué ha sido creado.
- Encapsulamiento: pretende ocultar los datos de los objetos de cara al mundo exterior.
- Modularidad: hay una serie de objetos independientes los unos de los otros que podrán ser reutilizados.
- Jerarquía: hay objetos que descienden de otros.
- Polimorfismo: permite el envío de mensajes iguales a diferentes tipos de objetos. Sólo debemos conocer cómo contestar a esos mensajes.
TIPOS DE DATOS:
. Se pueden almacenar en variables o en constantes:
Variables Constantes
. Hay dos tipos de datos:
*Algunas cosas que tenemos que tener en cuenta:
- Datos objeto = datos complejos.
- Los tipos primitivos numéricos enteros son byte, short, int y long
- Los tipos primitivos numéricos reales o de coma flotante son float y double
- Con algunos datos podemos usar operadores aritméticos (+,-,*,/,%), lógicos (&,&&,|,||,==,!=, <,>,<=,>=),de asignación(=),...
- Las expresiones simples son en las que solo interviene un único operador (=), mientras que en las complejas pueden
aparecer más de uno (concatenaciones, operaciones aritméticas).
- Los arrays son objetos para crear tablas, matrices o estructuras (Tipo[ ] nombre= new Tipo[tamaño]). El primer índice
siempre comenzará por 0. Si se accede a un índice que no existe, lanzará la excepción IndexOutOfBoundException. Para
conocer el tamaño de un array usaremos array.length mientras que para conocer el nºcaracteres de una cadena usaremos
cadena.length()
-

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

Fundamentos de la Programación Orientada a Objetos (POO)

Lenguaje de Programación Java

Java es un lenguaje de programación:

  • compilado e interpretado -> al compilar nuestro código se obtiene un código bytecode que se interpreta a través la máquina virtual de Java JRE (Java Runtime Environment).
  • multiplataforma -> se puede ejecutar en cualquier plataforma, hw o SO que soporte la JRE (write once, run anywhere).
  • orientado a objetos -> cualquier variable o método que se use debe pertenecer a una clase. No hay funciones independientes.
  • con una gran biblioteca de librerías
  • fácil de aprender
  • basado en estándares
  • se utiliza a nivel mundial
  • optimizado para controlar dispositivos (ofrece un soporte para dispositivos integrados)
  • con recolector de basura (que elimina automáticamente objetos que no hacen referencia a ningún espacio determinado de memoria).

Proyecto en Java

-> Para programar en JAVA necesitaremos: . un IDE (Integrated Development Environment) (ej: Eclipse, ItelliJ o Netbeans) . y las JDK (Java Development Kit) que son herramientas de desarrollo Java. -> Cuando creamos nuestro proyecto en Java, en su interior encontraremos la siguiente estructura:

  • package: carpeta que contiene los archivos .java y .class que usaremos para la realización y ejecución de nuestros proyectos.
  • public class NombreClase { } : El nombre de las clases -> debe empezar con mayúsculas, en singular, ser descriptivo, usar CamelCase y no usar carácteres especiales (ñ, Ç, acentos, ... )
  • public static void main (String[] args) { } (Método Main): función que nos permitirá ejecutar nuestra clase, utilizando como parámetros un array de cadena de caracteres y que no devolverá ningún valor (void).
  • Comentarios: para hacer un seguimiento del programa. // comentar una línea I /* y */ comentar varias líneas

Introducción a la Programación Orientada a Objetos

La programación orientada a objetos: . se asemeja a los elementos de la vida cotidiana Estructura de un proyecto POO Proyecto OPCIONAL src Test Package1 Package2 Clase 1 Clase2 Clase3 Clase 1 Clase2 Clase3 Package ... X 0 D) *Clase1.java X 1 2 public class Clase1 { v Proyecto1 3 > \ JRE System Library [. v ( src 49 public static void main(String[] parametro) { 5 System.out.println("Hola Mundo Java"); v ## (default package 6 1 7 8 } . hace posible crear diferentes sw con pequeños bloques de código reutilizables. Sus propiedades más importantes son:

  • Abstracción: se basa en qué hace el objeto y para qué ha sido creado.
  • Encapsulamiento: pretende ocultar los datos de los objetos de cara al mundo exterior.
  • Modularidad: hay una serie de objetos independientes los unos de los otros que podrán ser reutilizados.
  • Jerarquía: hay objetos que descienden de otros.
  • Polimorfismo: permite el envío de mensajes iguales a diferentes tipos de objetos. Sólo debemos conocer cómo contestar a esos mensajes.

Tipos de Datos

. Se pueden almacenar en variables o en constantes: Variables Estructura de datos que puede varían durante la ejecución del programa

  • En Java se reserva una zona de memoria que la maquina virtual gestiona automáticamente
  • Sintaxis declaración variables: tipoVariable nombreVariable; tipo_variable nombre_variable;
  • Declarar las variables al inicio de la clase o función
  • Una variable sin inicializar, tiene un valor desconocido
  • Siempre que declaremos una variable se le da un valor inicial. public static void main(String[] args) { //Numero entero int numero = 0; //Numero decimal float decimal = 0.1f; //Caracter char a = 'a'; //Caracteres String aa = "aa"; //True or False boolean condicion = false; Constantes
  • Las constantes son similares a las variables Precedidas de final
  • No pueden ser modificadas public class Ejemplo { public static void main (String [] args) { final String txt = "Hola Mundo!"; System.out.println(txt); 1 1 >D Clase1.java. Hay dos tipos de datos: NOMBRE TIPO OCUPA RANGO byte Entero 1 byte -128 a 127 short Entero 2 bytes -32768 a 32767 TIPOS PRIMITIVOS int Entero 4 bytes 2*10ª long Entero 8 bytes Muy grande . sin metodos, . no son objetos, . no necesitan una invocación para ser creados. float Decimal simple 4 bytes Muy grande double Decimal doble 8 bytes Muy grande char Carácter simple 2 bytes boolean Valor true o false 1 byte arrays Serie de elementos o formación tipo vector o matriz. Lo consideraremos un objeto especial que carece de métodos. Tipos definidos por el programador / usuario Cualquiera que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia Tipos de la biblioteca estándar de Java String (cadenas de texto), Scanner, TreeSet, ArrayList ... TIPOS OBJETO Byte Short Integer Long Float . equivalentes a los tipos primitivos pero son objetos, . empiezan por mayúscula Double Character Boolean . con metodos (excepto los arrays), . necesitan una invocación para ser creados. Tipos envoltorio o wrapper *Algunas cosas que tenemos que tener en cuenta:
  • Datos objeto = datos complejos.
  • Los tipos primitivos numéricos enteros son byte, short, int y long Los tipos primitivos numéricos reales o de coma flotante son float y double
  • Con algunos datos podemos usar operadores aritméticos (+,-,*,/,%), lógicos (&,&&, |, ||, == , != , <,>, <= ,>=), de asignación(=), ...
  • Las expresiones simples son en las que solo interviene un unico operador (=), mientras que en las complejas pueden aparecer más de uno (concatenaciones, operaciones aritméticas ... ). Los arrays son objetos para crear tablas, matrices o estructuras (Tipo[ ] nombre= new Tipo[tamaño]). El primer índice siempre comenzará por 0. Si se accede a un índice que no existe, lanzará la excepción IndexOutOfBoundException. Para conocer el tamaño de un array usaremos array.length mientras que para conocer el nºcaracteres de una cadena usaremos Tipos de datos complejos Son las librerías fundamentales de Java y los tipos de datos que creemos Ejemplos: String, ArrayList, Scanner, System, ... Se declaran igual que lo tipos primitivos
  • Se inicializar por medio de su constructor Sintaxis: TipoComplejo nombreVariable = new TipoComplejo(parametro); String Nos permite representar una cadena de caracteres String str; String string = "Esto es un texto"; String texto = new String("Esto es otro texto"); Vamos a trabajar constantemente con ellos para representar texto. String - Funciones útiles char charAt (int indice): Devuelve el carácter que se encuentra en la posición de índice. Boolean equals (String string): Devuelve True si el objeto que se pasa por parámetro y el string son iguales. Si no, devuelve False. boolean isEmpty (): Si la cadena es vacía, devuelve True, es decir, si su longitud es cero. int length (): Devuelve el número de caracteres de la cadena.

Definición de Objetos

OBJETO -> . conjunto de atributos (características -> variables) y métodos (comportamientos -> funciones). - . son casos específicos de unas entidades llamadas clases (donde se definen las características y comportamientos comunes de estos objetos). Clase = molde | Objeto = contenedor de datos. * Ojo! El nombre de los atributos y métodos empiezan con minúscula y el de las Clases con mayúscula.

Utilización de Métodos y Propiedades

  • Los métodos son las funciones propias que tiene una clase.
  • Entre ellos encontramos los getter y los setter, encargados de reforzar la encapsulación, pues permiten añadir o extraer info a la clase sin conocer detalles más específicos de la implementación. Cualquier cambio realizado en la implementación de los métodos no afecta a las clases clientes. Los getter se usan para acceder a la info contenida en los atributos del objeto (lectura) Los setter para establecer o modificar el valor contenido en estos atributos (escritura) Para poder usar los métodos de una clase debemos: . crear una clase con sus atributos y métodos (public class Coche { } ) . en otra clase crear un objeto de la clase anterior (Coche miCoche= new Coche();) . usar el nombre del objeto creado seguido de punto y el nombre del atributo o metodo al que queremos acceder. ( miCoche. ruedas o miCoche. acelerar() )
  • La palabra reservada static delante de métodos y atributos: . Los métodos estáticos o métodos de la clase son los que podemos invocar sin tener que crear un objeto de la clase. . Un atributo estático es el que está en una zona especial de la memoria y es idéntico para todos los objetos que creemos de la clase. Si modificamos su valor, afectará a todos los objetos que se hayan creado.
  • Los constructores son funciones especiales para crear objetos de la clase en la que se encuentran. Sus características son: - Suelen ser públicos (a veces privados). - Deben tener el mismo nombre que la clase. - Pueden existir diversos constructores (se diferencian por la cantidad y tipos de parámetros que reciban) - Si no se especifica ninguno, existirá un constructor por defecto que no recibirá ningún parámetro. - El constructor se ejecuta automáticamente al crear una instancia (objeto) de la clase. public class Alumnos { //Atributos private String nombre; private String curso; //Constructor vacío, constructor por defecto public Alumnos(){ this. nombre = "Ilerna"; this. curso = "Online"; } //Constructor con parámetros public Alumnos(String nombre, String curso) { this. nombre = nombre; this.curso = curso; } / /Métodos }

Gestión de la Memoria

  • Existen dos tipos de almacenaje de memoria: estática y dinámica: · Memoria Estática: una vez creada la variable no modifica su tamaño en memoria. (ej: un array con longitud determinada) · Memoria Dinámica: será creada y modificada en tiempo de ejecución. (ej: creación de objetos)
  • En Java, la memoria estática y dinámica se dividen en dos zonas de la memoria independientes: · Stack o pila: zona donde se almacenan variables, referencias, parámetros y valores de retorno. · Heap: zona de memoria donde se almacenan objetos y variables de instancia.
  • En Java, NO existen los destructores (funciones especiales para destruir automáticamente objetos y liberar memoria) como tal, ya que es un tipo de protected void finalize( ) throws Throwable{ //Cuerpodeldestructor } lenguaje que, a través del recolector de basura (garbage collector), se encarga de eliminar o liberar la memoria que ocupa un objeto determinado. Antes de "barrer el objeto no usado", el recolector llama al método finalize() del objeto. El finalize() puede ser implementado por nosotros para realizar acciones antes de la eliminación del objeto.

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.