clase2
TRANSCRIPT
![Page 1: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/1.jpg)
Introducción a Desarrollo de Aplicaciones en Android
Clase 2Wilfredo Nieves
![Page 2: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/2.jpg)
Recapitulemos• Programación: Serie de instrucciones que le damos a la computadora
para que haga algo.• Lenguaje de programación: serie de comandos (instrucciones) con una
sintaxis unica.• Compilador: Se encarga de verificar errores de sintaxis en nuestro
codigo y convertirlo en un formato que el JVM pueda entender.• Java Virtual Machine: Convierte el codigo compilado en nuestras
aplicaciones.
![Page 3: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/3.jpg)
Recapitulemos (cont.)• Nuestros programas se componen de clases (.java), las clases
de métodos y campos y los métodos de declaraciones.• Los métodos pueden recibir o devolver valores.• Tipos de variables primitivas y tipos de operadores.• Las variables también pueden ser de tipo referencia.• Todo en java ocurre dentro de una clase.
![Page 4: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/4.jpg)
Otras acciones• Repetitivas (Loops)
public class MyClass {
public static void main(String[] args){//for loopfor (int i = 0; i<10; i++){
System.out.println(i+""); }
//while loopint i = 0;
while(i< 12){ System.out.println(i+""); i++; }}
}
![Page 5: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/5.jpg)
Otras acciones (cont.)• Relacionales
public class MyClass {
public static void main(String[] args){int x = 8;
if(x > 10){ System.out.println("x is greater than 10"); }else{ System.out.println("x is less than 10"); } }
}
![Page 6: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/6.jpg)
Operadores Relacionales• Mayor que: >• Menor que: <• Igual que: ==• No igual que: !=• Mayor o igual que : >=• Menor o igual que: <=
![Page 7: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/7.jpg)
Operadores Condicionales
• Y: &&• ó: ||
public class MyClass {
public static void main(String[] args){
int x = 13; if(x > 10 && x < 20){ System.out.println("x is between 10 and 20"); }
}
![Page 8: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/8.jpg)
Clases• Las clases se componen de métodos y variables de
instancia• Esto se traduce a comportamientos y estados
respectivamente VehiclespeedcolormakemoveForward()stop()steer()
Campos de Instancia
Comportamiento
![Page 9: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/9.jpg)
Reusar las clases (Herencia)Vehicle
speedcolormakemoveForward()stop()steer()
Car Motorcycle Bicycle
Superclase
Subclases
![Page 10: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/10.jpg)
VehiclespeedcolormakemoveForward()stop()steer()
Car Motorcycle Bicycle Dronefly()//codigo especifico //de dronesland()
![Page 11: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/11.jpg)
Crear clases• Para crear clases pensemos en cosas que ese objeto sabe y en cosas que ese objeto hace.
Songartistalbum
setArtist()setAlbum()play()
Sabe
Hace
![Page 12: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/12.jpg)
Objetos• Los objetos son referencias de las clases• Son un tipo de variable no-primitiva• El JVM sabe como utilizar esta referencia para acceder
el objetopublic class MyClass {
public static void main(String[] args){
Song song = new Song();
song.play();
}}
![Page 13: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/13.jpg)
Objetos vs Clases• Las clases no son objetos
• Las clases son un mecanismo de mezclar comportamientos y acciones en una sola unidad
• Visualícenlo como un plano de un casa
• Los objetos son instancias de las clases
• Son la existencia física de la clase
• La clase le dice al JVM como crear los objetos
• Los objetos vendrían siendo la casa
![Page 14: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/14.jpg)
Herenciapublic class Vehicle {
private int speed;private String color;private String make;
public void moveForward(){System.out.println("Vehicle moving forward");
}
public void stop(){System.out.println("Vehicle is stopping");
}
public void steer(){System.out.println("Vehicle is steering");
}
}
![Page 15: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/15.jpg)
Herencia (cont.)
public class Car extends Vehicle {
int wheelSize = 16;
public void openTrunk(){//Opening trunk code}
}
![Page 16: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/16.jpg)
Herencia(cont.)
public class MyClass {
public static void main(String[] args){
Car car = new Car();car.moveForward();}
}
![Page 17: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/17.jpg)
Juguemos un poco con las clases y los métodos• Creeemos una clase con sus métodos y sus campos de
instancia.• Aceptemos valores en esos metodos.• Devolvamos valores al llamar los metodos (return).• Extendamos esa clase (herencia).• Usemos sus métodos en otra clase.
![Page 18: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/18.jpg)
Constructores• Forma de inicializar valores de importancia para el
funcionamiento de las instancias de esa clase• Obligan a las implementaciones de esa clase a cumplir
con ciertos parámetros.• Permiten llevar a a cabo algún tipo de acción tan
pronto se declara una variable del tipo de clase.
![Page 19: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/19.jpg)
Encapsulación• Utilizado para darle acceso a otras clases para que
puedan obtener información de una clase.• Getters y Setters.• Volvamos a nuestro ejemplo de las clases e
implementémoslo.
![Page 20: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/20.jpg)
Arreglos• Grupo de objetos del mismo tipo.• Todos y cada unos de los objetos dentro de los
arreglos contiene una instancie del objeto.• Veamos varios ejemplos.• Necesita saber su tamaño al momento en que se crea.
![Page 21: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/21.jpg)
Creemos un App de Android• Simple Calculator• Primero diseñemosla.• Implementemos el diseño
![Page 22: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/22.jpg)
Colecciones• ArrayList• No necesitamos saber su tamaño al momento de crearse• Podemos entrar y eleminar objetos rapida y eficientemente.
• HashMap• Podemos guardar y key-value pair y utilizarlo igual que el
array list.
![Page 23: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/23.jpg)
Otros tipos de clases(abstractas)• Obligan a sus subclases a implementar ciertos
métodos.• Pueden contener métodos abstractos y no abstractos.• Pueden proveer sus propias implementaciones de
métodos.• Utilizados cuando tienes objetos que tienen varias
acciones que no todas sus subclases quieren implementar.
![Page 24: Clase2](https://reader036.vdocuments.co/reader036/viewer/2022062522/589ddb8c1a28ab77148b51e7/html5/thumbnails/24.jpg)
Interfaces• No se extienden sino que se implementan.• Al igual que las clases abstractas obliga a sus
usuarios(clases que la implementan) a tener los métodos de la interface.• Util para varios patrones de diseño.