37
JAVA BASICO Modo Consola Autor: Ing. Christian Antón, Ms.c.

JAVA BASICO Modo Consola Introduccion

Embed Size (px)

DESCRIPTION

manual de informacion para aprender java basico

Citation preview

Page 1: JAVA BASICO Modo Consola Introduccion

JAVA BASICO

Modo Consola

Autor: Ing. Christian Antón, Ms.c.

Page 2: JAVA BASICO Modo Consola Introduccion

Conociendo Java y su EntornoSu evolución y la «Cultura JAVA»

*.java

AporteSunMicroSystem

Page 3: JAVA BASICO Modo Consola Introduccion

Conociendo Java y su EntornoSu evolución y la «Cultura JAVA»

SunMicroSystem

Nuevosprogramadores

Tomabusca!!

Page 4: JAVA BASICO Modo Consola Introduccion

Conociendo Java y su EntornoSu evolución y la «Cultura JAVA»

Paquetes / packageNet, io, awt, etc.

Bonitos y contentos

Y siguieronAumentando las carpetas

Page 5: JAVA BASICO Modo Consola Introduccion

Clasificación basada

en perfil de uso

Page 6: JAVA BASICO Modo Consola Introduccion

Interface Development Enhanced (IDE)

Tv

Card

Tecnologías JAVA

Page 7: JAVA BASICO Modo Consola Introduccion

Recordando los tipos de datos: Primitivos y Complejos

Page 8: JAVA BASICO Modo Consola Introduccion

TIPOS DE DATOSEnteros

Page 9: JAVA BASICO Modo Consola Introduccion

TIPOS DE DATOSReales

Page 10: JAVA BASICO Modo Consola Introduccion

TIPOS DE DATOSCarácter y Boolean

CHAR EN FORMATO UNICODE Y COMILLA SIMPLES

BOOLEAN = TRUE, FALSE O 1 Y 0

Definición de Variablesint i;

int i = 0;

int i;i = 0;

int i, j, k;

Conversión de tipos

double <- float <- long <- int <- short <- byte

Page 11: JAVA BASICO Modo Consola Introduccion

CASTConvertir un dato «superior» a uno «inferior»

public class Ejemplo1 {public static void main(String[] args) {

int i = 9,k;float j = 47.9F;System.out.println(“i: “+i + “ j: “ +j);k = (int)j; //empleo de un castSystem.out.println(“j: “ + j + “ k: “ +k);j = k; //no necesita castSystem.out.println(“j: “ + j + “ k: “ +k);float m = 2.3F;

//float m = 2.3; daría error al compilar.System.out.println(“m: “+m);

}}

Page 12: JAVA BASICO Modo Consola Introduccion

OPERADORES BASICOS+ - * / % ++ --

public class Ejemplo2{public static void main(String[] args) {

int i = 1;prt("i : " + i);prt("++i : " + ++i); // Pre-incremento, primero

//incrementa y luego imprime por consolaprt("i++ : " + i++); // Post-incremento, primero imprime

//“2” por consola y luego incrementa i.prt("i : " + i); //i por lo tanto vale 3prt("--i : " + --i); // Pre-decremento, primero

//decrementa i y luego lo imprime por consolaprt("i-- : " + i--); // Post-decremento, primero imprime

//i por consola y luego de decrementa.prt("i : " + i); //Ahora i vale 1

}

static void prt(String s) {System.out.println(s);

}}

Page 13: JAVA BASICO Modo Consola Introduccion

public class Ejemplo3 {public static void main(String[] args) {

int i = 45,j=2;prt("Cos i : " + Math.cos(i));prt("Sen i : " + Math.sin(i));prt("j^i : " + Math.pow(j,i));

}static void prt(String s) {

System.out.println(s);}}

Funciones Geo-Trigo Operadores Lógicos

String e ; String e =””; CONSTRUCTORString e = “Hola”;

Cadenas Clase String

Page 14: JAVA BASICO Modo Consola Introduccion

CONCATENACIONString saludo = “hola”;String nombre = “Pepe”;String saluda_pepe = “”;saluda_pepe = saludo + nombre;

SUBCADENASString saludo = “hola”;String subsaludo = “”;Subsaludo = saludo.substring(0,2);

COMPARACIONString saludo = "Hola";String saludo2 ="hola";saludo.equals(saludo2);

public class Ejemplo5 {public static void main(String[] args) {

String saludo = "Hola";String saludo2 ="hola";int n = 5;prt(saludo.substring(0,2));prt(saludo +" " + n);prt("saludo == saludo2 "+ saludo.equals(saludo2));

}static void prt(String s) {

System.out.println(s);}

}

Page 15: JAVA BASICO Modo Consola Introduccion

AMBITO DE LAS VARIABLES{ int x=0;

X=1; }--------------------------------------------Int x=0;{ X=1;}x=2;--------------------------------------------Int x=0;X=1;{ float x=0.0;

x=1.0;}

ESTRUCTURAS DE CONTROL

Selectivas --------------------------------------- if(-condición-){} else{}-------------------------------if(-condición-){} else if(-condición-){} else if(-condición-){} else {}-------------------------------Switch(-variable-){

case –valor- :break;

case –valor- :break;

case –valor- :break;

default:break;

}

Repetitivas --------------------while(-condición-){}-----------------------------do{} while(-condición-);------------------------------for(int i=0; condición; i++){}

breakNos saca de un buclecontinueNos envía al inicio del buclereturnLínea final de una función

ARRAYint[] edades = new int[10];

Page 16: JAVA BASICO Modo Consola Introduccion

PROGRAMACION ORIENTADA A OBJETOSVentajas y Diferencias con la programación tradicional

PE

1 aplicación = 1 sólo archivo extenso Muy complicado dividir el trabajo Actualizar = Alterar el trabajo de los

otros Actualizar = Altos costos de

implementar Baja reutilización de código Programas muy rígidos Baja optimización de código

POO

1 aplicación = varios archivos funcionales

Fácil división del trabajo Actualizar = No altera el trabajo de los

otros Actualizar = Bajo costo de implementar Muy alta reutilización de código Programas muy dinámicos Muy alta optimización de código

Page 17: JAVA BASICO Modo Consola Introduccion

DEFINICIONES DE CLASE Y OBJETO

Clase.- Es un tipo de dato complejo definido o creado por el programador

Objeto.- Es una variable del tipo de dato complejo que ha creado el programador.

Desde un Punto de vista básico

Analogía: Primitivos y Complejos

Tipo de datos primitivo

Int x

int = tipo de datoX = variable

X = variable «tonta» sólo almacena 1 valor

Tipo de datos complejo

String x

String = tipo de dato (CLASE EN POO)X = variable (OBJETO EN POO)

X = variable (OBJETO) «inteligente» capazde almacenar internamente variable(ATRIBUTOS) y métodos (PROPIEDADES)

Acceso a sus propiedadesx.Atributox.metodo()

Page 18: JAVA BASICO Modo Consola Introduccion

DEFINICIONES DE CLASE Y OBJETO

Clase.- Es una «plantilla» o «molde» que se emplea para crear objetos de una misma estructura o tipo pero con características individuales

Objeto.- Es un ente o un ejemplar «inteligente» basado en una clase pero con sus propias características individuales.

Desde un Punto de vista práctico

Ejemplo de CLASE Y OBJETOSCLASE ser_humano Atributos

String sexo=«»; String nombre=«»;

En otra clase utilizo: ser_humano persona;

ser_humano = tipo de dato (CLASE EN POO)persona = variable (OBJETO EN POO)

persona = variable (OBJETO) «inteligente» capaz de almacenar internamente variables con datos sobre el nombre y sexo del individuo

Page 19: JAVA BASICO Modo Consola Introduccion

ESTRUCTURA DE UNA CLASE EN JAVA

package <ruta y nombre>;

import <ruta y nombre>;

<modificador> class <nombre de clase> <extends -nombre del padre->

<implements -nombre de la interface-> {

<variables globales a la clase>

public <nombre del constructor>(<parámetros>) <throws -nombre de la clase Execption->{

}

<métodos de la clase>

public static void main(String[] x){

}

}

Siempre 1era línea

Los que sean necesarios

Igual para Interfaces

Por concepto siempre público, es opcional por

ej. librerías

Único método que compilador lee

directamente, hace a la clase principal.

Page 20: JAVA BASICO Modo Consola Introduccion

ESTRUCTURA DE UNA CLASE EN JAVA

Nombre del archiv

o

Nombre de

la clase

Nombre del constructor

SON IGUALES

En un paquete la clase que tiene el

método main es la clase principal

En un paquete sólo existe una clase principal

No todas las clases llevan

constructores

package siempre debe ser la

primera línea

Las clases que llevan main son

ejecutables

El método main es por donde arranca la ejecución de un

programa

Page 21: JAVA BASICO Modo Consola Introduccion

MODIFICADORESMODIFICA

DOR CLASES VARIABLES METODOS

public Promiscua, Accede todo el mundo Igual Igual

ningunoAmistoso o Friendly, Accede sólo las clases del paquete local.

Igual Igual

protected No aplicaAccede sólo las clases del paquete local más las clases derivadas de la clase propietaria de la variable, estén o no en e paquete local

Igual

private No aplicaNadie salvo los métodos internos de la clase propietaria pueden acceder a la variable

Igual

static No aplicaEl dato que almacena la variable es común entre todas las instancias de la clase

Puede ser invocado directamente sin necesidad de crear instancias de la clase propietaria

abstract Esta clase no puede instanciar, «no se puede crear objetos» No aplica No aplica

final Esta clase no puede derivar, «no puede tener hijas»

Nadie le puede cambiar el valor (constante)

Nadie lo puede sobreescribir

Page 22: JAVA BASICO Modo Consola Introduccion

Sobreescritura

Sobrecarga

Constructor

Herencia

Si hacemos herencia y deseamos recodificar un método heredado, en la clase hija lo codificamos con la misma estructura (tipo de retorno, nombre de la función, cantidad y tipos de parámetros). El método de la clase hija habrá sobrescrito al método de la clase padre.

Se puede codificar varios métodos con el mismo nombre de función, diferenciándose ya sea en el tipo de retorno, cantidad de parámetros o tipo de parámetros. Se dice entonces que el método está sobrecargado.

* Se utiliza la palabra reservada extends.* La clase hija obtiene «hereda»todas los atributos y propiedadesde la clase padre.* Estos métodos y variables no son copiadosa la nueva clase, sólo son referenciados (reusabilidad)* Sólo se puede heredar de una clase a la vez.* Si una clase hija aporta 2 métodos y hereda 10, todos losobjetos de dicha clase tendrán 12 métodos.

* Por definición debe ser público.* Inicializa variables y realiza tareas necesarias

antes de la creación de objetos.* Se lo puede sobrecargar.

* Es opcional dependiendo deluso de la clase.

* No debe retornar nadani void.

Page 23: JAVA BASICO Modo Consola Introduccion

class fecha{int dia, mes anio;

public fecha(){dia=1;mes=1;anio=2015;

}

public fecha(int newDia, int newMes, int newAnio){dia=newDia;mes=newMes;anio=newAnio;

}

}

class usandoFecha{public static void main(String[] x){

fecha inicio2015 = new fecha();fecha hoy = new fecha(15, 12, 2015);System.out.println(inicio2015.dia);System.out.println(hoy.dia);

}}

CREACION Y REFERENCIA DE OBJETOS

Sobrecarga del constructor

Acceso a los atributos del

objeto

Page 24: JAVA BASICO Modo Consola Introduccion

class fecha{int dia, mes anio;

public fecha(){dia=1; mes=1; anio=2015;

}public fecha(int newDia, int newMes, int newAnio){

dia=newDia; mes=newMes; anio=newAnio;}void setDia(int newDia){

dia=newDia;}int getDia(){

return dia;}

} class usandoFecha{public static void main(String[] x){

fecha inicio2015 = new fecha();fecha hoy = new fecha(15, 12, 2015);hoy.setDia(25);System.out.println(inicio2015.getDia());System.out.println(hoy.getDia());

}}

METODOS GET Y SET

Permiten el encapsulamiento (concepto de POO)

Formato setAtributo, getAtributo (la primera letra en mayúscula, según standard de Java)

set.- Para colocarle nuevos valores a los atributos.

get.- Para obtener lo valores de los atributos.

Page 25: JAVA BASICO Modo Consola Introduccion

class fecha{int dia, mes anio;

public fecha(){dia=1; mes=1; anio=2015;

}public fecha(int dia, int mes, int anio){

this.dia=dia; this.mes=mes; this.anio=anio;

}void setDia(int dia){

this.dia=dia;}int getDia(){

return dia;}

}

class usandoFecha{public static void main(String[] x){

fecha inicio2015 = new fecha();fecha hoy = new fecha(15, 12, 2015);hoy.setDia(25);System.out.println(inicio2015.getDia());System.out.println(hoy.getDia());

}}

COMANDO THIS

Hace referencia a las propiedades y atributos propios de la clase donde es empleado el comando.

Ayuda a diferenciar las variables propias de los métodos con las variables de la clase, si tuvieran el mismo nombre.

Page 26: JAVA BASICO Modo Consola Introduccion

class humano{

String nombre; int edad; public humano(String nombre, int edad){

this.nombre=nombre; this.edad=edad; } void setEdad(int edad){

this.edad=edad; } int getEdad(){

return edad; }} class hombre extends humano{

boolean tieneBarba;

public hombre(String nombre, int edad, boolean tieneBarba){super(nombre, edad);this. tieneBarba= tieneBarba;

} void setTieneBarba(boolean tieneBarba){

this. tieneBarba= tieneBarba; } boolean getTieneBarba(){

return tieneBarba; }}

OBJETO SUPER

Sirve para hacer referencia a los atributos y propiedades de la clase padre.

Si se invoca al constructor, sólo se coloca super, si se invoca a cualquier otro método se coloca super.metodo()

Si se ha sobrescrito un método y se desea invocar al método original de la clase padre, es muy útil.

Si se va a invocar al constructor de la clase padre, super debe ser la PRIMERA LINEA en el constructor de la clase hija.

class mujer extends humano{int nCesarea; public mujer(String nombre, int edad,

int nCesarea){super(nombre, edad);this.nCesarea = nCesarea;

} void setNCesarea (int nCesarea){

this.nCesarea= nCesarea; } int getNCesarea (){

return nCesarea; }}

Page 27: JAVA BASICO Modo Consola Introduccion

class humano{

String nombre; int edad; public humano(String nombre, int edad){

this.nombre=nombre; this.edad=edad; } void setEdad(int edad){

this.edad=edad; } int getEdad(){

return edad; } String getNombre(){

return nombre; }}

OBJETO SUPER

CONSIDERAR EL SIGUIENTE CODIGO:

mujer a = new mujer(«Ana»,18,0);mujer b = new mujer(«Luisa»,20,1);System.out.println(a.getNombre());System.out.println(b.getNombre());System.out.println(a.getEdad());System.out.println(b.getEdad());

class mujer extends humano{int nCesarea; public mujer(String nombre, int edad,

int nCesarea){super(nombre, edad);this.nCesarea = nCesarea;

} void setNCesarea (int nCesarea){

this.nCesarea= nCesarea; } int getNCesarea (){

return nCesarea; } int getEdad(){

if (getNCesarea ()>0){super. getEdad();

else{ return 0;} }}

El método getEdad y el Constructor de la clase padre no son accesible en a y b.

¿Explique por qué?¿Cuántos métodos y variables tienen a y b?

Page 28: JAVA BASICO Modo Consola Introduccion

• La clase que implementa una interface debe codificar todos los métodos que «hereda» de una interface, los que utilice y los que no.

• En la interface sólo va la cabecera de los métodos y las variables DEBEN LLEVAR un valor inicial y deben ser public

INTERFACE

Interface formulas{public float pi = 3.1416F;double area();double perimetro();

}

class circulo implements formulas{ double radio; public circulo(double radio){

this.radio=radio; } void setRadio(double radio){ this.radio=radio; } double getRadio(){ return radio; } double area(){ return (pi*radio*radio); } double perimetro(){ return (2*pi*radio); }}

public class geometria{ public static void main(String [] x){

circulo a = new circulo(25.3);System.out.println(a.area);System.out.println(a.perimetro);

}}

CLASE VS INTERFACE---------------------------------------------------------------------------------------------Modela y da funcionalidad / Sólo modelaextends / implementsherencia única / implementación múltipleclass / interface

Page 29: JAVA BASICO Modo Consola Introduccion

EJERCICIO CON PAQUETES Y MODIFICADORES

1) PROBLEMA.- Se desea llevar el control de equipos de futbol de Ecuador y se desea llevar el control de las divisiones regionales de básquet de USA

2) ANALISIS.-¿Qué tienen en común?

- Son un deporte- Son juego de grupoREQUISITOS: Clase debe ser abstracta

Paquete "nucleo"

¿Qué atributos propios de cada clase se puede aportar?- Si quiero controlar equipos de fútbol necesito sus nombres- Si quiero controlar la división regional necesito la regiónREQUISITOS: Clases distintas

Paquete "discipliinas"REQUISITOS ADICIONALES: - Se debe considerar símbolos como gritos de la hinchada al anotar el equipo- Se debe consoderar el nombre del escenario donde se desarrolla el deporte- Estos requisitos adicionales deben ir en paquete "complementos"- Debe haber una clase ejecutable ubicada en el paquete "disciplinas"

3) RESUMEN

PAQUETE: NUCLEO PAQUETE: DISCIPLINAS PAQUETE: COMPLEMENTOSPADRE: DEPORTE (ABSTRACTA) HIJAS: FUTBOL INTERFACE: SIMBOLOS

BASQUETBOL ESCENARIOEJECUTAR: PRINCIPAL

Page 30: JAVA BASICO Modo Consola Introduccion

EJERCICIO CON PAQUETES Y MODIFICADORES

4) ESQUEMA GRAFICO: DIAGRAMA UML

5) CREAR LAS CARPETASFISICAMENTE

Page 31: JAVA BASICO Modo Consola Introduccion

package nucleo;

public abstract class deporte{

protected int cantJugadores;protected String nomDeporte;

protected String getNomDeporte(){ return nomDeporte;

}protected int getCantJugadores(){

return cantJugadores; }

protected void setNomDeporte(String nomDeporte){ this.nomDeporte=nomDeporte;

}protected void setCantJugadores(int cantJugadores){

this.cantJugadores=cantJugadores; }

}

Clase padre

Page 32: JAVA BASICO Modo Consola Introduccion

Interfacespackage complementos;

public interface simbolos{public String getGritoAnotacion();

}

package complementos;

public interface escenario{public String getNombre();

}

Page 33: JAVA BASICO Modo Consola Introduccion

Clases hijaspackage disciplinas;

import nucleo.deporte;import complementos.*;

public class futbol extends deporte implements simbolos, escenario{String nomEquipo;public futbol(String nomDeporte, int cantJugadores, String nomEquipo){

super.setNomDeporte(nomDeporte);super.setCantJugadores(cantJugadores);this.nomEquipo=nomEquipo;

}

void setNomEquipo(String nomEquipo){ this.nomEquipo=nomEquipo; }String getNomEquipo(){ return nomEquipo; }

public String getGritoAnotacion(){ return "GOOOLLLL!!!!"; }

public String getNombre(){ return "Estadio de Futbol"; }

String getDeporte() { return super.getNomDeporte(); }int getCantidad() { return super.getCantJugadores(); }

}

Page 34: JAVA BASICO Modo Consola Introduccion

Clases hijaspackage disciplinas;

import nucleo.deporte;import complementos.*;

public class basquetbol extends deporte implements simbolos, escenario{String division;public basquetbol(String nomDeporte, int cantJugadores, String division){

super.setNomDeporte(nomDeporte);super.setCantJugadores(cantJugadores);this.division=division;

}

void setDivision(String division){ this.division=division; }String getDivision(){ return division; }

public String getGritoAnotacion(){ return "HARROOO!!!!"; }

public String getNombre(){ return "Coliseo de Básquet"; }

String getDeporte() { return super.getNomDeporte(); }int getCantidad() { return super.getCantJugadores(); }

}

Page 35: JAVA BASICO Modo Consola Introduccion

Clase ejecutable

package disciplinas;

// import disciplinas.*;// probar fuera del paquete disciplina para que vea //como se restringe el acceso a los métodos

class principal{public static void main(String[] x){

futbol B = new futbol("Futbol",11,"Barcelona");futbol E = new futbol("Futbol",11,"Emelec");

basquetbol A = new basquetbol("Básquet",6,"Atlántico");basquetbol P = new basquetbol("Básquet",6,"Pacífico");

System.out.println("En el deporte "+B.getDeporte());System.out.println("en el que juegan "+B.getCantidad()+" gladiadores");System.out.println("en el equipo de "+B.getNomEquipo());System.out.println("toda su hinchada grita "+B.getGritoAnotacion());System.out.println("en el majestuoso "+B.getNombre()+" Monumental");

System.out.println("En el deporte "+A.getDeporte());System.out.println("en el que juegan "+A.getCantidad()+" jugadores de Los Angeles Lakers");System.out.println("en la división "+A.getDivision());System.out.println("toda su fanaticada grita "+A.getGritoAnotacion());System.out.println("en el majestuoso "+A.getNombre());

}}

Page 36: JAVA BASICO Modo Consola Introduccion

COMPILACION Y EJECUCION

Page 37: JAVA BASICO Modo Consola Introduccion

DEBER• Se desea llevar un control del personal de las fuerzas armadas del país, realice un

esquema jerárquico de paquetes que modele a un soldado, considere que existen 3 tipos de soldados: de aire, de tierra y de mar y que cada uno tiene características particulares y también comunes entre ellos.

• Las clases padres, hijas e interfaces deben ir en carpetas diferentes, • Las clases padres no deben crear objetos y sus métodos no deben ser accedidos

por clases ajenas al paquete salvo si son hijas, y • La clase principal debe estar fuera de todo paquete.• Tiene que como mínimo haber: 1 clase padre, 3 hijas, 2 interfaces y 1 clase

ejecutable• Todas las clases debe tener mínimo 2 atributos cada una con sus respectivos

métodos get, set y constructores.• La clases hijas debe tener sobrecargado sus constructores.• Las interfaces deben tener mínimo dos métodos cada una.• La clase principal debe crear mínimo 2 objetos de cada clase hija e invocar todos

sus métodos• En el deber debe enviar los archivos *.class, *.java y adicionalmente un archivo de

word con la captura de las pantallas de la compilación y ejecución de la aplicación. La imagen debe ser entera incluido el escritorio y barra de tareas. Todo va empaquetado en formato RAR con sus 2 apellidos como nombre del archivo.