lunes, 18 de febrero de 2019

Atributos y Métodos en Java

Recuerden que voy nombrando de acuerdo a lo que me generó más confusión, y me costó un poco más entenderlo, por eso tal vez los que más saben del tema se darán cuenta que he saltado varios temas.

Atributos: Vienen siendo las variables que definen a la clase, ejemplo int edad, String nombre; o estamos definiendo los datos que estarán en la clase.

Métodos: estaremos definiendo el comportamiento que tendrá la clase.

Método Constructor: debe tener el mismo nombre de la clase, este método es el que se invoca cuando se crean las instancias de la clase ejemplo, desde el método "main" cuando instanciamos la clase o creamos un objeto nombreDeLaClase instancia = new nombreDeLaClase(aqui van los parametros si es que tiene el constructor); se está inicializando el constructor de acuerdo a lo que requieras en ese momento, si tienes en el constructor dos variables y le asignan dos valores por parámetros, el valor o los datos van directo a estas variables, para luego usarlas como quieras en los otros métodos, que generes.

Método Setter: Lo que hace es asignar el valor al atributo (variable) correspondiente. este se le pasa por parámetro el tipo de dato que también tenga el atributo (variable) al que le vamos a pasar el valor.
si el atributo(variable) es tipo String, por parámetro se le pasa un String, ya que si le pasas un "int" da error.

ejemplo:

String nombre;

public void setNombre (String nombreDeLaVariable){
       nombre =   nombreDeLaVariable;
}

Ok tratare de explicar este método está compuesto por la palabra "public"(es público y se puede acceder a él desde todas las clases) "void" significa que no retorna nada o no devuelve nada, "setNombre" es el nombre del método para identificarlo cuando desde otra clase o en la misma, necesitemos usarlo para asignarle un valor a la variable "nombre", lo que está dentro de los paréntesis(String nombreDeLaVariable), son los parámetros que necesitamos pasar al atributo (variable) y debe ser del mismo tipo en este caso "String". y lo que hace el método es asignarle a el atributo (variable) el valor que se pasa por parámetros en este caso un "String o cadena de caracteres". nombre =   nombreDeLaVariable;

Método Getter: El método lo que hará es devolver el valor del atributo correspondiente.

public String getNombre (){
  return nombre;
}

Ok ya sabemos el método es público, retorna o devuelve un "String" en este caso(nombre), el nombre del método es "getNombre" esto para identificarlo cuando lo necesitemos, y si no le colocas la palabra "return" seguido del atributo o en este caso una cadena de caracteres te marca un error. son pequeños detalles pero hay que practicarlos para que queden en nuestra memoria.

Ok entonces podemos decir que con el "Método Setter", le pasamos un valor a una variable (en este caso), y con el "Método Getter", accedemos a ese valor de esa variable (en este caso). 

Pero todo esto para que? 
Porque tanto enredo? no es más fácil asignarle un valor directamente a la variable? 

Bueno recuerden que una de las características de la Programación Orientada a Objetos POO, es el encapsulamiento de la información, la cual veremos a continuación.

Alcance o tipo de Acceso:

Privado o "private": estos solo pueden ser accedidos desde los métodos de la misma clase. 
ejemplo: 

private String nombre;  // pertenece a una clase llamada "persona(nombreDeLaClase)"

Y tratamos de llamarla desde el método "main", no podremos acceder directamente a ella cuando instanciamos a la clase es decir:

public class Ejemplo {

   public static void main(String[] args){
       
nombreDeLaClase instancia = new nombreDeLaClase(aquí van los parámetros si es que tiene el constructor).

instancia.nombre = "Jimmy" // NO PODEMOS ACCEDER A nombre de esta forma.

instancia.setNombre("Jimmy");//tendremos que hacerlo de esta forma.

System.out.println(instancia.getNombre);  
//Imprime Jimmy, y de esta forma se protegen los datos, el acceso y la modificación de los //parámetros.  

   }
}

entonces aquí es cuando se vuelven muy útil los métodos Getter y Setter ya que si necesitamos acceder a esos Atributos(variables) es por medio de G&S debido a que declaramos los métodos "públicos". 

Público o "public":  si un  atributo o método, tiene un acceso de tipo público, es accedido desde cualquier clase.

ejemplo: 

public class NombreDeLaClase{
  
  public NombreDeLaClase(){//METODO CONSTRUCTOR
       **código**
    }

public String getNombre(){
    
   return nombre;
   } 

}


Protegido o "protected": este acceso es muy importante cuando se utiliza relaciones de "Herencia" entre las clases.






viernes, 15 de febrero de 2019

Clases y Objetos de Java

Voy a ir directo al grano, explicare tal y como lo entiendo y de una manera coloquial, ya que en los libros parece que no les interesa que una persona aprenda, igualmente debes leer los conceptos y buscar hasta que logres entender bien la idea.

La Programación Orientada a Objetos (POO) tiene sus características, o bien tiene su manera de ser que algunos lo llaman "Paradigma", está conformado por 4 conceptos:

1)Abstracción.
2)Encapsulamiento.
3)Polimorfismo.
4)Herencia.

Estos serían los componentes  o características para que la POO cumpla su función, en este momento solo te las nombro para que vayas entrenando a tu mente, no busques los conceptos aun, tal vez pueda asustarte un poco, después lo vemos con calma, solo imaginate que para manejar un auto debes cumplir ciertas reglas como: saber lo que es un Auto (Conocerlo), Practicar en el Auto, Conocer las Leyes de tránsito, poseer licencia, saber ciertas cosas del auto (Leer el manual del auto), etc. Osea que un paradigma de programación sería algo así como la manera o el método encontrado, estudiado, probado, por los autores o creadores del la Programación orientada a objetos igual no significa que sea la mejor, pero funciona.

Dicho esto vamos a lo que vinimos.

Objetos: (no voy a nombrar conceptos aburridos, luego ustedes lo buscan), vamos hacer un ejercicio de la Vida real y un ejercicio de programación Java.

Un Objeto de la vida real puede ser: un automóvil, que a su vez tiene unas características o "Atributos" que lo definen, y unas funciones o "Metodos" (para qué sirve un auto, que hace).

Un objeto de Java puede ser: un Sistema que clasifique los Automóviles por sus Características. (Marca, Modelo, Motor, Color,etc).

Clases: (no voy a nombrar conceptos aburridos, luego ustedes lo buscan),  vamos hacer un ejercicio de la Vida real y un ejercicio de programación Java.

Una Clase en la vida real: si tenemos un Objeto automóvil, la Clase serían las características o "atributos" del automóvil (Marca, Modelo, Motor, Color,etc) y las funciones o "Métodos" (Lo que hace el auto, Marcha, retroceso, frenar, trasladarse).

Una Clase en Java puede ser: Del Objeto "Sistema que clasifique los Automóviles" creado anteriormente podemos tener una Clase llamada, ClaseAuto, que contenga dentro de ella variables o Atributos (Marca, Modelo, Motor, Color,etc) y métodos o funciones (Lo que hace el auto, Marcha, retroceso, frenar, trasladarse). para luego ser usadas en el objeto Automóvil o en el "Sistema que clasifique los Automóviles". que contiene todo.

Veamos a algo mas Grafico:

Objeto
(Automóvil)
public class Automovil {

    public static void main(String[] args) {
    
        ClaseAuto auto= new ClaseAuto();// acá se llama a la clase que contiene las //características y  funciones del auto
     
        auto.FuncionMarcha();
        auto.FuncionFrenar();
     
            }

}



Clase
(Características y funciones)

public class ClaseAuto {
    // Atributos o variables, constantes etc
    String color;
    String modelo;
    String marca;
    String motor;
    
    
    public ClaseAuto() {//CONSTRUCTOR

        color="Negro";
        modelo="Siena";
        marca="Fiat";
        motor="1.6";

        System.out.println("Automovil Marca:"+marca+" Modelo:"+modelo+" Color:"+color+" Motor:"+motor);
    }
    
    
    public void FuncionMarcha(){
            System.out.println("El auto esta en Marcha.");
        }
    
    public void FuncionFrenar(){
            System.out.println("El auto está por parar.");
        }
    
    } 

Imprime en Consola.

Automóvil Marca:Fiat Modelo:Siena Color:Negro Motor:1.6

El auto esta en Marcha.

El auto está por parar.

Nota: Esta seria una forma de ver como funciona las clases de los Objetos, vale destacar que debería usarse aqui, las caracteristicas de la POO como el "encapsulamiento", pero luego mas adelante lo vemos mejor saludos!




jueves, 14 de febrero de 2019

Links de sitios Java.


Hola estimados, debemos comenzar con algo, en mi caso fui guardando sitios que me parecían interesantes, y más me ayudaron, cada vez que tenía un inconveniente o no lograba entender algún concepto de Java.

La lista es la siguiente (sin orden de prioridad):

Enlaces o Links:
  • API de Java (La Biblia): es una interfaz de programación de aplicaciones por sus siglas del inglés: Application Programming Interface (provista por los creadores del lenguaje de programación que da a los programadores los medios para desarrollar aplicaciones. Wikipedia).


  • Arrays en Java: Esta pagina todavia la sigo usando ya que me saca de dudas cada vez que me enredo con los Arrays, uno de los temas que más confusión me genero al momento de programar, ya llegará su momento para desarrollar esta clase. 


  • Iterator: Muy útil para entender cómo funciona el Iterator.




  • Object: Me ayudó a comprender un poco cuando estaba perdido (todavía algo), en el mundo de Clases y objetos de Java.


  • Interfaces en Java: Casi no la manejo pero es Importante ya que forma parte de lo que es la programación orientada a Objetos. (No se enreden mucho con ella solo conozcanla).









  • Certificaciones Oracle: para los que cuenten con los recursos necesarios ($) pueda certificarse con Oracle, seria Genial. Aquí más Info.
.


. 



  • Como crear una Aplicación Web simple usando una base de datos Mysql : Acá se necesita un poco de nivel, ya que hay cosas que se deben saber primero,  si no quieren sufrir como yo lo hice, dure como dos meses para hacerla, a pesar de que esta el codigo me gusta saber de donde salen las cosas y eso me rompió la cabeza literal! pero lo supere sigamos adelante. 







  • Netbeans Java Micro Edition JavaME: Las aplicaciones de configuración de dispositivo conectado (CDC) están diseñadas para ejecutarse en dispositivos móviles e integrados con al menos 2 MB de memoria.


  • Pildorasinformaticas Curso java: El curso de Java que mas me ayudo a comprender, no lo termine ya que es muy largo, pero siempre lo estoy consultando cuando tengo una duda acá esta su pagina oficial https://www.pildorasinformaticas.es

Bueno estimados acá tenemos bastante material y aun falta mas, para ir solucionando cada problema o duda que se nos presente, seguiré buscando otros que tengo en la computadora que también me sirvieron.  

Vamos apoyarnos para programar en Java


Estoy creando este espacio para alentar aquellas personas que decidieron comenzar el camino de la programación en Java, sin ningún o con muy poco conocimiento en este lenguaje.

Tengo un año aproximadamente (2018-2019) de experiencia en programación Java, no soy ni Jr. Todavía, pero tengo toda la disposición de aprender y compartir mi recorrido, mis aciertos y desaciertos, los problemas que se me presentaron y logre ir resolviendo con mucha paciencia y horas frente al computador (autodidacta).

Acá puedes preguntar cualquier tontería que se te pase por la mente con respecto a programación Java, si no tengo la respuesta al momento buscaremos la solución juntos, porque así aprendemos todos, aunque llegara el momento que tengamos que participar juntos en la resolución del problema.

Requisitos:
Tener Voluntad, No importa la edad, querer aprender y superarte cada día, hacer preguntas muy simples o muy complicadas, si así lo deseas comparte tu opinión con nosotros.

Tengo muy claro que existen programadores que son una eminencia, tienen buenas formas para programar, una estructura, un buen piso sólido de conocimientos y casi son unos Dioses, lamentablemente esta pagina no es para ellos, aquí vamos a estar los que queremos aprender de a poco, los que no vamos a criticar sino mas bien a orientar para ser mejor cada día, los novatos de la programación Orientada a Objetos en Java, aquí todos somos nuevos y queremos descubrir un mundo lleno de desafíos, pero con la convicción de que lo vamos a conseguir.

Manos a la Obra.