Vous êtes sur la page 1sur 6

Qu es Java?

Introduccin al Lenguaje
Java

Puri Arenas
Facultad de Informtica
UCM

A small part of these slides has been adapted from PJ Dillon (CS401)

Un lenguaje de programacin orientado a objetos

desarrollado por Sun Microsystems.


Gestin automtica de la memoria (recolector de
basura).
Multiplataforma.
Concurrencia.
Desarrollo de interfaces grficas (GUI).
Conectividad.
Libreras.

Estructura de un proyecto en
java

Ficheros Java
Los fuentes Java se guardan en ficheros de extensin

Un proyecto en Java es una coleccin de paquetes.


Un paquete es una coleccin de clases.
Una clase se define en un fichero con el mismo nombre
de la clase y extensin .java. Est compuesta por :

.java. Los fuentes pueden escribirse en cualquier editor


de texto, o entorno de desarrollo para Java (por ejemplo
Eclipse).

Atributos
Mtodos

Los fuentes se compilan para obtener bytecode. Se

generan en ficheros .class

Todo proyecto debe contener al menos una clase con

un mtodo:

public static void main(String[] args) {}

El bytecode se ejecuta en la JVM (Java Virtual Machine).


3

Creando un proyecto en
eclipse

Paquetes en java
// nombre del paquete en minsculas
package nombre.del.paquete
// se importan otros paquetes necesarios
import java.util.Vector
// implementacin de la clase
public class NombreClase {

};
El nombre de la clase coincide con el nombre del

Arrancar eclipse y fijar el workspace, por ejemplo

c:\hlocal\Demos
Crear un proyecto nuevo File/New/Java Project
Se crea la carpeta Demos\ProyectoDemo, con dos

directorios bin (.class) y src (.java)

Creamos un paquete File/New/Package, de nombre, por

ejemplo tp.primerosPasos.
Se crea el directorio tp/primerosPasos en el directorio
src
Aadimos una clase al paquete con File/New/Class.
Marcamos la opcin de
public static void main(String[] args)

fichero. Debe empezar en maysculas.


5

Tipos de datos primitivos

Cadenas de caracteres

Similares a los de C++, pero no existe el concepto

de unsigned
byte: 8 bits (-128 al 127)
short: 16 bits (-32768 al 32767)
int: 32 bits (-2147483648 al 2147483648)
long: 64 bits (-2**63 al 2**63-1)
float: 32 bits
double: 64 bits
boolean: true y false
7

Clase String del paquete java.lang.


Las clases del paquete java.lang no hay que

importarlas.

String cadena = la clase de TP es a las;


System.out.println(cadena + 10);
// System.out.println(String) escribe por consola
// String + String (concatenacin de Strings)
8

Variables y constantes
Tipo nombreVariable = inicializacin;
final tipo constante = valor;

int n = 0;
int m;
char a = z;
final double PI = 3.141592;
final float PIF = 3.141592f;
final int MAX = 200;
// las constantes siempre en maysculas
9

Arrays
tipo[] nombreArray;
tipo[] nombreArray = {a,b,c}, donde a,b y c son

elementos del tipo tipo

tipo[] nombreArray = new Tipo[n], donde n es un

nmero o una constante.

int[] vectInt = {4,5}; // vectInt[0]=4,vectInt[1]=5;


char[] vectChar = new char[3];
vectChar[0]=a;
vectChar[1]=b;

10

Arrays

Arrays

Se puede acceder a la longitud de un array con:


a.length

tipo[][] a; define un array bidimensional (matriz)

int[][] matEnt = new int[2][3];


int[][] matEnt = {{1,2,3},{4,5,6}};

// muestra por pantalla el contenido del array


void m(int[] a){
for (int i=0; i<a.length; i++)
System.out.println(a[i]);
}

11

//muestra el contenido de la matriz


void printMatriz(int[][] a){
for (int i=0; i< a.length; i++)
for (int j=0; j< a[i].length; j++)
System.out.println(a[i][j]);
}
12

Estructuras de control y
funciones
Las estructuras de control son similares a las de C++

(if, for, while, return, do-while).

En java slo existen funciones y no existe el concepto

de parmetro de salida. Todos los parmetros son


de entrada.
int factorial(int n){
if (n==0) return 1;
else return n*factorial(n-1);
}

13

Parmetros de salida en C++ y


punteros
struct tDireccion {
String calle;
int numero;
};
void updateDir(tDireccion* d){//d parmetro de entrada
d->calle = "Calle Mayor";
d->numero = 41;
};
tDireccion* dir = new tDireccion;
updateDir(dir);
Cunto vale dir->calle y dir->numero?
14

Parmetros de salida en C++ y


punteros

Parmetros de salida en C++


y punteros

struct tDireccion {
String calle;
int numero;
};
void updateDir(tDireccion* d){//d parmetro de entrada
d = new tDireccion;
d->calle = "Calle Mayor";
d->numero = 41;
};
tDireccion* dir;
updateDir(dir);
Cunto vale dir->calle y dir->numero?
15

struct tDireccion {
String calle;
int numero;
};
void updateDir(tDireccion*& d){//d parmetro de salida
d = new tDireccion;
d->calle = "Calle Mayor";
d->numero = 41;
};
tDireccion* dir;
updateDir(dir);
Cunto vale dir->calle y dir->numero?
16

Parmetros de salida en C++


y punteros

Enumerados

En Java todos los parmetros son de entrada, luego para

Los tipos enumerados son similares a las clases. Por

modificar un puntero (objeto) en un mtodo, este tiene


que haberse creado previamente.

class tDireccion {
private String calle;
private int numero;
void updateDir(){
this.calle = "Calle Mayor";
this.numero = 41;
};
};

tanto se crean en ficheros independientes con el


mismo nombre que el del tipo enumerado.

struct tDireccion {
String calle;
int numero;
};
void updateDir(tDireccion* this){
this->calle = "Calle Mayor";
this->numero = 41;
};

public enum Colores


{
ROJO,AZUL,AMARILLO,VERDE;
}

tDireccion* dir = new tDireccion(); tDireccion* dir=new tDireccion;


dir.updateDir();
updateDir(dir);

17

// fichero de nombre Colores.java

18

Enumerados

Comentarios
Los comentarios son igual que en C++. Existe la herramienta

javadoc, que genera a partir de los comentarios un directorio


doc con un fichero index.html con informacin sobre el
proyecto (paquetes, clases, e informacin sobre mtodos y
campos)
/**
Devuelve el factorial de un nmero
@param n Nmero del que calculamos el factorial.
@return Factorial de n
*/
static int factorial(int n){
if (n==0) return 1;
else return n*factorial(n-1);
}

Para acceder a las constantes de enumeracin:

Colores.ROJO
Se pueden comparar con ==
Se pueden escribir con System.out.print, o

System.out.println.

19

20

Entrada/salida

Entrada/salida

Para imprimir por pantalla se utiliza System.out y

System.err

Para leer utilizaremos, de momento, la clase Scanner del

paquete java.util.

System.out.print(Escribe);
System.out.println(Escribe y salta de lnea);
System.err.print(Escribe error);
System.err.println(Escribe error y salta lnea);

21

Scanner sc = new Scanner(System.in);


int i = sc.nextInt(); // lee un entero del teclado
String line = sc.nextLine(); // lee una linea
String[] words = line.split(" ");

22

Vous aimerez peut-être aussi