Variables y Tipos de Datos
## Objetivos de Aprendizaje
- Declarar e inicializar variables
- Comprender los tipos primitivos
- Trabajar con tipos de referencia
- Dominar la conversión de tipos
## Variables
### Declaración
```java
int age; // Declaración
age = 25; // Asignación
int score = 100; // Declaración + Inicialización
```
### Reglas de Nomenclatura
- Debe comenzar con letra, guión bajo o signo de dólar
- Puede contener números (después del primer carácter)
- No puede usar palabras reservadas
- Distingue mayúsculas de minúsculas
```java
int age; // Válido
int _count; // Válido
int $total; // Válido
int 2ndPlace; // Inválido
int class; // Inválido (palabra reservada)
```
## Tipos de Datos Primitivos
### Tipos Enteros
| Tipo | Tamaño | Rango |
|------|--------|-------|
| byte | 1 byte | -128 a 127 |
| short | 2 bytes | -32,768 a 32,767 |
| int | 4 bytes | -2.1B a 2.1B |
| long | 8 bytes | Muy grande |
```java
byte b = 100;
short s = 32000;
int i = 2000000;
long l = 9000000000L; // Nota el sufijo L
```
### Tipos de Punto Flotante
| Tipo | Tamaño |
|------|--------|
| float | 4 bytes |
| double | 8 bytes |
```java
float pi = 3.14f; // Nota el sufijo f
double precise = 3.14159265359;
```
### Tipo Carácter
```java
char grade = 'A';
char symbol = '\u0041'; // Unicode
```
### Tipo Booleano
```java
boolean isActive = true;
boolean hasPermission = false;
```
## Tipos de Referencia
### Strings
```java
String name = "Alice";
String greeting = new String("Hello");
```
### Arreglos
```java
int[] numbers = {1, 2, 3, 4, 5};
String[] names = new String[3];
```
### Clases
```java
String name = "Alice"; // String es una clase
Scanner scanner = new Scanner(System.in);
```
## Conversión de Tipos
### Ampliación (Automática)
```java
int i = 100;
long l = i; // int a long (automático)
double d = i; // int a double (automático)
```
### Reducción (Explícita)
```java
double d = 3.99;
int i = (int) d; // Trunca a 3
```
### String a Número
```java
String s = "123";
int i = Integer.parseInt(s);
double d = Double.parseDouble(s);
// Con manejo de errores
try {
int i = Integer.parseInt("abc");
} catch (NumberFormatException e) {
System.out.println("Número inválido");
}
```
### Número a String
```java
int i = 42;
String s = String.valueOf(i);
String s2 = Integer.toString(i);
String s3 = "" + i; // Concatenación
```
## Constantes
```java
final double PI = 3.14159;
final int MAX_SIZE = 100;
// Intentar modificar resulta en error
// PI = 3.14; // ¡Error de compilación!
```
## Alcance de Variables
```java
public class Scope {
int global = 10; // Variable de instancia
public void method() {
int local = 20; // Variable local
for (int i = 0; i < 5; i++) { // Variable de bloque
// i solo existe en este ciclo
}
}
}
```
## Primitivos vs Referencia
```java
// Primitivo - copia del valor
int a = 10;
int b = a;
b = 20;
// a sigue siendo 10
// Referencia - copia de la referencia
int[] arr1 = {1, 2, 3};
int[] arr2 = arr1;
arr2[0] = 99;
// arr1[0] también es 99 (mismo arreglo)
```
## Palabra clave var (Java 10+)
```java
var name = "Alice"; // El compilador infiere String
var age = 25; // El compilador infiere int
var list = new ArrayList(); // Tipo largo inferido
```
## Resumen
- Las variables almacenan valores de datos
- 8 tipos primitivos: byte, short, int, long, float, double, char, boolean
- Tipos de referencia: Strings, Arreglos, Objetos
- Usa `final` para constantes
- La ampliación es automática; la reducción requiere cast
- `Integer.parseInt()` convierte String a int
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →