Sie sind auf Seite 1von 46

CONTENIDO

Orgenes
Caractersticas del Lenguaje
Conceptos Bsicos
Estructura de un Programa
Nomenclatura Habitual
Programacin en Java

Comentario
Identificadores
Tipos de datos
Variables
Operadores
Decisiones
Ciclos

Clases
Arreglos

ORIGENES

Surgi en 1991 cuando un grupo de ingenieros de


Sun Microsystems trataron de disear un nuevo
lenguaje de programacin destinado a
electrodomsticos.
Era importante conseguir una herramienta
independiente del tipo de CPU utilizada. (JVM)
Se introduce a finales de 1995, como lenguaje de
programacin para computadores e incorporan un
intrprete Java en el programa Netscape
Navigator, versin 2.0.

CARACTERISTICAS DEL
LENGUAJE JAVA

Simple
Orientado a Objetos
Distribuido
Robusto
Arquitectura Neutral
Seguro
Portable
Interpretado
Multithreded
Dinmico

CONCEPTOS BASICOS

CLASE. es una agrupacin de datos (variables o


campos) y de funciones (mtodos) que operan
sobre esos datos. La POO se basa en la
programacin de clases.
Una vez definida e implementada una clase, es
posible declarar elementos de sta de modo
similar a las variables del lenguaje (int, double).
Los elementos declarados de una clase se
denominan objetos de la clase.
La
Laclase
clasees
eslo
logenrico:
genrico:es
esel
elpatrn
patrnoomodelo
modelo
para
crear
objetos.
para crear objetos.

CONCEPTOS BASICOS
(Cont..)

Sintaxis de la definicin de una clase:


< modificador> class < nombre_clase> {
[< declaracin_atributos>]
[< declaracion_constructores>]
[< declaration_metodos>]
}

Ejemplo:
public class Vehicle {
private double maxLoad;

}
}

public void setMaxLoad(double value) {


maxLoad = value;

CONCEPTOS BASICOS
(Cont..)

HERENCIA. Permite que se pueden definir


nuevas clases basadas en clases existentes,
lo cual facilita re-utilizar cdigo previamente
desarrollado.

Si una clase deriva de otra (extends) hereda


todas sus variables y mtodos.
La clase derivada puede aadir nuevas variables
y mtodos y/o redefinir las variables y mtodos
heredados.
Java no permite la herencia mltiple

CONCEPTOS BASICOS
(Cont..)

INTERFACES. Es un conjunto de declaraciones de funciones. Si


una clase implementa (implements) una interface, debe definir
todas las funciones especificadas por sta. Una clase puede
implementar ms de una interface, representando una forma
alternativa de la herencia mltiple.

PAQUETES. Es una agrupacin de clases. Existen una serie de


packages incluidos en el lenguaje.
Adems el usuario puede crear sus propios packages.

Lo habitual es juntar en packages las clases que estn relacionadas.


Todas las clases que formen parte de un package deben estar en el
mismo directorio.
Los paquetes se cargan con la palabra clave import, especificando el
nombre del paquete como ruta y nombre de clase. Se pueden cargar
varias clases utilizando un asterisco.
import java.Date;
import java.awt.*;

ESTRUCTURA DE UN
PROGRAMA
package basicos;
import java.io.*;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hola Mundo");

}
}

NOMENCLATURA HABITUAL

Los nombres de clases e interfaces comienzan siempre


por mayscula (Ejemplos: Animal,Rectangulo).
Los nombres de objetos, mtodos, variables miembro
yvariables locales de los mtodos, comienzan siempre
con minscula (Ejemplos: main(), dibujar(),
numRectangulos, x, y)
Cuando un nombre consta de varias palabras es habitual
poner una a continuacin de otra, poniendo con mayscula
la primera letra de la palabra que sigue a otra (Ejemplos:
elMayor(), VentanaCerrable, numAlumno)
Los nombres de las variables finales, es decir de las
constantes, se definen siempre con maysculas (Ejemplo:
final float PI = 3.1416F)

PROGRAMACIN EN JAVA

Consta de una clase que contiene el programa principal (aquel que


contiene la funcin main()).
Los archivos fuente tienen la extensin *.java
Los archivos compilados tienen la extensin *.class.
Un archivo fuente puede contener ms de una clase, pero slo una
puede ser public.
El nombre del archivo fuente debe coincidir con el de la clase
public.
Una aplicacin est constituida por uno o varios archivos *.class
Las clases de Java se agrupan en packages, que son libreras de
clases
Una sentencia es una expresin que acaba en punto y coma (;).
Se permite incluir varias sentencias en una lnea, aunque lo habitual
es utilizar una lnea para cada sentencia.

COMENTARIOS
En Java hay tres tipos de comentarios:

// comentarios para una sola lnea

/* comentarios de una o ms lneas */

/** comentario de documentacin, de una


o ms lneas */

IDENTIFICADORES

Nombran variables, funciones, clases y


objetos; cualquier cosa que el programador
necesite identificar o usar
Comienzan con una letra, un subrayado (_) o
un smbolo de dlar ($).
Los siguientes caracteres pueden ser letras o
dgitos.
Se distinguen las maysculas de las
minsculas y no hay longitud mxima.

PALABRAS RESERVADAS

TIPOS DE DATOS
Tipos
De Datos

Primitivos
Entero

De Referencia

Reales

Boolean

byte

short

float

int

long

double

char

Arreglos

Clases

Interfaces

TIPOS DE DATOS
PRIMITIVOS
Tipo

Descripcin

boolean

1 byte. Valores true y false

char
byte
short
int

2 bytes. Unicode.

long

8 bytes. Valor entre -9.223.372.036.854.775.808 y

float

4 bytes. De -3.402823E38 a -1.401298E-45 y de

double

8 bytes.

Comprende el cdigo ASCII

1 byte. Valor entero entre -128 y 127


2 bytes.

Valor entero entre -32768 y 32767

4 bytes.

Valor entero entre -2.147.483.648 y 2.147.483.647

9.223.372.036.854.775.807
1.401298E-45 a 3.402823E38
De -1.79769313486232E308 a

-4.94065645841247E-324 y de 4.94065645841247E-324 a
1.79769313486232E308

VARIABLES

De acuerdo con el tipo


de informacin que
contienen, en Java
hay dos tipos
principales de
variables:

Variables de tipos
primitivos. Estn
definidas mediante un
valor nico.
Variables referencia.
arrays u objetos de
una determinada clase.

DEFINICIN E INICIALIZACIN
DE VARIABLES

Una variable se define especificando el tipo y el


nombre de la variable. Ej.: int x;

Las variable primitivas se inicializan a cero


(salvo boolean y char, que se inicializan a false y
'\0') si no se especifica un valor en su
declaracin.
Ej.: int y = 6; boolean band = true;

Las variables de referencia son inicializadas por


defecto a un valor especial: null.
Ej.: MiClase varRef;

PROGRAMA EJEMPLO DE
INICIALIZACIN DE VARIABLES
class Miembros {
boolean b;
char c;
byte bt;
short sh;
int i;
long l;
float f;
double d;
String s;
}

public class IniciaVariables {


public static void main( String args[] ) {
Miembros campo = new Miembros();
System.out.print("b= " + campo.b + "\n"
+
"c= " + campo.c + "\n" +
"bt= " + campo.bt + "\n" +
"sh= " + campo.sh + "\n" +
"i= " + campo.i + "\n" +
"l= " + campo.l + "\n" +
"f= " + campo.f + "\n" +
"d= " + campo.d + "\n" +
"s= " + campo.s + "\n" +
"Fin del programa");
}
}

VARIABLES (Cont)

Desde el punto de vista de su papel en el


programa, pueden ser:

Variables miembro de una clase: Se definen


en una clase, fuera de cualquier mtodo.
Variables locales: Se definen dentro de un
mtodo o ms en general dentro de cualquier
bloque entre llaves {}. Se crean en el interior
del bloque y se destruyen al finalizar dicho
bloque.

PROGRAMA EJEMPLO DE
VARIABLES LOCALES Y
MIEMBROS

class MyDate {
private int day = 1;
private int month = 1;
private int year = 2000;
public MyDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
public void print() {
System.out.println("Tu fecha de Nacimiento es " + day + "/" + month
+ "/" + year);
}
}
public class TestMyDate {
public static void main(String[] args) {
MyDate today = new MyDate(22, 7, 1964);
today.print();
}
}

MBITO DE UNA VARIABLE

Es la parte de la aplicacin donde dicha variable


es accesible y por lo tanto puede ser utilizada en
cualquier expresin.

El mbito de una variable determina cuando una


variable es creada y a su vez cuando debe
liberarse la memoria usada.

VISIBILIDAD DE
VARIABLES MIEMBRO

Aplica slo a las variables miembro de una clase y


determina si la variable puede ser usada fuera de
la clase.

Est determinada por los modificfadores de


acceso, que pueden ser:
public
private
Protected

OPERADORES

Java es un lenguaje rico en operadores, que son casi


idnticos a los de C/C++.

Aritmticos.
+
*
/
%
Relacionales. > <
>= <= !=
==
Lgicos.
&&
||
!
&
|
Asignacin.
=
+=
-=
*=
/= %=
Incremento/Decremento. ++ -Concatenacin.
+
A nivel de bit.
>> << >>> & | ^ ~
boolean
booleanburro;
burro;
Condicional.
?:
booleanExpression ? res1 : res2
Persona
p;
Persona p;
Estudiante pepito;
// Estudiante
es objeto
una subclase de Persona
Instanceof.
permite
si un
Estudiante pepito;
//saber
Estudiante
es una subclase de Persona
p = new Persona();

p = new
pertenece
a Persona();
unaEstudiante();
determinada clase o no.
pepito
pepito==new
new Estudiante();
burro
Persona;
objectName
burro ==pinstanceof
p instanceof
instanceofClassName
Persona; ////burro
burroser
sertrue
true

burro
burro ==pp instanceof
instanceof String;
String; //// burro
burroser
serfalse
false
burro
burro ==pepito
pepito instanceof
instanceof Persona;
Persona; ////burro
burroser
sertrue
trueporque
porque pepito
pepito
////es
una
subclase
de
Persona
es una subclase de Persona

PROGRAMA EJEMPLO
OPERADORES ARITMTICOS
package operadores;

package basicos;

public class OpAritmeticos {


double x,y;

import operadores.OpAritmeticos;
class UsaOperadoresAritmeticos {
public static void main ( String[] args ) {
OpAritmeticos usa = new
OpAritmeticos(10,10);

public OpAritmeticos (double x, double y) {


this.x = x;
this.y = y;
}
public String opera1() {
String s = " x + y =" + (x + y) + "\n";
s += " x * y =" + (x * y) + "\n";
s += " +x =" + (+x) + "\n";
return s;
} // fin de opera1()

s += " x - y =" + (x - y) + "\n";


s += " x / y =" + (x / y) + "\n";
s += " -x =" + (-x) + "\n";

public void opera2() {


double x1, x2;
x1 = x;
x2 = x;
System.out.println("Valores iniciales de x1 y x2 son:\n" +
"x1 = "+ x1 + " x2 = " + x2);
System.out.println("Operadores aritmeticos de preincremento y posincremento \n\n");
for ( int i=1; i <= 10; i++ )
System.out.println(" i = " + i + " ++x1 = " + (++x1) + " x2++ = " + (x2++) );
}// fin de opera2()
public void opera3() {
double y1, y2;
y1 = y;
y2 = y;
System.out.println("Valores iniciales de y1 y y2 son:\n" + "y1 = "+ y1 + " y2 = " + y2);
System.out.println("Operadores aritmeticos de predecremento y posdecremento \n\n");
for ( int i=1; i <= 10; i++ )
System.out.println(" i = " + i + " --y1 = " + (--y1) + " y2-- = " + (y2--) );
} // fin de opera3()
} // fin de la clase OpAritmeticos

System.out.println(" Ejemplo de
operadores \n" +
" Operadores arimeticos
\n" +
usa.opera1() );
usa.opera2();
usa.opera3();
System.out.println("\n\n Fin del
programa ");
} // fin del main()
}// fin de la clase UsaOperadoresAritmeticos

CONVERSIONES EN
OPERACIONES ARITMTICAS

Al operar con byte y short, estos se convierten


implcitamente a int.
Cuando los tipos de los operandos no coinciden,
el operando de menor rango se convierte
implcitamente al tipo de mayor rango. El
resultado de la operacin es del tipo de mayor
rango.

Ejemplos:
int a=1, b=2;
int c= a + b;
short s= 1;
int d= s + c; // s se convierte a int
float f= 1.0 + a; // a se convierte a float

CONVERSIONES (CAST)

Java realiza conversiones implcitas de menor a mayor


rango.
Eventualmente hay prdida de significacia al convertir
enteros a punto flotante.
Todas las conversiones de mayor a menor rango deben ser
explcitas por medio del operador de cast: (tipo)expresin
Ejemplos:
int i= 1; short s= 2; int j= i+s;
s= a; // error short < int
s= (short)a; // Ok
i= 1.0; // error int < double
i= (int)1.0; // Ok
f= 1.0; // error float < double
f= (float)1.0; // Ok f= 1.0f; // Ok
boolean v=(boolean)a; // error no existe conversin

CLASES WRAPPER

PROGRAMA EJEMPLO USANDO


WRAPERS
public class TestEnteros {
public static void main(String[] args) {
int n = 59;
System.out.println("Decimal:\t" + Integer.toString(n));
System.out.println("Binary: \t" + Integer.toBinaryString(n));
System.out.println("Octal: \t" + Integer.toOctalString(n));
System.out.println("Hexadecimal:\t" + Integer.toHexString(n));
System.out.println("Ternary:\t" + Integer.toString(n,3));
System.out.println("Dodecimal:\t" + Integer.toString(n,12));
System.out.println("Bigesimal:\t" + Integer.toString(n,20));
n = Integer.parseInt("d7b",16);
System.out.println("d7b (base 16) = " + n);
}
}

EJERCICIOS WRAPPERS

Realiza un ejercicio con cadenas como:


TRUE,101,136.99,67 y puedas
realizar operaciones con ellos.
El valor true, puedas usarlo dentro de una
condicin
El valor doble, calcularle el iva
Y el valor entero, asgnalo a una variable
de tipo byte e incrementalo en 1.

DECISIONES if - else
if (booleanExpression) {
statements1;}
[else {
statements2;}]

int numero = 61;


int numero = 61;
if(Math.abs(numero) < 10)
if(Math.abs(numero) < 10)
System.out.println("Numero tiene 1 digito ");
System.out.println("Numero tiene 1 digito ");
else if (Math.abs(numero) < 100)
else if (Math.abs(numero) < 100)
System.out.println("Numero tiene 2 digito ");
System.out.println("Numero tiene 2 digito ");
else
else
System.out.println("Numero tiene 3 o mas digitos ");
System.out.println("Numero tiene 3 o mas digitos ");

if (booleanExpression1) {

boolean v;
int a, b;statements1;
...
else
if }[
(v) b=
2; if (booleanExpression2)
else b= 3;
statements2;
if (a) b=
2; // error, a no es boolean
if (a=1) b=4; // error, a=1 no es boolean

} ][else if (booleanExpression3) {
statements3;
}][else {
statements4;
}]

EJERCICIO if:

Disea una aplicacin que dadas 3


calificaciones calcule el promedio. seale si
el estudiante se encuentra aprobado o no
segn el promedio sea mayor o igual a 70.

DECISIONES switch
switch( expr1 ) {

case expr2: sentencias;


break;
case expr3: sentencias;
break;
default:
sentencias;

char
charcc==(char)(Math.random()*26+'a');
(char)(Math.random()*26+'a');
////Generacin
Generacinaleatoria
aleatoriade
deletras
letrasminsculas
minsculas
System.out.println("La
letra
"
+
c
);
System.out.println("La letra " + c );
switch
switch(c)
(c){{
case
'a':
case 'a':////Se
Secompara
comparacon
conlalaletra
letraaa
case
case'e':
'e':////Se
Secompara
comparacon
conlalaletra
letraee
case
case'i':
'i':////Se
Secompara
comparacon
conlalaletra
letrai i
case
'o':
//
Se
compara
con
la
letra
case 'o': // Se compara con la letraoo
case
case'u':
'u':////Se
Secompara
comparacon
conlalaletra
letrauu
System.out.println("
System.out.println("Es
Esuna
unavocal
vocal");
");break;
break;
default:
default:
System.out.println("
System.out.println("Es
Esuna
unaconsonante
consonante");
");
}}

EJERCICIO switch

Realice una aplicacin que solicite el


nmero de un mes y de acuerdo a ste,
diga el nmero de das que contiene el
mes.

CICLOS for
for (initialization; booleanExpression; increment) {
statements;
}
int contador;
for( contador=1; contador <= 12; contador++ ) { switch( contador % 3 ) {
case 0: setColor( Color.red ); break;
case 1: setColor( Color.blue ); break;
case 2: setColor( Color.green ); break;
}
g.drawLine( 10,contador*10,80,contador*10 );
}
Tambin
Tambinse
sesoporta
soportaeleloperador
operadorcoma
coma(,)
(,)
for(
a=0,b=0;
a
<
7;
a++,b+=2
)
for( a=0,b=0; a < 7; a++,b+=2 )

CICLOS (Cont) while dowhile


while (booleanExpression) {
statements;
}
do {
statements;
} while (booleanExpression);

ARREGLOS
Los arrays en Java son objetos, pero con algunas caractersticas propias.

Creacin de una referencia a un array (Declaracin del arreglo). Son posibles dos formas:

double[] x; // preferible
double x[];

Creacin del array con el operador new:

x = new double[100];

Se pueden unir en una sola:

double[] x = new double[100];


int [][] mat = new int[3][4];

Inicializacin de un arreglo:
String nombres[] = {"Juan","Pepe","Pedro","Maria" };

Sera equivalente a:
String nombres[];
nombres = new String[4];
nombres[0] = new String(
nombres[1] = new String(
nombres[2] = new String(
nombres[3] = new String(

"Juan" );
"Pepe" );
"Pedro" );
"Maria" );

CARACTERSTICAS DE LOS
ARREGLOS

Los arrays se crean con el operador new seguido del tipo y nmero de
elementos.

Se puede acceder al nmero de elementos de un array con la variable


miembro implcita length (por ejemplo, vect.length).

Se accede a los elementos de un array con los corchetes [] y un ndice que


vara de 0 a length-1.

Se pueden crear arrays de objetos de cualquier tipo.

Los elementos de un array se inicializan al valor por defecto del tipo


correspondiente (cero para valores numricos, la cadena vaca para
Strings, false para boolean, null para referencias).

Como todos los objetos, los arrays se pasan como argumentos a los
mtodos por referencia.

Se pueden crear arrays annimos (por ejemplo, crear un nuevo array


como argumento actual en la llamada a un mtodo). Ejemplo:
obj.metodo(new String[]={"uno", "dos", "tres"});

EJEMPLOS DE ARREGLOS:
int A[];
int A[10];

// A es un arreglo de enteros
// error, el tamao no va aqu

int A,B[];
int[] A,B;
String S[];

// A es un entero, B un arreglo
// A y B son arreglos
// S es un arreglo de strings

S[1]=""

// error, el arreglo no ha sido creado

EJEMPLOS DE ARREGLOS
int [] vector;
vector = new int[10];

// Declaracin de un array. Se inicializa a null


// Vector de 10 enteros, inicializados a 0

double [] v = {1.0, 2.65, 3.1};


MyClass unaRef;
unaRef = new MyClass();

// Declaracin e inicializacin de un vector de 3


// elementos con los valores entre llaves
// Declaracin de una referencia a un objeto MyClass.
// Se inicializa a null
// La referencia apunta al nuevo objeto creado

MyClass [] lista=new MyClass[5];


// Se crea un vector de 5 referencias a objetos
// Las 5 referencias son inicializadas a null

lista[0] = unaRef;
// Se asigna a lista[0] el mismo valor que unaRef
lista[1] = new MyClass();

// Se asigna a lista[1] la referencia al nuevo objeto


// El resto (lista[2]lista[4] siguen con valor null

MODELOS DE MEMORIA
(Datos Primitivos)
int [] a1;

int [] a1 = new int[5];

MODELOS DE MEMORIA
(Referencias)
public class Calendario {
String mes;
int nodias;
Calendario ( String mes, int nodias ) {
this.mes = mes;
this.nodias = nodias;
}
}
Calendario c[] = new Calendario[12]

c[ 0 ] = new Calendario("Enero", 31 );
c[ 1 ] = new Calendario("Febrero" ,
28);

PROGRAMA EJEMPLO
ARREGLOS
public class ArraysUno {
public static void main(String[] args) {

int[] a1 = { 1, 2, 3, 4, 5 }; // declaracin e inicializacin


int[] a2;
a2 = a1; // asignando a a2 los valores de a1
for(int i = 0; i < a2.length; i++)
a2[i]++;
for(int i = 0; i < a1.length; i++)
prt("a1[" + i + "] = " + a1[i]);

static void prt(String s) {


}

System.out.println(s);

PROGRAMA EJEMPLO CLASE


class Usuario
{
String nombre;
int edad;
String direccion;
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}

public class Empresa {


public static void main(String[] args) {
Usuario Empleado = new Usuario();
Empleado.setNombre("Adrian");
Empleado.setEdad(30);
Empleado.setDireccion("Juarez 28 sur");
System.out.println("El nombre del empleado es " +
Empleado.getNombre() +
"\n y su vive en " + Empleado.getDireccion() +
"\n y tiene " + Empleado.getEdad() + " aos");
}
}

CONSTRUCTORES
public class Dog {
private int weight;
public Dog() {
weight = 42;
}
public int getWeight() {
return weight;
}
public void setWeight(int newWeight) {
weight = newWeight;
}
}

POLIMORFISMO
class Mamifero {
String especie, color;
public void mover() {
System.out.println("El mamfero se mueve");
}
}
class Gato extends Mamifero {
int numero_patas;
public void mover() {
System.out.println("El gato es el que se
mueve");
}
}
class Perro extends Mamifero {
int numero_patas;
public void mover() {
System.out.println("Ahora es un perro el que
se mueve");
}
}

public class Polimorfismo {


public static void muevete(Mamifero m) {
m.mover();
}
public static void main(String[] args) {
Gato bisho = new Gato();
Perro feo = new Perro();
muevete(bisho);
muevete(feo);
}
}

CONSTRUCTORES
SOBRECARGADOS
public class
private int
private int
private int

MyDate {
day = 1;
month = 1;
year = 2000;

public MyDate(int day, int month, int year) {


this.day = day;
this.month = month;
this.year = year;
}
public MyDate(MyDate date) {
this.day = date.day;
this.month = date.month;
this.year = date.year;
}
public void addDays(int more_days) {
day = day + more_days;
}
public void print() {
System.out.println("MyDate: " + day + "-" + month + "-" +
year);
}
}

public class TestMyDate2 {


public static void main(String[] args) {
MyDate my_birth = new MyDate(22, 7,
1964);
MyDate the_next_week = my_birth;
the_next_week.addDays(7);
the_next_week.print();
}
}

Das könnte Ihnen auch gefallen