You are on page 1of 9

Primer programa en Java

En nuestro primer programa imprimiremos la cadena de caracteres hola mundo en la pantalla. public class Main { public static void main(String[ ] args) { System.out.print("hola mundo"); } } Ahora analicemos el programa anterior lnea por lnea: Primera lnea: public class Main: Define una clase de carcter pblico, es decir se podra acceder a esta desde cualquier parte del programa. Segunda lnea: public static void main(String[ ] args): public: Indica que la funcin es pblica, se puede usar desde cualquier otra clase. static: Indica que la funcin es esttica. void: Se incluye cuando una funcin no devuelve ningn valor main: Es el nombre de la funcin String [ ] args: Indica que es un array de tipo String llamado args NOTA: En cualquier clase tiene que haber un main, si no da error.

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Funciones en Java
Una funcin es un modulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la parte principal del programa u otra funcin o procedimiento que la invoque. La forma general de una funcin es: tipo_dato_regresa Nombre_funcion(parmetros) { cuerpo de instrucciones; instruccin return; } Nombre_funcion es cualquier identificador valido. El tipo_dato_regresa es el tipo de datos del resultado que la funcin devuelve al identificador. El tipo_dato_regresa void indica que la funcin no devuelve ningn valor. Si no se especifica un tipo_dato_regresa se asume de default que el tipo regresado es int. La lista de parmetros formales es una lista de variables separadas por comas (,) que almacenaran los valores que reciba la funcin, estas variables actan como locales dentro del cuerpo de la funcin. Aunque no se ocupen parmetros los parntesis son requeridos. La declaracin de parmetros es la especificacin de cada tipo de parmetro recibido. Instruccin return Dentro del cuerpo de la funcin deber haber una instruccin return cuando la funcin devuelve algn dato (cuando tipo_dato_regresa es diferente de void), sta permite devolver el valor del resultado de la funcin al invocador. Invocar una funcin Invocar una funcin es llamarla desde cualquier parte del programa para que realice la tarea para la cual fue programada. Sintaxis: Nombre_funcion(parmetros);

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Si la funcin devuelve algn dato, el invocador debe ser igualado a una variable del mismo tipo. Sintaxis: variable= Nombre_funcion(parmetros); Ejemplos de funciones En la siguiente aplicacin, se muestra una funcin que imprime el resultado de una suma. Los valores de la funcin son internos de la misma, es decir, la funcin no requiere de ningn parmetro. //declaro la funcin static void suma(){ System.out.println(4+5); } //la llamo desde el main public static void main(String[] args) { suma(); } Ahora bien, realizaremos una funcin que pueda sumar dos nmeros enviados desde el medio externo, para esto necesitamos implementar el uso de parmetros. //declaro la funcin static void suma_parametros(int num1,int num2){ System.out.println(num1+num2); } //la llamo desde el main public static void main(String[] args) { suma_parametros(4,10); } A continuacin disearemos una funcin que pueda devolver el resultado de la suma para que este sea almacenado en una variable. //declaro la funcin static int suma_retorna(int num1,int num2){ int res=num1+num2; Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

return res;

//la llamo desde el main public static void main(String[] args) { int suma=suma_retorna(8,9); System.out.println(suma+4); } Taller: 1. Realizar una funcin que dado un nmero como parmetro, imprima su respectiva tabla de multiplicar hasta el 10. 2. Realizar dos funciones, una de suma y otra de resta. Se deben declarar dos variables de tipo entero (num1 y num2), si num1 es mayor a num2 por favor imprima el resultado de la resta, si no, imprima el resultado de la suma.

Repaso programacin orientada a objetos (POO)


La programacin orientada a objetos es una tcnica que permite optimizar los recursos usados en el desarrollo de un software, que satisface una necesidad, utilizando en el modelamiento de los problemas una herramienta de diseo llamadas clases, haciendo nfasis en el problema en general para resolverlo de manera particular para una mejor eficiencia y mantenimiento futuro. Hay que resaltar que la base de esta programacin es el proceso de diseo, que permite modelar la posible solucin antes de escribir la primera lnea de cdigo que lo empiece a resolver. El ser humano ha desarrollado una gran capacidad para clasificar, generalizar y abstraer objetos, de tal forma que puede tratar con el complejo mundo que lo rodea. Ejemplo: De un mundo lleno de perros individuales, hemos desarrollado el concepto de perro como una clase abstracta que sintetiza los atributos y el comportamiento que todos los perros del mundo comparten. Esto nos permite desarrollar ideas acerca de los perros, sin pensar en los detalles de un perro en particular. Esta es la forma como aplicamos la capacidad de clasificar, generalizar y abstraer. En la POO, el mundo de un problema a resolver se compone entonces de objetos altamente especializados que cooperan entre si para lograr un objetivo.

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Definicin de Objeto: Un objeto es cualquier cosa, real o abstracta, que posee atributos y un conjunto de operaciones que manipulan esos atributos; atributos y operaciones le dan al objeto un COMPORTAMIENTO particular. Por ejemplo, en una biblioteca podemos distinguir los objetos libros, revistas, fichas, etc. Al conjunto de atributos y procedimientos se les denomina clase. Clase: Es un ente que se usa para modelar un problema de la realidad, caracterizado por unos atributos (propiedades) y unos mtodos (acciones) que le permiten resolver dicho problema. Es debido anotar que es el problema quien genera la clase y no lo contrario, dado que de las particularidades del problema y de su contexto mismo es de donde se abstraen las propiedades (atributos) y mtodos (acciones) de la clase. Donde los atributos son las caractersticas propias del problema (datos necesarios) y los mtodos son las acciones que debe ejecutar la clase para resolver el problema (manipulando los datos con las operaciones necesarias). As por ejemplo: Se quiere disear una clase que permita calcular el rea y el permetro de un rectngulo. Recordemos que el rea es igual a la base por altura y el Permetro es igual a 2 veces la base mas 2 veces la altura.

Altura Base Caracterizamos los atributos y los mtodos identificando cada uno de ellos con un nombre. Atributos: Para el problema son necesarios dos: Los llamaremos Base y Altura que son los datos bsicos y suficientes para realizar los clculos. Tenemos que para calcular el rea: Es necesario un mtodo que se encargue de hacer la operacin (multiplicacin) Base por Altura y lo llamaremos Calcular rea. Para calcular el Permetro: Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Se debe crear un mtodo que se encargue de hacer la operacin: 2 veces la Base ms 2 veces la altura, a este mtodo lo llamaremos Calcular permetro. Para poder tener la informacin correspondiente a los valores que se guardan el los atributos es necesario pedirla, para ello creamos un mtodo llamado pedirdatos y para mostrar el resultado de las operaciones que realiza la clase creamos el mtodo mostrarresultados Podemos observar que los datos que se pueden calcular (rea, Permetro) no se convierten en atributos sino en mtodos, adems que los atributos correspondientes a la clase no pueden ser ms que los datos bsicos requeridos para resolver el problema, en este caso los datos necesarios son los de los lados, y como el rectngulo tiene 2 lados iguales (Base) y otros dos lados iguales (altura) podemos disear la clase de la siguiente manera: Nota: Al asignarle un nombre a un atributo o a un mtodo recuerde no dejar espacios entre los caracteres de dicho nombre. Los mtodos se diferencia porque presentan (), al final del nombre.

CRectngulo Base Altura Pedir_datos() calcular_area() calcular_perimetro() mostrar_resultados() Plantearemos otro problema para aclarar un poco ms. Se quiere calcular el sueldo a pagar de un empleado, se tiene para ello las horas trabajadas y el valor de la hora. Hay que tener en cuenta los descuentos ocasionados por el seguro social y por la retencin en la fuente, calculados a partir del bsico ganado, adems hay que determinar si recibe subsidio o no. Solucin: Nmero de horas: Genera un atributo que llamaremos NumHoras. Valor de la hora: Genera un atributo que llamaremos ValHoras. Estos son los datos que el problema nos ofrece y que utilizaremos para poder disear la y que utilizaremos en los mtodos. Las operaciones a realizar:

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Bsico: Genera un mtodo para calcular nmero de horas por Valor de la hora, Lo llamaremos Bsico. Descuento seguro social: Genera un mtodo para calcular un descuento a partir del valor del bsico. Lo llamaremos DescuentoIss. Descuento por retencin en la fuente: Genera un mtodo para calcular otro descuento que se hace sobre el rango del valor del bsico. Lo llamaremos DescuentoRetencion. Subsidio: Genera mtodo que evala el valor del bsico y determina si recibe subsidio para asignarle el valor correspondiente sino asignara cero. Lo llamaremos Subsidio. Total a pagar: Este concepto es implcito al problema y genera un mtodo que se usar para calcular el pago final a partir del valor bsico restndole los dos descuentos. Lo llamaremos Neto. Observacin: Volvemos a resaltar, los valores que se pueden calcular no son atributos (tenga eso en cuenta) sino que se pueden considerar como mtodos. Observemos que algunos mtodos necesitan utilizar no los atributos sino otros mtodos para poder realizar sus operaciones como es el caso de descuentoIss que necesita del mtodo bsico para poder calcular su propio valor, de igual manera el mtodo neto necesita de los otros para efectuar la operacin. (Esto es una caracterstica del diseo de clases). Adems diseamos los mtodos de pedirdatos y mostrardatos. Ntese que aunque podramos haber diseado un solo mtodo (Neto) para hacer todos los clculos correspondientes, no lo hacemos con el fin de acogernos a una regla que ms adelante explicaremos (Encapsulado). Veamos el diseo de la clase: CTrabajador Valhoras Numhoras Pedirdatos() Basico() Descuentoss() Descuentoretencion() Subsidio() Neto() Mostrarresultados() Nota:

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

Los problemas cmo tales tienen unas propiedades que seran las causas de l, los atributos. Los mtodos, que son acciones del problema, se modelan de tal forma que se piensa en ellos como lo que se hace con los atributos. Ejercicios Resueltos: A continuacin se plantean 3 problemas y se disea la solucin de ellos, haga un anlisis de cada solucin. 1. Disee una clase que permita conocer el resultado de una eleccin de alcalde puesto que el resultado es el siguiente: El candidato A tiene el 35% de los votos validos, el candidato B tiene el 12% de los votos validos y el candidato C tiene el 42% de votos validos. Los votos en blanco corresponden al resto de los votos validos. Los votos totales son X y el 78% de estos votos son validos.

CVotacin Votos Pedirdatos() Calcularvotosvalidos() calcularvotoscanA() calcularvotoscanB() calcularvotoscanC() calcularvotosblanco() mostrarresultados () 2. Disear una clase que permita calcular el total de estudiantes de un colegio teniendo en cuenta que el colegio tiene 6 salones los cuales se distribuyen de la siguiente manera. El grado primero tiene X estudiantes, el grado segundo tiene 1/3 mas que el grado primero, el grado tercero es dos veces el grado 2, el grado cuarto tiene Y estudiantes, el quito grado tiene de cuarto grado mas el total de segundo, 6 tiene 1/8 de la poblacin estudiantil anterior. Clase Colegio Estudiantes pedir_datos() calcular_Est_2() calcular_Est_3() calcular_Est_5() calcular_Est_6() calcular_Total_Est() Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

mostrar_Resultados() 3. Dados A, B, C y D que corresponden a medidas de trozos de madera disee una clase que determine si se puede construir una mesa de: 2 patas, 3 patas y 4 patas. Clase Mesa A, B, C, D pedir_datos() calcular_mesa_2() calcular_mesa_3() calcular_mesa_4() mostrar_Resultados()

Programacin para sistemas en red III Profesor: Julio Csar Meza Ramrez

You might also like