PROGRAMACIÓN


BIENVENIDOS A PROGRAMACIÓN



Les adjunto una presentación del tema Base de Datos 

A continuación les adjunto la guía autónoma de aprendizaje equivalente para 1 mes de acuerdo a la materia vista en clase. ST Nocturna

PROGRAMACIÓN ORIENTADA A OBJETOS

La programación orientada a Objetos básicamente define una serie de conceptos y técnicas de programación para representar acciones o cosas de la vida real basada en objetos, a diferencia de otras formas de programación como por ejemplo la estructurada, con la POO trabajamos de manera distinta vinculando diferentes conceptos tales como clases, objetos, métodos, propiedades, estados, herencia, encapsulación entre otros, generando cada vez interrelaciones en nuestro desarrollo en pro del funcionamiento del sistema principal, definiendo el programa como un conjunto de estos objetos relacionados entre si Clases.  Las clases son uno de los principales componentes de un lenguaje de programación, pues en ellas ocurren todos los procesos lógicos requeridos para un sistema, en si podemos definirlas como estructuras que representan objetos del mundo real, tomando como objetos a personas, lugares o cosas, en general las clases poseen propiedades, comportamientos y relaciones con otras clases del sistema. 

Una clase se compone por tres partes fundamentales: 



Nombre : Contiene el Nombre de la Clase.
Atributos : Representan las propiedades que caracterizan la clase.
Métodos : Representan el comportamiento u operaciones, la forma como interactúa la clase con su entorno.

Ejemplo:

 /**Principal define el nombre de la Clase*/ 
public class Principal {
     public String atributo="Esto es un atributo";
    /**Esto es un método, donde se definen las operaciones*/
  public void metodo(){
   /**aqui van las sentencias que definen
    * el comportamiento del método*/  } 
}

 ¿Qué es un objeto?
Los objetos son representaciones (simples/complejas) (reales/imaginarias) de cosas: reloj, avión, coche. No todo puede ser considerado como un objeto, algunas cosas son simplemente características o atributos de los objetos: color, velocidad, nombre.

Al igual que las clases se componen de tres partes fundamentales: Estado: Representa los atributos o características con valores concretos del objeto. Comportamiento: Se define por los métodos u operaciones que se pueden realizar con él. Identidad: Es la propiedad única que representa al objeto y lo diferencia del resto. 

Ejemplo:  en la imagen, los moldes representan las clases, mientras que las galletas obtenidas de estos moldes representan los objetos instancias de estas clases, por ejemplo atributos del objeto galleta podría ser sabor, color, tamaño etc. 
En java se representa creando una instancia de la clase por medio de la palabra new  al hacer eso creamos el objeto de la clase y podemos hacer uso de los métodos o atributos de esta (dependiendo de la visibilidad de los mismos ) por medio de un punto (.) así: 

/**Creamos el objeto como instancia de la clase Principal*/ 
    Principal miObjeto= new Principal(); 
    miObjeto.atributo="Este es el nuevo valor del atributo para el objeto";     miObjeto.metodo(); 

Imagínese un auto.

Abstracción funcional. Hay cosas que sabemos que los coches hacen, pero no cómo lo hacen:  • avanzar • parar • girar a la derecha • girar a la izquierda

Abstracción de datos Un coche tiene además ciertos atributos: • color • velocidad • tamaño ¿Qué es un objeto?
Es una forma de agrupar un conjunto de datos (estado) y de funcionalidad (comportamiento) en un mismo bloque de código que luego puede ser referenciado desde otras partes de un programa  • La clase a la que pertenece el objeto puede considerarse como un nuevo tipo de datos. 

Da click encima de la imagen para verla claramente

Herencia 


 

Sobrecarga (Overloading) ¿Qué es? 

Podemos definir una clase con dos métodos con el mismo nombre si los argumentos son distintos.  Se utiliza mucho para los constructores. Sabemos cuál de los dos métodos tenemos que ejecutar por los parámetros que le pasamos cuando le llamamos. 

¿Para qué sirve? 
 Son métodos distintos porque, aunque tengan el mismo nombre tienen distintos argumentos. Tienen distinta funcionalidad 





Da click encima de la imagen para verla claramente
Da click encima de la imagen para verla claramente

Constructores 

Cuando se crea un objeto sus miembros se inicializan con un método constructor  
 • Los constructores: 
  – llevan el mismo nombre que la clase   
– No tienen tipo de resultado (ni siquiera void)   
• Conviene que haya al menos 1 constructor   
• Pueden existir varios que se distinguirán por los parámetros que aceptan (sobrecarga)   
• Si no existen se crea un constructor por defecto sin parámetros que inicializa las variables a su valor por defecto.   
• Si la clase tiene algún constructor, el constructor por defecto deja de existir. En ese caso, si queremos que haya un constructor sin parámetros tendremos que declararlo explícitamente. 

Da click encima de la imagen para verla claramente

GUÍA AUTÓNOMA  PDF

FUNDAMENTOS DE PROGRAMACIÓN

Declaración y uso de variables
La memoria de un ordenador permite almacenar y posteriormente recuperar gran cantidad de datos. Cuando se programa con un lenguaje de alto nivel como Java, se utilizan nombres para hacer referencia a los datos que hay en la memoria. En el argot del programador, a estos datos con nombre se les llama variables. Por definición, no puede haber dos variables con el mismo nombre. 

Para garantizar una cierta coherencia en el uso de las variables, éstas, además de tener nombre, deben ser de un tipo. El tipo determina qué datos puede almacenar una variable (texto, números, etc.) y qué operaciones podemos realizar con ella. Empezaremos trabajando con los tipos siguientes:


  • int: valor entero entre –2147483648 y 2147483647. No admite valores decimales. Por ejemplo, 2001 ó 175000000. 
  • double: valor real sin límite de rango y de precisión arbitraria. Admite valores decimales. Por ejemplo, –0,075 ó 3,141592654. 
  • String: texto de longitud arbitraria. Por ejemplo, “La casa de María” u “¡Hola, mundo!”.
  • boolean: cierto o falso.


Para poder trabajar con una variable, primero tenemos que declararla. Declarar una variable consiste en mencionar su nombre y su tipo. En Java se escribe primero su tipo, después su nombre y se termina la línea con un punto y coma. El punto y coma es importante, porque indica el final de la declaración. 
Por ejemplo: int contador;

Declara una variable llamada “contador” de tipo int. Como ya hemos visto anteriormente, en esta variable podremos almacenar un valor entre –2147483648 y 2147483647. 

Las líneas siguientes: 
boolean esClientePreferente; 
double capital, interés;


Declaran tres variables: “esClientePreferente”, de tipo boolean, y “capital” e “interés”, ambas de tipo double. En la primera podremos almacenar cierto o falso, lo que nos servirá, por ejemplo, para almacenar si se trata de un cliente preferente o no. En las dos últimas, almacenaremos el capital y el interés que estudiamos darle a ese mismo cliente, que puede ser diferente en virtud de que sea cliente preferente o no. Observad que podemos declarar dos o más variables en una misma línea separando sus nombres por medio de la coma.

 La línea siguiente: int valores[ ];

Declara un vector de variables de tipo int llamado “valores”. Un vector es un conjunto de variables del mismo tipo. Utilizaremos “valores[0]” para referirnos a la primera variable, “valores[1]” para referirnos a la segunda, y así sucesivamente. 
En Java, se puede dar cualquier nombre a una variable. Sin embargo, se deben respetar unas pocas reglas. Los nombres de las variables:
  • No pueden comenzar por un carácter numérico. Por ejemplo, “12” o “1Valor” no son nombres válidos. 
  • No pueden llamarse igual que los elementos del lenguaje. Por ejemplo, no podemos tener una variable que se llame “int” o “double”. 
  • No pueden contener espacios. 

Sin embargo, a diferencia de otros lenguajes, Java sí que permite que el nombre de una variable contenga caracteres acentuados. Otro punto que se debe tener en cuenta es que Java distingue entre mayúsculas y minúsculas. Esto significa que las variables: double capital, Capital; son diferentes en todos los sentidos.

 El operador de asignación 


Una vez declarada una variable, ésta tiene un valor indefinido. Para empezar a trabajar con ella, se necesita asignarle un valor. La asignación de valores a variables se lleva a cabo mediante el llamado operador de asignación: “=” (el signo de igual). Así pues, las líneas siguientes:

int contador; 
contador = 0;


Declaran la variable “contador” y le asignan el valor 0. 

Como podemos observar, a la izquierda del operador de asignación se emplaza el nombre de la variable, y a la derecha, el valor que se desea asignarle. La asignación (como la declaración de variables) termina en punto y coma. 

Veamos más ejemplos de asignaciones: 
int suma; 
suma = 3 + 2;

Asigna a la variable “suma” el resultado de sumar 3 y 2 (cinco).

int contador; 
contador = 0; 
contador = contador + 1; 

Asigna, en primer lugar, el valor 0 a la variable “contador”, y luego la incrementa en una unidad (1). Es importante destacar que cuando asignamos un valor a una variable sobrescribimos su valor anterior. Así pues, al finalizar el código, la variable “contador” valdrá 1.

double interés, capital, tasaInterés, tiempo; 
capital = 60000; 
tasaInterés = 0.045; 
tiempo = 6; 
interés = capital * tasaInterés * tiempo;

Asigna a la variable “interés” los intereses generados por el préstamo de un capital de 60.000 euros a una tasa del 4,5% (expresado en tanto por uno) a seis años. Según la fórmula del interés simple, los intereses serán igual al producto de los tres factores. Como puede apreciarse, el producto se representa mediante el carácter asterisco (*). Al final de la ejecución, “interés” valdrá 16.200.

String nombre, frase; 
nombre = "María"; 
frase = "La casa de " + nombre;

Asigna a la variable “frase” el resultado de concatenar el texto “La casa de ” y la variable “nombre”. Al finalizar la ejecución, “frase” será igual a “La casa de María”. Debemos notar que el texto siempre se escribe encerrado entre comillas dobles (“”).

boolean esPositivo; 
int número; 
número = –5; 
es_positivo = número > 0;

Almacena en la variable “esPositivo” el resultado de evaluar si la variable “número” es mayor que 0. Al finalizar el código, “esPositivo” valdrá false (falso).
Si bien la flexibilidad que ofrece el operador de asignación es notable, para que una asignación sea válida debe haber una cierta compatibilidad entre el tipo de la variable y el tipo del valor que se le quiere asignar. 

Por ejemplo, la asignación siguiente no es válida:
int peso; 
peso = 58.5;
pues intenta asignar un valor decimal a una variable entera. 

Tampoco es válida la asignación:
 String resultado; 
resultado = 25;
pues intenta asignar un valor entero a una variable de tipo texto.


Expresiones

Como hemos visto en los ejemplos anteriores, a una variable no sólo se le puede asignar un valor literal o el valor de otra variable. Además, se le puede asignar el valor resultante de una operación. Cuando nos encontramos con una combinación de valores literales, variables y operadores, estamos ante lo que se llama una expresión. Las expresiones, que siempre generan un valor, están sometidas a unas reglas de evaluación que debemos conocer. Si tenemos, por ejemplo:

int cálculo; 
cálculo = 2 + 3 * 5;

La expresión “2 + 3 * 5” se puede interpretar de dos formas: sumar 2 y 3, y el resultado (5) multiplicarlo por 5 (25), o bien multiplicar 3 por 5, y al resultado (15) sumarle 2 (17). Como podemos ver, de la forma de interpretar la expresión depende el resultado. 

El lenguaje Java, como muchos otros lenguajes, define unas prioridades o precedencias entre operadores que dictan el orden en el que se realizarán las operaciones. La tabla “Precedencia de los operadores” muestra los operadores más comunes y su precedencia. Cuanta mayor precedencia, antes se evaluará la operación. 

Si aplicamos las reglas de precedencia de la tabla al ejemplo anterior, tenemos que la multiplicación precederá a la suma. En consecuencia, el lenguaje resolverá la expresión multiplicando primero 3 por 5, y sumándole 2 al resultado. Así pues, se asignará el valor 17 a la variable “cálculo”.



Como hemos visto, la precedencia entre operadores permite al lenguaje determinar, de forma unívoca, el valor de una expresión. Sin embargo, este mecanismo no es suficiente en el caso de tener en una expresión dos o más operadores con la misma precedencia. Cuando esto sucede, el lenguaje resuelve la expresión evaluando dichos operadores de derecha a izquierda. Es decir, se operarán en el mismo sentido en el que se leen. Por ejemplo, el código:

int cálculo; 
cálculo = 25 % 7 * 3;

Calculará primero el residuo resultante de dividir 25 entre 7, y después multiplicará dicho residuo por 3. El resultado será 12. 
Supongamos ahora que deseamos sumar 2 y 3, y multiplicar el resultado por 5. Ya hemos visto que el código: 
int cálculo;
cálculo = 2 + 3 * 5;
no responde a nuestras necesidades, pues, por precedencia, se evaluará antes la multiplicación que la suma. Para alterar el orden de evaluación de la expresión, encerraremos la suma entre paréntesis:
int cálculo; 
cálculo = (2 + 3) * 5;

Cuando encerramos parte de una expresión entre paréntesis, esta parte se considera una unidad indivisible y se evalúa independientemente antes de ser operada. Así, volviendo al ejemplo, la expresión se resolverá multiplicando el resultado de evaluar la expresión “2 + 3” por 5. El resultado será 25. 

Veamos más ejemplos de expresiones. Las líneas siguientes: 
double precioConDescuento, precio, descuento; 
precio = 15.69; // en euros 
descuento = 7; // tanto por ciento 
precioConDescuento = precio – precio * descuento / 100;

calculan el precio rebajado de un producto. En primer lugar, por tener más precedencia, se hace la multiplicación (precio * descuento), después se divide el resultado por cien, y finalmente, se resta el resultado obtenido del valor de la variable “precio”. El resultado será 14,5917.
 Las líneas siguientes:
int número; 
boolean estáEntreCeroYDiez; 
número = –5; 
estáEntreCeroYDiez = número > 0 && número < 10;
Determinan si un número dado está entre 0 y 10. Para que esto se cumpla, el número debe ser, a la vez, mayor que 0 y menor que 10. En primer lugar, se comprobará si el número es mayor que 0 (número > 0), y después, si es menor que 10 (número < 10), para, finalmente, mediante el operador && (y), ver si ambas condiciones se cumplen. El resultado será igual a false (falso).


GUÍA AUTÓNOMA PDF

OBSERVA EL SIGUIENTE VIDEO DONDE SE EXPLICA EL TEMA EN CUESTIÓN.




GUÍA AUTONOMA AGOSTO PDF




























No hay comentarios:

Publicar un comentario