Bienvenidos sean a este post, en muy poco vamos a empezar con nuestro primer proyecto pero para ello debemos hablar primero sobre varios conceptos basicos, entre ellos la programacion orientada a objetos.
Esta forma de programacion nos facilita la posibilidad de crear productos excepcionales y para entender mejor este concepto vamos a tomar como ejemplo un auto.
Cuando pisamos el acelerador ocurren muchas cosas pero para nosotros son desconocidas y no necesitamos saber como funcionan porque un ingeniero nos hizo una clase para poder avanzar, en este caso la clase es el pedal del acelerador la cual hara marchar el auto, tambien habra otra clase encargada de frenar y para este caso la clase sera el pedal del freno y asi podemos dividir al auto en distintas clases dependiendo de su accion, por lo tanto nosotros tendremos clases ya predefinidas que nos facilitaran el trabajo y otras que crearemos nosotros para poder ajustarlas mejor a nuestras necesidades, en general la sintaxis para poder interactuar con un objeto derivado de una clase es la siguiente:
objeto.metodo(argumentos)
Siempre primero va a ir el objeto, ya hablaremos mas adelante, seguido de un punto (es el elemento que delimita los objetos), lo siguiente puede ser el metodo o una propiedad del objeto, en este caso al ser un metodo podemos pasarle argumentos o valores para dicho metodo, inclusive otros objetos, como por ejemplo:
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Cual es la ventaja de trabajar de esta forma? Esta nos permite tener un solo elemento el cual nos permitira acceder las veces que sean necesarias por nosotros tanto a los metodos como las propiedades de la clase, esta conducta es heredada de C, con esto aclarado pasemos a hablar sobre clases y objetos.
Clases y Objetos
Sigamos con el ejemplo del auto: la fabrica hace mas de un auto por dia pero este vuelve a rediseñar cada auto? Claro que no, tienen ingenieros que desarrollan las partes correctas, y estas mismas partes son reusadas repetidamente porque no tiene sentido diseñar un auto desde cero cada vez que se fabrica uno nuevo, es decir que una clase es como un plano el cual nos permite crear las partes a partir de los definidos en el mismo y son los llamados objetos, la sintaxis basica de una clase es:
<modificadorAcceso> class nombre { ... instrucciones ... }
El modificador de acceso sera el encargado de conceder si se podra acceder a la clase o no de manera externa, en su forma mas basica se dividen en tres:
- public
- private
- protected
Por lo general son de tipo public, para poder ser accedidos por todos, los otros los restringen a distintos niveles, la siguiente palabra sera la encargada de decir que es una clase, por ultimo tendremos el nombre con el cual identificaremos a la clase, despues tendremos un bloque donde iran todas las instrucciones de esta clase.
Nota: Sobre los modificadores hablaremos mas adelante.
Los objetos siempre son creadas desde las clases, a esto se lo llama instanciar, una vez creado nuestro objeto podemos usarlo, configurarlo e inclusive usarlo con otros objetos, las clases son abstractas y como tal no podremos acceder a las funciones y variables dentro de la misma, para poder hacerlo creamos un objeto, el cual es una instancia de la clase, como tal podremos acceder a todo el contenido de la clase.
Una de las ventajas de trabajar de esta forma es el hecho de escribir el codigo una sola vez y poder reutilizarlo la cantidad de veces que sea necesaria, si bien dijimos que las clases contienen metodos y propiedades las clases a su veces pueden ser contenidas por paquetes, a continuacion veremos como importarlas.
Paquetes
Un paquete es una coleccion agrupada de clases, siempre se deben declarar al principio del codigo y cuando nosotros generemos un codigo desde cero tendremos estas lineas:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
Este nos permitira acceder a las clases contenidas en cada uno de los paquetes, la primera nos dara accesos a los metodos basicos y la segunda nos permitira cargar nuestros layouts en formato XML, nosotros por ejemplo tambien podemos cargar nuestros paquetes, veamos la sintaxis:
import nombrePaquete;
La palabra import es la encargada de cargar el paquete y el nombre del paquete puede ser como lo vimos anteriormente o por ejemplo:
import org.example.clases;
Esto cargara todas las clases contenidas dentro del paquete informado, con ellas podremos tener acceso y usarlas sin mayores problemas, tomemos el ejemplo creado en el post anterior donde si vemos el codigo de MainActivity sera el siguiente:
MainActivity
package org.example.aplicacion01;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
La primera linea se encargada de definir el nombre del paquete donde contendra toda nuestra aplicacion, las siguientes dos lineas nos cargaran los paquetes basicos, despues tendremos la declaracion de nuestra clase base para trabajar, en Java la clase base debe llamarse igual al nombre del archivo, de lo contrario no funcionara, la palabra extends se encarga de extender a la clase AppCompatActivity, concediendo acceso a todo el contenido de la misma, esto es llamado herencia pero sobre esto hablaremos mas adelante.
Nuestro unico metodo sera onCreate el cual por medio de @Override se encarga de redefinir al metodo a la clase anteriormente citada, y esta funcion se encargara de cargar y mostrar en pantalla el formato del archivo activity_main.xml, la primera linea de import es la que permite usar a AppCompatActivity y la segunda linea nos permitira utilizar la clase Bundle para el metodo onCreate dentro de la clase Base, si quieren saber sobre override y super les recomiendo este post.
En resumen, hoy hemos hablado sobre la programacion orientada a objetos, que son las clases, que son los objetos, como trabajan, como podemos instanciarlos, tambien hemos hablado sobre los paquetes, que son, para que se usan y cuales son algunos de los beneficios que nos proveen, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar
Es para mantenimiento del sitio, gracias!
$1.00