Está en la página 1de 8

1 Fundamentos de programacin en Java Caractersticas de Java

El sistema de programacin Java desarrollado por Sun Microsystems es un lenguaje aceptado debido a la programacin orientada a objetos. En el corazn de Java esta el lenguaje de programacin y el conjunto de herramientas de desarrollo de Java (JDK Java Development Kit). En Java se programa construyendo objetos de software (POO) facilitando la elaboracin, el mantenimiento, la modificacin y el rehus de software. La independencia de la plataforma es una razn importante para el xito de Java. Su cdigo se compila en cdigo de bytes (bytecodes) y puede ejecutarse en cualquier computadora con un intrprete o una maquina virtual de Java (JVM Java Virtual Machine) proporcionando un ambiente en tiempo de ejecucin para ejecutar programas de Java. El cdigo de bytes es independiente de la arquitectura y del sistema operativo, por lo tanto sus programas pueden escribirse y compilarse una vez y luego transmitirse para ejecutarse en cualquier lugar. Esta caracterstica es crucial para Internet, ya que esta red conecta ordenadores muy distintos. La filosofa de la POO es adaptar la computadora al problema moldeando el problema en algo que es familiar para la computadora. En la POO se identifican las entidades (objetos) en el problema y su relacin con otras independencias y el cmo es computarizado. Los elementos bsicos de la POO son: encapsulamiento, polimorfismo, e instanciacin de clases. Java es un lenguaje fcil de aprender, fundamentado en C++ , lo cual quiere decir que muchas de las sintaxis y diseo orientado a objetos se tomo de este lenguaje, en Java no existen punteros ni aritmtica de punteros, las cadenas son objetos y la administracin de memoria es automtica.

Componentes de Java son:


Arquitectura neutral: El compilador de Java compila el cdigo en bytecode, el cual no depende de la arquitectura de una maquina, pero puede ser trasladado fcilmente en una maquina especifica usando el JVM de esa maquina Distribuido: Java ofrece soporte para los ambientes distribuidos de Internet Dinmico: Nuevo cdigo puede ser agregado a las libreras sin afectar las aplicaciones que estn usando esas libreras, la informacin en el momento de ejecucin puede ser fcilmente encontrada High performance: La ideologa Just in time (JIT) provee la actualizacin de la interpretacin de bytecode cambiando las interpretaciones Multihilos: Java provee el soporte de la programacin de multihilos Orientado a objetos: Utiliza la filosofa de la Programacin Orientada a Objetos, lo cual permite la reusabilidad del cdigo y un mejor mantenimiento del mismo Portable: No existe dependencia en cuanto al lenguaje de programacin, lo cual permite que se use en diferentes plataformas Robusto: Java provee soporte para checar los errores en varios estados, checndose en tiempo de compilacin y de ejecucin, lo cual elimina algunas situaciones de errores comunes en otros lenguajes Seguro: Debido a que Java soporta un ambiente distribuido en Internet tambin ofrece mltiples elementos de seguridad Simple: Java omite muchos elementos que confunden de otros lenguajes, ya que tambin est diseado para correr en maquinas pequeas el tamao de un intrprete bsico de una clase soporta 40KB

Uso de la memoria en Java


Con Java uno no se tiene que preocupar de definir un espacio en memoria de la mquina para los datos o variables que se ejecutan al momento de ejecutar un programa, ya que JVM y el colector de basura se encargan de eso. Sin embargo es bueno conocer los diferentes tipos de almacenamiento en memoria, lo cual tambin ayuda a entender como los objetos son creados. Los datos de un programa son colocados en 2 diferentes reas de memoria: Stack y Heap. Los elementos que se encuentran en el Stack son:

2 Fundamentos de programacin en Java


Variables locales: Variables de tipo primitivo definidos dentro de un mtodo o como parmetros de un mtodo Variables locales de referencia: Variables de referencia a un objeto y que son definidas dentro de un mtodo o como parmetros del mtodo. Invocacin de los mtodos: cuando se invoca un mtodo

Los elementos que se encuentran en el Heap son: Instancia de las variables: Variables de tipo primitivo definidos dentro de la clase pero afuera de todos los mtodos. Referencia a variables de instancia: las variables que hacen referencia a un objeto y que son definidas dentro de la clase pero fuera de todos los mtodos Objetos: Representan las entidades del problema del mundo real que el programa de Java esta tratando de resolver. Todos los objetos viven en el Heap, siempre

Los elementos situados en el Heap que no se utilizan mas son eventualmente removidos por el colector de basura para liberar la memoria usada por ellos.

Elementos de un programa en Java


Un programa en Java est compuesto por clases, las cuales consisten de mtodos y variables. Los problemas del mundo real contienen objetos (entidades), por lo cual el primer paso es disear un programa en Java que reconoce los objetos en el problema que el programa debe de resolver Los objetos representan las entidades del mundo real que el programa est tratando de resolver, por medio de la construccin de bloques en el lenguaje Java. Una Clase es una estructura en base a la cual los objetos se crean, por lo tanto, en el cdigo no se escribe objetos, si no clases en base a las cuales se crean los objetos Clases Escribir una clase es conocido como implementar una clase y la implementacin de las clases tiene 2 componentes: La declaracin de la clase: Contiene el nombre de la clase y el modificador de acceso de la clase, la herencia de la clase entre otras cosas. Cuerpo de la clase: Sigue a la declaracin de la clase y est definido por { .} , el cual contiene los mtodos, variables y la lgica del programa. La declaracin de una clase es: <modificador> class <nombre_clase>{ } Los estndares Java para la creacin de clases son: Solamente puede haber 1 clase pblica por cada archivo de cdigo fuente. Si en ese archivo se encuentra la funcin main, la clase en la que se encuentra dicha funcin debe de ser la publica Los comentarios aparecen al principio o al final de la lnea de cdigo y de ah en fuera hay libertad para colocar los archivos Si hay una clase publica dentro del archivo el nombre del archivo debe concordar con el nombre de la clase publica Si la clase es parte de un paquete la sentencia package debe de ser declarada en la primera lnea del cdigo fuente, antes de las sentencias import Las sentencias package e import aplica a todas las clases declaradas dentro de un archivo, en otras palabras Un archivo puede tener ms de una clase no publica Para la definicin del nombre de las clases la primer letra debe de ser maysculas y si tiene varias palabras la primer letra de de estar en minscula y la primer letra de las dems palabras en mayscula (casoCamel) Cada vez que se crea un objeto de la clase se dice que Un objeto es una instancia de la clase, y a ese proceso se le llama Instanciacin

3 Fundamentos de programacin en Java


Modificadores de acceso El Java existe 4 niveles de acceso, los cuales se usan en cada clase, mtodos e instancias (variables) las clases usan el acceso default, public y private mientras que los dems elementos usan todos los accesos default: se define cuando no se escribe ningn tipo de modificador de acceso, puede ser accesado solo si pertenece al mismo paquete public: cuando un mtodo es declarado publico significa que todas las clases sin importar del paquete del que se hable pueden tener acceso a la clase o al miembro de la clase private: los elementos privados de una clase no pueden ser accesados por otros elementos que no sea la clase donde est declarada protected: puede ser accesado por miembros de diferentes paquetes

Visibilidad Desde la misma clase Desde otra clase en el mismo paquete Desde una subclase en el mismo paquete Desde una clase fuera del paquete Desde cualquiera no sub-clase fuera del paquete Objetos

Public Si Si Si Si Si

Protected Si Si Si Si No

Default Si Si Si No No

Private Si No No No No

Cuando se crea una clase se debe de tener en mente los objetos que se crearan a partir de ella, los cuales corresponden a los problemas que se quieren resolver. Un objeto de una determinada clase se crea en el momento en que se define un objeto de una variable de dicha clase. La declaracin de los objetos es: <nombre_clase> <objeto_o_instancia> = new <Constructor_clase>(); Cuando se escribe un programa utilizando un lenguaje orientado a objetos, no se definen objetos verdaderos, se definen clases de objetos, donde una clase se ve definida como una plantilla para mltiples objetos con caractersticas similares. Cuando se ejecuta un programa orientado a objetos, los objetos estn recibiendo, interpretando y respondiendo a mensajes de los otros objetos. Los mensajes estn asociados con un mtodo, de tal forma que cuando un objeto recibe un mensaje la respuesta del mensaje es ejecutar el mtodo asociado. Mtodos Un mtodo se escribe en una clase de objetos y determina como tiene que actuar el objeto cuando se recibe el mensaje vinculado a con ese mtodo. A su vez, un mtodo tambin puede enviar mensajes a otros objetos solicitando una accin o informacin La estructura de los mtodos es muy similar a las de las clases: Declaracin del mtodo: Contiene algunos atributos tales como la accesibilidad del mtodo, el tipo de retorno del mtodo, el nombre del objeto, as como los argumentos que este recibe y el tipo de dato de los mismos Cuerpo del mtodo: Contiene variables locales y la lgica del mtodo La declaracin de los mtodos es: <modificador> <tipo_retorno> <nombre_metodo>( <argumentos>) { } Hay que recordar que al momento de parar un argumento en los mtodos (sea un valor primitivo o un objeto) se est pasando una copia de esa variable y no el valor original en si

4 Fundamentos de programacin en Java


Las variables declaradas en el cuerpo del mtodo son locales a dicho mtodo, y por definicin solamente son accesibles dentro del mismo. El <tipo_retorno> especifica que tipo e valor retorna el mtodo, este pude ser cualquier tipo primitivo o referenciado. para indicar que no se devuelve nada se utiliza la palabra reservada void. El resultado de un mtodo es devuelto a la sentencia que lo invoco por medio de una sentencia return. La sentencia return puede ser la ultima o no de un mtodo, puede aparecen mas de una vez en el cuerpo del mtodo. En caso de que el mtodo no retorne valor se puede omitir o especificar simplemente return. Los estndares Java para la creacin de mtodos son: La primer letra debe de ser minscula, y generalmente son verbos (ya que son acciones que realiza la clase) Si est compuesta por 2 palabras la primer letra de la primer palabra es minscula y la primer letra de las dems palabras son en mayscula Si el mtodo va a retornar un dato no booleano la primer palabra debe de ser un get y posteriormente el dato que regresa (getSize()) Si el mtodo va a retornar un dato booleano en lugar del get se coloca un is y posteriormente en dato booleano que regresara (isValido()) Los mtodos de obtencin de datos deben de ser pblicos sin argumentos y deben de retornar un tipo de dato El prefijo del mtodo de asignacin debe de ser set y posteriormente el nombre del atributo a asignar comenzando en mayscula Los mtodos de asignacin deben de ser pblicos con tipo de retorno void y con argumentos que representan el valor a asignar Los mtodos se pueden declarar privados si son mtodos que se ejecutan solamente dentro de la clase Mtodo main Toda aplicacin java tiene un mtodo denominado main, y solo uno, este mtodo es el punto de entrada a la aplicacin y tambin es el punto de salida. Este mtodo es pblico, esttico, no devuelve nada y tiene argumento de tipo String que almacenara los argumentos pasados en la lnea de ordenes cuando se invoca la aplicacin para su ejecucin. Sobrecarga de mtodos La sobrecarga de mtodos se utiliza cuando se quiere hacer la misma tarea pero con valores diferentes. En java se facilita la definicin mltiple de mtodos con el mismo nombre dentro de una misma clase, para que el compilador identifique que mtodo ejecutar la sobrecarga debe de tener como diferencia la cantidad de parmetros (o argumentos) que recibe y/o el tipo de datos. Los puntos clave para la sobrecarga de mtodos son: 2 o ms mtodos con el mismo nombre en la misma clase pueden ser llamados si contienen diferentes cantidades de parmetros o la misma cantidad de parmetros pero de diferentes tipos La sobrecarga de los mtodos pueden tener diferentes modificadores El tipo de retorno de los mtodos puede ser el mismo o diferente Operador this El operador this se usa para hacer referencia a variables o mtodos declarados dentro de la mismo clase e incluso para hacer referencia al objeto mismo. La manera en que se puede usar este operador es: Uso Variables Mtodos Ejemplo .<variable_clase>=<argumento>; this.<nombre_metodo>() Explicacin Cuando un atributo de la clase se llama igual que el argumento que est recibiendo el mtodo Especifica el mtodo de esta clase que se desea que se ejecute. Se utiliza comnmente cuando existe herencia de clases

5 Fundamentos de programacin en Java


Paso de clases nmeros.asignar(this); Se pasa como atributo un objeto de alguna clase

Constructores y sobrecarga de constructores Los constructores son mtodos que se ejecutan de manera automtica al momento de crear una clase, las caractersticas de estos mtodos son: se llaman igual que la clase y no retornan ningn tipo de dato, ya que su funcin es realizar acciones u operaciones necesarias (limpiar variables, realizar operaciones con otros objetos, etc.) para que los dems mtodos funcionen bien. Cuando el compilador de java no identifica ningn constructor dentro de la clase, de manera interna genera un constructor nulo con la finalidad de que al momento de crear el objeto y de utilizar el operador new no marque ningn error. Si uno o ms constructores estn definidos dentro de la clase el compilador no proporciona ningn compilador nulo Una clase puede tener ms de una clase, lo cual da flexibilidad en la manera de construir las instancias y de inicializar los objetos. Dentro de un constructor se puede encontrar la invocacin a otro constructor por medio del operador this Public inicializar(String dato){this();} Public inicializar(){} La nica regla para poder hacer esto es que la invocacin del constructor debe de ser la primera lnea dentro del constructor Tipos de datos Existen 8 tipos de datos primitivos en Java : Boolean: Este tipo de dato se usa para representar una condicin binaria: true o false (verdadero o falso). Su tamao es de bit (0s y 1s)se enciende cuando su valor es verdadero y se apaga cuando su valor es falso. 7 7 Byte: Este es un dato de 8 bites, con signo; cuyo rango de valor puede soportar del -2 a 2 -1 (-128 al 127) 15 15 Short: Este es un dato de 16 bits, con signo; cuyo rango de valor puede soportar del -2 a 2 -1 (-32,768 al 32,767) Char: Este es un dato de 16 bits, un dato entero que se usa para representar un carcter del teclado. Una variable de 16 este tipo nunca tiene un valor negativo y el rango de valor es de 0 a 2 -1 (de 0 a 65,535) 31 Int: Este es un dato de 32 bits con signo, datos completamente enteros, el rango de valor que soporta es de -2 a 31 2 -1 (-2,147,483,648 a 2,147,483,647) 38 Float: Es un dato de 32 bits con signo, y con punto decimal, el rango del valor que soporte es de +/-3.40282347 Double: Es un dato de 32 bits con signo, y con punto decimal, el rango del valor que soporte es de +/308 1.79769313486231570

Tipo Dato Boolean Byte Short Char Int Float double

Tamao en bits 1 8 16 16 32 32 64

Rango del valor True / False 7 7 -2 a 2 -1 15 15 del -2 a 2 -1 16 0a2 31 31 -2 a 2 -1 31 31 -2 a 2 -1 63 63 -2 a 2 -1

Signo / no Signo Signo Signo Sin signo Signo Signo Signo

Valor inicial False 0 0 \u0000 0 0.0f 0.0d

6 Fundamentos de programacin en Java

Casting permite convertir valores primitivos de 1 tipo a otro. En casting puede ser implcito o explicito, un casting implcito significa que tu no tienes que convertir cdigo para el casting, la conversin ocurre automticamente, en este tipo de casting puede tener posible prdida de precisin la cual ocurre cuando se quiere poner un valor de tipo de dato de mayor nivel en uno de menor nivel. A fin de evitar esa posible prdida de precisin existe el casting explicito, en donde dice al compilador que estas conciente del peligro y que aceptas la responsabilidad completa.

Int a=100; Float a=100.001f; Variables

long b=a; int b=(int) a;

Las variables son smbolos que representan un valor almacenado en la memoria de la computadora. La declaracin de almacenado las variables debe de especificar el tipo de dato y el nombre de la variable. El nombre de las variables debe de tener un identificador legal y no puede ser con palabras reservadas. dentificador Las siguientes reglas determinan un nombre legal: glas El nombre debe de empezar con una letra (a A_Z),_,$ pero no pueden empezar con nmeros (a-z, El primera carcter puede sr seguido por una serie de letras o nmeros El nombre no puede ser una palabras reservada del lenguaje La declaracin de la variable es <tipo> <nombre_variable> = <valor> Las variables pueden ser clasificadas en 3 categoras: Variables locales: Se declaran dentro de un mtodo, es decir, pertenecen a ese mtodo, y pueden ser accesadas nicamente dentro del mtodo donde son declaradas y son destruidas en el momento en que el mtodo se termina todo Variables de instancia: Son declaradas dentro de la clase pero fuera de cualquier mtodo Variables estticas: Pertenecen a la clase en la que son declaradas, estas variables se conocen como variables a nivel variables de clase, ya que tienen el mismo valor para todos los objetos de esa clase

7 Fundamentos de programacin en Java Operadores


Operadores aritmticos En matemticas estamos familiarizados con las operaciones aritmticas con cualquier tipo numrico. Los operadores aritmticos soportados por Java son: Operador + ++ -* / % Uso Op1+op2 ++op op++ Op1-op2 --op op-Op1*op2 Op1/op2 Op1%op2 Descripcin Suma el valor de op1 y de op2 Incrementa el valor de op en 1 Resta el valor de op2 a op1 Disminuye el valor de op en 1 Multiplica el valor de op1 con op2 Divide el valor de op1 entre op2 Retorna el residuo de dividir op1 entre op2 Valor de x 7 7 7 7 Cdigo Y=++x; Y=x++; Y=x--; Y=--x; Valor de y 8 7 6 7 Valor final de x 8 8 6 6

Operadores relacionales Tambin llamados operadores de comparacin compara el valor de 2 operandos y retorna un valor booleano: verdadero o falso. Operador > >= < <= == != Uso Op1>op2 Op1>=op2 Op1<op2 Op1<=op2 Op1==op2 Op1!=op2 Descripcin Verdadero si op1 es mayor a op2, de lo contrario false Verdadero si op1 es mayor o igual a op2, de lo contrario false Verdadero si op1 es menor a op2, de lo contrario false Verdadero si op1 es menor o igual a op2, de lo contrario false Verdadero si op1 es igual a op2, de lo contrario false Verdadero si op1 es diferente a op2, de lo contrario false

Operadores lgicos Los operadores lgicos son usados para combinar ms de una condicin que puede ser verdadera y false, es decir, se encarga de la conexin de 2 valores booleanos Operador & | ^ ~ ! Uso Op1&op2 Op1|op2 Op1^op2 ~op !op Descripcin AND OR XOR Inversin para bits NOT (Inversin para boolean)

8 Fundamentos de programacin en Java


Operadores de asignacin Operador += -= *= /= %= &= |= ^= Uso Op1+=op2 Op1op2 Op1*=op2 Op1/=op2 Op1%=op2 Op1&=op2 Op1|=op2 Op1^=op2 Igual a . Op1=op1+op2 Op1=op1-op2 Op1=op1*op2 Op1=op1/op2 Op1=op1%op2 Op1=op1&op2 Op1=op1|op2 Op1=op1^op2

Datos no primitivos
Todos los datos no primitivos en java son objetos, los cuales se crean instanciando a una clase. Los objetos son de 2 tipos: los que corresponden a la construccin de clases en Java y los que corresponden a las clases que tu escribes. Cuando declaras una variable de un tipo de dato no primitivo declaras una variable que es una referencia a la memoria donde un objeto vive. Sin embargo, la variable de un tipo de dato no primitivo se conoce como referencia a una variable o una referencia a un objeto. Mientras que la variable de un tipo de dato primitivo almacena el valor en si, las referencias a variables de dato no primitivo hace referencia a la memoria donde el objeto se encuentra. Los objetos son creados mediante la instanciacin de una clase, y podemos declarar objetos de referencia de la misma manera en que declaramos una variable de tipo primitivo Clase variable_referencia; Clase variable_referencia = new Constructor_clase();

Los arreglos en Java son objetos que se usan para almacenar un stock de mltiples variables del mismo tipo de dato. Estas variables pueden sr de tipo primitivo o de tipo no primitivo. Los arreglos se declaran especificando el tipo de dato de los elementos que se almacenaran en el arreglo, seguido por el identificador, se colocan un par de corchetes antes o despus del identificador entre los cuales se puede poner el tamao del arreglo. <tipo_dato> [] <identificador>; <tipo_dato> <identificador> []; <tipo_dato> [tam_arreglo] <identificador>; Clase [] <identificador>; Clase <identificador> []; Clase [tam_arreglo] <identificador>; Cada elemento de un arreglo necesita que se le asigne un valor, el cual puede ser un tipo de dato primitivo o una referencia de objeto, dependiendo del tipo de dato del arreglo. El valor es asignado por referencia al elemento del arreglo. Si el arreglo es de tipo objeto se hace con el operador new. Arreglo[0]=10; Arreglo[1]=8; Arreglo[2]=37; objeto[0]= new Constructor(); objeto[1]= new Constructor(); objeto[2]= new Constructor();

También podría gustarte