0% encontró este documento útil (0 votos)
14 vistas8 páginas

Apuntes - Clase 2 - Programacion Lenguaje Java

El documento detalla conceptos fundamentales de JAVA, incluyendo identificadores, tipos primitivos, constantes, métodos, y el manejo de excepciones. Se explican las estructuras de control, el uso de clases Wrapper, y la diferencia entre String, StringBuilder y StringBuffer. Además, se abordan arrays, enums y el manejo de excepciones con ejemplos de su uso y características.

Cargado por

Irvana Apeseche
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas8 páginas

Apuntes - Clase 2 - Programacion Lenguaje Java

El documento detalla conceptos fundamentales de JAVA, incluyendo identificadores, tipos primitivos, constantes, métodos, y el manejo de excepciones. Se explican las estructuras de control, el uso de clases Wrapper, y la diferencia entre String, StringBuilder y StringBuffer. Además, se abordan arrays, enums y el manejo de excepciones con ejemplos de su uso y características.

Cargado por

Irvana Apeseche
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

APUNTES CLASE 2

Identificadores
En JAVA un identificador puede ser un nombre de clase, de método o de variable.
Los caracteres permitidos para un identificador son los caracteres alfanuméricos, $ (signo
dólar) y _ (guión bajo).
Los identificadores no deben comenzar con dígitos y son case-sensitive.
No hay límite en la longitud de un identificador.
Las palabras reservadas del lenguaje no pueden usarse como identificadores, aunque si
pueden estar contenidas en el nombre de los mismos.

Tipos Primitivos
En JAVA existen 8 tipos de datos primitivos:
• Números enteros (byte, short, int, long).
• Números reales (float, double).
• Carácter (char).
• Booleano o lógico (boolean).

El valor por default depende del tipo de dato (boolean se inicializa en false y el resto en 0).
Todos los tipos en JAVA excepto los primitivos hacen referencia a objetos. Las variables que
refieren a objetos se conocen como variables de referencia. Por default, las variables de
referencia se inicializan con el valor null.
Constantes (final y static)
Una constante es una variable del sistema que mantiene un valor inmutable a lo largo de toda
la vida del programa. Las constantes en JAVA se definen mediante el modificador ‘final’. Al
igual que cualquier variable, una constante puede ser: private, public o protected.

El modificador ‘final’, indica que una variable es de tipo constante y no admitirá cambios
después de su declaración y asignación de valor. Si no sabemos que valor se cargará en la
constante hasta que se ejecute el programa, la inicialización se deberá hacer obligatoriamente
en el constructor de la clase. También se usa como palabra clave en otro contexto: una clase
final (final) es aquella que no puede tener clases que la hereden.

Podemos definir una constante también agregando el modificador 'static', el cual indica que
estamos hablando de un atributo de clase, por lo que es único para todas las instancias
(objetos) de la clase y ocupa un único lugar en memoria. Si no se usa ‘static’, la variable es
diferente para cada objeto). En el caso de una constante no tiene sentido crear un nuevo lugar
de memoria por cada objeto de una clase que se cree, por ello es adecuado el uso del
modificador ‘static’. Cuando usamos “static final” se dice que creamos una constante de clase
por lo que estamos obligados a declarar su valor al momento de declararla y no podemos
hacerlo en el constructor.

Métodos
Un método en JAVA es un conjunto de instrucciones definidas dentro de una clase, que
realizan una determinada tarea y a las que podemos invocar mediante un nombre.
El uso de métodos permite escribir programas modulares, así como también la reutilización de
código y separar funcionalidades.
No se pueden escribir métodos fuera de una clase, ni dentro de otros métodos.
Todo programa JAVA tiene un método llamado main. La ejecución del programa empieza en
este método. El método main es el punto de entrada al programa y también el punto de salida.

Estructura básica de un método en JAVA:

Pasaje de Parámetros
En JAVA todos los parámetros de los métodos se pasan por valor. Cuando se realiza la llamada
a un método, los parámetros formales (parámetros indicados en la declaración) reservan un
espacio en memoria independiente y reciben los valores de los parámetros reales (parámetros
indicados en la llamada al método).
• Si el argumento es de tipo primitivo, el paso por valor significa que durante la
ejecución del método se reserva un nuevo espacio para el parámetro formal y no se
puede modificar el parámetro real durante la ejecución del método.
• Si el argumento es de tipo referencia (un array, un objeto...) el paso por valor significa
que no puede modificarse la referencia pero se pueden realizar llamadas a los
métodos del objeto y modificar el valor asignado a las variables miembro accesibles
del objeto durante la ejecución del método.

Clases Wrapper
Una clase Wrapper es una clase cuyo objeto envuelve o contiene tipos de datos primitivos.
Convierten tipos de datos primitivos en objetos. Los objetos son necesarios si deseamos
modificar los argumentos pasados a un método (los tipos primitivos se pasan por valor).
La mayoría de las estructuras de datos en JAVA almacenan solo objetos (tipos de referencia)
y no tipos primitivos.
La conversión automática de tipos primitivos al objeto de sus correspondientes clases
contenedoras se conoce como autoboxing.
La conversión automática de un objeto de una clase contenedora a su tipo primitivo
correspondiente se conoce como unboxing.

Referencias this y super


La palabra reservada this hace referencia a una instancia concreta de la clase y nos sirve para
invocar los métodos y atributos de esa clase desde alguno de sus métodos o simplemente para
pasarle el objeto completo a algún otro método u objeto.
Generalmente el this se utiliza delante de los atributos en los constructores y en los setters ya
que lo normal es que los parámetros tengan los mismos nombres que los atributos de la clase.

super nos sirve para hacer referencia a la clase padre de nuestro objeto, por lo que nos
permite acceder a los constructores, métodos y atributos de la clase de la que hereda.
super solo nos permite acceder a los métodos y atributos declarados como public o protected,
es decir que no nos otorga ningún privilegio de acceso extra.

Alcance de variables
En JAVA todas las variables deben estar incluidas en una clase.
Las variables definidas dentro de un método se llaman variables locales (o temporales). Estas
variables deben ser inicializadas explicitamente antes de su primer uso. Los parámetros de
métodos o constructores también son variables locales, pero son inicializadas por el código
que invoca a dicho método.
Las variables que son declaradas en una clase, pero por fuera de cualquier método pueden ser
accedidas directamente desde cualquier parte de la clase en cuestión.
En general, un conjunto de { } define un alcance de variable.
Cuando un método tiene la misma variable local que un miembro, la palabra clave “this” se
puede usar para hacer referencia a la variable de clase actual.

Operadores
JAVA proporciona distintos tipos de operadores. Los más utilizados son:
 Aritméticos: Para operaciones aritméticas simples con datos primitivos (*, /, %, +, -)
 Asignación: Para asignación de valores a cualquier variable (=, +=, -=, *=, /=)
 Relacionales: Para verificar relaciones como igualdad, mayor que, menor que.
Devuelven un resultado booleano (==, !=, <, <=, >, >=)
 Lógicos: Para realizar operaciones “AND” y “OR” (&&, ||)
 Ternario: Es una versión abreviada de la declaración if-else. Tiene tres operandos y de
ahí el nombre ternario (condicion ? if true : if false)

Estructuras de Control
En JAVA las estructuras de control son las que determinan la secuencia de ejecución de las
sentencias de un programa.
Se dividen en tres categorías:
 Secuencial: Es la que se utiliza en cualquier programa, ya que las instrucciones del
mismo siguen una secuencia en el orden en el que aparecen.
 Condicionales: Son las que determinan si se ejecutan unas instrucciones u otras según
se cumpla o no una determinada condición (if, if… else, if… else if, switch, ? :).
 Iterativas: Permiten ejecutar en forma repetida un bloque específico de instrucciones.
Se repiten mientras o hasta que se cumpla una condición determinada (while, do…
while, for).
Strings
Un String representa una cadena de caracteres. En JAVA los String son objetos.
Cualquier literal de la forma “abcd” se consideran un objeto de la clase String.
Hay dos formas de crear un String en JAVA:
 Asignando un literal (por ejemplo, “abdcd”) a una instancia de tipo String.
 Creando el objeto de tipo String utilizando el operador new.
Los literales se almacenan en un espacio conocido como string pool. Esto facilita su
reutilización, mejorando la performance en el caso de que se repitan múltiples veces en el
código del programa.
El contenido de un objeto de tipo String es inmutable. Esto quiere decir que, una vez creada, la
secuencia de caracteres que compone la cadena NO se puede modificar.
Dado que el tipo String es inmutable, cualquier operación de modificación sobre una variable
de este tipo implica la creación de un nuevo objeto String como resultado.

StringBuilder y StringBuffer
A diferencia de String, estas clases representan cadenas de caracteres mutables.
Se recomienda utilizar alguna de estas clases cuando es necesario efectuar muchas
modificaciones sobre una cadena de caracteres o manipular bloques de datos (por ejemplo,
lectura de un archivo). Permiten mejor aprovechamiento de la memoria, dado que sus objetos
son mutables.
StringBuffer es una clase “thread safe”, por lo que todos sus métodos públicos son
“synchronized”. Es decir que solo admite que un único thread acceda a ella en forma directa y
esto disminuye su performance.
StringBuilder es una copia de StringBuffer pero sin sincronización, esto implica que tiene
mejor performance.
Salida:

Arrays
Un array es una estructura de datos que nos permite almacenar y agrupar elementos de un
mismo tipo. El tamaño de los arrays se declara al momento de crearlos y no puede ser
modificado en tiempo de ejecución.

Los arrays se numeran desde 0 (primer elemento), hasta el tamaño-1 (último elemento). Para
acceder a un elemento específico del array se usan los corchetes. Se entiende por acceso,
tanto el intentar leer el elemento, como asignarle un valor.
La variable length devuelve el número de elementos que posee el array. Es una variable de
solo lectura, razón por la cual no se le puede asignar un valor.
Se pueden declarar arrays de varios subíndices.

Enums
Un enum en JAVA es un tipo de clase especial que representa una lista fija de constantes que
definen un nuevo tipo de datos. Un objeto de un tipo de enumeración solo puede contener los
valores definidos por dicha lista.

En caso de implementar un constructor el mismo será privado ya que enum es una clase
especial que limita la creación de objetos a los especificados en su definición de clase.
El método values() devuelve un array con todos los valores presentes dentro de enum.
El método valueOf() devuelve la constante enum del valor de cadena especificado, si existe.
Excepciones
En JAVA las excepciones son objetos que se lanzan cuando se produce una condición de error.
Todas las excepciones en JAVA heredan de Throwable, que a su vez se divide en Error
(condiciones de error del sistema) y Exception (condiciones de error del programa).

Las Exception pueden ser:


 Checked: Son excepciones que potencialmente podrían ocurrir durante la ejecución
del programa y por lo tanto no pueden ser ignoradas (por ejemplo, error en lectura de
un archivo). Son aquellas que tiene que controlar el programador (deben ser tratadas
en forma explícita). El compilador fuerza a que sean capturadas.
 Unchecked: Son excepciones que se originan a partir de condiciones de error en un
programa difíciles de controlar (por ejemplo, null pointers o acceso a un array fuera de
rango). No es necesario controlarlas o capturarlas (no deben ser tratadas en forma
explícita).

Manejo de Excepciones
En JAVA el manejo de excepciones se gestiona a través de cinco palabras clave: try, catch,
throw, throws y finally.
Las partes del programa en las que se desea controlar excepciones están contenidas dentro de
un bloque try.
Si se produce una excepción dentro del bloque try, se lanza y puede ser capturada
usando catch para manejarla de la forma más adecuada.
Las excepciones generadas por el sistema son lanzadas automáticamente en tiempo de
ejecución. Para lanzar manualmente una excepción, se hace usando throw.
Si un método genera una excepción que no maneja, debe declarararla como tal con una
cláusula throws.
Cualquier código que se defina que debe ejecutarse al salir de un bloque try, sin importar si
termina normalmente o debido a una excepción, debe colocarse en un bloque finally.
Las excepciones pueden ser capturadas a cualquier nivel.
Si ocurre una excepción en un método y la misma no es capturada, entonces se propaga hacia
el siguiente método en la jerarquía.
Si la excepción no es capturada hasta el método main, el programa finaliza de manera
anormal.
Dado que la superclase de todas las excepciones es Throwable, para atrapar todas las
excepciones posibles se debe capturar Throwable. Si desea capturar excepciones de un tipo de
superclase y un tipo de subclase, la subclase debe ir primero en la secuencia de catch. En caso
contrario, la captura de la superclase también atrapará todas las clases derivadas y la
cláusula catch de la subclase nunca se va a ejecutar.
Al momento de capturar una excepción se debe tener cuidado de no hacerlo en forma
demasiado genérica, ya que de esa forma se podría terminar “ocultando” errores en el
programa.

También podría gustarte