Hola, estos son los apuntes de la clase de java del SENA

Fundamentación

java: lenguaje de programación multiplataforma, orientado a objetos, plataforma de conputación. Lanzado en 1995.
Java compiler: transforma el codigo a java byte code.
JVM (java virtual machine): interpreta el java byte code y lo especifica para otros sistemas operativos.
JRE (java runtime environment): instala el JVM, proporciona archivos de configuración y librerias. Se escribe independiente para cada sistema operativo.
JDK (java development kit): instala el java compiler y el JRE. SE INSTALA PRIMERO.
IDE (integrated development environment)

Orientación a objetos

clases: plano de construcción.
objetos o instancias de clase: tienen métodos (funcionalidades) y propiedades (caracteristicas).
PascalCase: el inicio de cada palabra esta en mayuscula, sirve para definir clases.
camelCase: el inicio de la primera palabra esta en minuscula, se usa con instancias de objetos.
Main: clase principal. En mayuscula.
main: metodo de la clase Main, solo se llaman desde la clase (se conoce como metodo estatico). En minuscula.

            public class Main{                              (clase publica)
                public static void main(String[] arg){      (publico, de la clase Main, no retorna nada, metodo main)
                    System.out.println("Hello world!");     (muestra en pantalla)
                }
            }
        

tipos primitivos

Variable: espacio de memoria que almacena un tipo de dato.
Enteros: int (-2mil millones 2mil millones), byte (-128 127), short (-32768 32767), long (-9+16ceros 9+16ceros).
Decimales: float, double.
Boolean: true, false.
Char: un cracter.

variables primitivas

            public class Main{                              (clase publica)
                public static void main(String[] arg){      (publico, de la clase Main, no retorna nada, metodo main)
                    byte edad = 18;                         (tipo dato, nombre variable, valor dato)
                    int numeroGrande = 1000;
                    
                    // comentario de una linea
                    /**
                    * comentario de varias lineas
                    */

                    float age = 15.5f;                      (lleva f despues del valor)
                    double age2 = 15.7f;

                    boolean isActive = true;
                    
                    char curso = 'a';                         (requiere comilla simple)

                    System.out.println(edad);               (muestra en pantalla el valor de la variable edad. sout)
                    System.out.println(numeroGrande); 
                    System.out.println(age); 
                    System.out.println(age2); 
                    System.out.println(isActive); 
                    System.out.println(curso); 
                }
            }
        

Tipo de referencia

            public class Main{                                         (clase publica)
                public static void main(String[] arg){                 (publico, de la clase Main, no retorna nada, metodo main)
                    String text = "Este es un comentario";             (tipo dato, nombre variable, valor dato)

                    text.length();                                      (método que cuenta los caracteres)
                    String texto = text.replace("Este", "Hola");        (reemplaza una palabra por otra)

                    System.out.println(text);                           (muestra en pantalla el valor de la variable edad. sout)
                    System.out.println(texto.endWith("comentario"));    (devuelve booleano dependiendo de la terminación)
                    System.out.println(texto.startsWitch("Hola"));
                    System.out.println(texto.contains("es un"));
                    System.out.println(texto.indexOF("comen"));

                    System.out.println(texto.toUpperCase());
                    System.out.println(texto.toLowerCase());
                    
                    String malo = "   Chancho Feliz  ";
                    System.out.println(malo.trim("));
                }
            }
        

Caracteres especiales

            public class Main {
                public static void main(String[] args){
                    String texto = "Hola, \n \"estoy \t programando\""; (\n salta renglon. \escapa comillas. \t tabulacion)
                    System.out.println(texto)
                }
            }
        

Arrays

            import java.util.Arrays;

            public class Main{
                public static void main(String[] args){
                    int[] numeros = new int[5];                   (una forma de crear arrays)
                    int[] numeros = { 0, 1, 2, 3, 4 };            (otra forma de crear arrays)

                    Arrays                                        (hace la importación, luego se elimina)
                    
                    numeros[0] = 5;                                (una forma de ingresa valores)
                    numeros[4] = 7;
                    
                    System.out.println(Arrays.toString(numeros)); (imprime la lista aunque tenga valores vacios)
                    System.out.println(numeros.length);           (cantidad de elementos)
                    
                    Arrays.sort(numero);                          (ordena el array)
                    System.out.println(Arrays.toString(numeros));
                }
            }
        

multiples dimensiones

            
        

constantes

            public class Main{
                public static void main(String[] args){
                    final String empresa = "Hola mundo";          (final define la variable como constante)
                    System.out.println(empresa);
                }
            }
        

Operadores aritmeticos

            public class Main{
                public static void main(String[] args){
                    int a = 2 + 2;
                    int b = 2 - 2;
                    int c = 3 * 3;
                    int m = 4 % 3;
                    int d = 10 / 3;
                    float e = 10f / 3f;
                    double f = 10.0 / 3.0;

                    int x = 5;
                    ++x;                        (incrementa el valor en 1)
                    x++;
                    x = x + 5;
                    x += 5;
                    x -= 5;
                    x *= 5;
                    x /= 5;

                    System.out.println(empresa);
                }
            }
        

orden de operadores PEMDAS

            parentesis
            potencias
            multiplicacion
            division
            suma
            resta
        

conversion de tipos

            public class Main{
                public static void main(String[] args){
                    implicita
                    byte a = 1;
                    double b = 15.15;
                    double c = a + b;
        
                    explicita
                    int x = 15;
                    double y = 15.015;
                    int z = (int) (x + y);                    (transforma la ecuacion a un entero)
                    int z = x + (int) y;
                }
            }
        

clase Math

            public class Main{
                public static void main(String[] args){
                    System.out.println(Math.abs(-15));
                    System.out.println(Math.max(15, 25));
                    System.out.println(Math.min(25, 15));
                    System.out.println(Math.round(15.5));
                }
            }
        

clase Scanner

            import java.util.Scanner;

            public class Main{
                public static void main(String[] args){
                    Scanner scanner = new Scanner(System.in);
                    System.out.println("Ingresa tu edad:");
                    byte valor = scanner.nextByte();
                    System.out.println("Tu edad es: ");
                    System.out.println(valor);
                }
            }
        

Operadores de comparación

            public class Main{
                public static void main(String[] args){
                    int a = 15;
                    int b = 10;

                    System.out.println(a == b);
                    System.out.println(a != b);
                    System.out.println(a > b);
                    System.out.println(a >= b);
                    System.out.println(a < b);
                    System.out.println(a <= b);
                }
            }
        

operadores logicos

            public class Main{
                public static void main(String[] args){
                    bolean a = true;
                    bolean b = false;

                    bolean c = a || b;
                    bolean d = a && b;

                    System.out.println(c);
                    System.out.println(d);

                    bolean x = !a;
                }
            }
        

if

            public class Main{
                public static void main(String[] args){
                    int edad = 8;
                    String movieClassification = "R18";
                    boolean isRestricted = movieClassification.constains("R");
                    if (isRestricted && edad > 17){
                        System.out.println("Puedes ver la pelicula");
                    } else {
                        System.out.println("No puedes ver la pelicula");
                    }


                    int edad = 8;
                    String movieClassification = "RP18";
                    bolean inWithAdult = true;
                    bolean isRestricted = movieClassification.contains("RP");
                    if(!isRestricted){
                        System.out.println("puedes ver la pelicula, porque no tiene restricciones");
                    } else-if (edad > 17) {
                        System.out.println("Puedes ver la pelicula, porque es mayor de edad");
                    } else-if (isWithAdult) {
                        System.out.println("Puedes ver la pelicula, porque viene con adulto");
                    } else {
                        System.out.println("No puedes ver la pelicula");
                    }
                }
            }
        

operador ternario

            public class Main {
                public static void main(String[] args){
                    int edad = 15;
                    String mensaje = edad > 17 ? "puede votar" : "no puede votar";
                    System.out.println(mensaje);
                }
            }
        

switch

            public class Main {
                public static void main (String[] args) {
                    switch (action) {
                        case "agregar":
                            System.out.println("agregando recursos");
                            break;
                        case "eliminar":
                            System.out.println("Eliminando recursos");
                            break;
                        default:
                            System.out.println("Accion por defecto");
                    }
                }
            }
        

for

            public class Main {
                public static void main(String[] args){
                    String[] textos = { "Hola mundo", "usuario 1", "Chanchito" };
                    for (int i = 0; i < 5; i++) {
                        System.out.println("Hola mundo" + i);

                    }
                }
            }
        

while

            public class Main {
                public static void main(String[] args) {
                    int i = 0;
                    while (i < 5) {
                        System.out.println("Hola mundo" + i);
                        i++;
                    }
                }
            }
        

do while

            public class Main {
                public static void main(String[] args) {
                    int i = 0;
                    do {
                        System.out.println(i);
                        i++;
                    } while (i < 5);
                }
            }
        

for each

            public class Main {
                public static void main(String[] args) {
                    String[] personajes = { "goku", "vegeta", "chanchito"};

                    for (int i = 0; i < personajes.length; i++) {
                        System.out.println(personales[i])
                    }

                    for (String personaje:personajes) {
                        System.out.println(personaje);
                    }
                }
            }
        

metodos

            ...
        

1. Lenguaje orientado a objetos

Atributo: es cada uno de los datos definidos para un objeto.
IDE (Integrated Development Environment): software que a través de una interfaz gráfica facilita al programador la escritura de código en diferentes lenguajes de programación.
JDK (Java Development Kit): software requerido para correr programas que son escritos en lenguaje Java.
JRE (Java Runtime Environment): conjunto de herramientas de software que posibilita la ejecución de programas escritos en Java.
Método: es cada una de las funcionalidades definidas para un objeto.
Paradigma: consiste en la forma en que se escriben los códigos de un programa.
Soluciones a la medida: programas creados a partir de una lista de requerimientos definida con anterioridad, de acuerdo con las necesidades del cliente.
Forma de ejecución del lenguaje: el código fuente se convierte en un código de mayor entendimiento para la máquina llamado bytecodes, los cuales se ejecutan a través del intérprete. Gracias a esta conversión del código a bytecodes, las soluciones programadas bajo este lenguaje son utilizables en cualquier sistema operativo, debido a que esto consiste en un formato entendible por cualquier máquina, sin importar la arquitectura que maneje.
Programación secuencial o estructurada: la codificación se iniciaba en una primera línea y de allí hacia abajo se desplegaban todas las instrucciones que se deseaba fueran cumplidas por cada programa, y en caso de un fallo, o de requerir alguna modificación, era necesario repasar todo el código para identificar cómo corregir o cómo cambiar lo que se requería.
Programación orientada a objetos: centra la escritura de los programas en los objetos que lo componen, y de esta manera permite dividirlos en una especie de subprogramas que se comunican entre sí para conformar un todo, haciendo mucho más fácil el proceso de corrección de fallas y de actualización de las funcionalidades.

Conceptos basicos

Objeto: elemento que hace parte del sistema y del cual se pueden definir ciertos datos (atributos) y funcionalidades (métodos).
Clase: es un modelo que almacena la estructura básica de un objeto; es decir, se definen en esta los atributos y métodos que van a componer los objetos.
Instancia: consiste en cada uno de los objetos creados a partir de una clase.

Caracteristicas

Abstracción: identifica los componentes del sistema, sus características y funcionalidades. Dichos componentes son fácilmente identificables a través del análisis de sustantivos; es decir, analizando aquellos elementos que harán parte del sistema y que pueden definirse como personas, animales o cosas (estos serán los que se denominen objetos).
Herencia: es el proceso mediante el cual unos objetos mantienen sus propios atributos y funcionalidades, pero también toman atributos o funcionalidades de otros; para comprender mejor. Se continúa con el ejemplo del centro veterinario, en donde se identifica una clase que es personas, que sería la clase padre, pero se requiere otra clase denominada médicos.
Polimorfismo se trata de la característica que permite asignar las mismas instrucciones a diferentes objetos, teniendo en cuenta que cada uno de ellos las va a ejecutar de acuerdo a sus particularidades internas. Para ejemplificarlo, en el centro veterinario, cuando el médico registra el alta de un paciente que se encuentra hospitalizado, suceden tres cosas: primero se informa a la secretaria para que genere la orden de pago, segundo, se informa en pantalla al veterinario que el alta fue registrada y tercero, se informa al propietario para que recoja al paciente.

Lenguajes más usados

Python: creado por Guido Van Rossum, consiste en un lenguaje de código abierto y muy fácil de utilizar, no es compilado, sino que trabaja por medio de un intérprete interactivo para mayor facilidad del programador; aunque suele ser mencionado en los estilos de programación orientada a objetos, acepta múltiples paradigmas.
Java: creado por James Gosling, guarda grandes parecidos con los lenguajes C y C++, difiere en el hecho de que es completamente orientado a objetos; una de sus bondades es que permite incluir programas directamente en páginas web, lo cual brinda una interesante interactividad entre el usuario y el sistema.
C++: inventado por Bjarne Stroustrup mientras trabajaba para los laboratorios Bell de AT&T, en el año 1985 aproximadamente. Su nombre deriva del operador incremento del lenguaje C; se podría decir que C++ es un C incrementado, un paso más en el C.
C#: creado por Anders Hejlsberg, se trata de una mejora sustancial a los lenguajes que lo preceden C y C++, maneja una sintaxis similar a la de Java y cuenta con una librería de clases muy completa y bien diseñada.

aplicación

Recomendado usar Netbeans.
guardarlo como Primera.java
Applet: programa que se ejecuta a traves de un navegador que sea compatible con java. Se crea usando la clase applet pero ya no es tan utilizado.

            public class Primera {
                public static void main(String[] args){
                    System.out.println("Me gusta JAVA y estoy listo para comenzar");
                }
            }
        

2. Entorno de trabajo

¿Qué lo compone?

IDE (NetBeans).
JDK.

¿Cómo se obtiene?

            sudo pacman -S netbeans
            netbeans --version
            
            sudo pacman -Ss openjdk
            sudo pacman -S aplicacion
            java -version
        

2. Variables

Variable: espacio de almacenamiento de informacion en memoria, definidas por medio de identificadores representados en palabras. Cada variable debe tener un tipo de dato que determina la clase de valor que puede almacenar.

¿Cómo se declaran?

Aspectos basicos: tipo de dato, nombre de la variable, valor y privacidad (en POO).
Privacidad: hace referencia a la forma en la que puede ser accedido un atributo.

            private     int       valor = 17;
                        long      nota = 3.8;
            public      string    texto = "Bienvenidos";
            protected   boolean   acepta = false;


            acceso     clase  subclase  paquete  otros_paquetes
            public       x       x         x           x
            protected    x       x         x 
            defecto      x       x
            private      x
        

Tipos

Locales: variables que se declaran dentro de un metodo, se crean cuando el metodo es llamado y se destruyen al salir del metodo. Solo se puede acceder dentro del mismo metodo.
Estaticas: variables que son declaradas dentro de una clase y por fuera de cualquier metodo, se crean cuando se ejecuta un programa y se destruyen cuando el programa finaliza. Solo se permite una por clase y se pueden acceder con el nombre de la clase.

            Ejemplo de variable local: 
            public void EmpleoEdad()
                {
                    int edad = 0;
                    edad = edad + 7;
                    System.out.println("La edad del empleo es:"+edad);
                }

            Ejemplo de variables estatica:
            class Empleado
                {
                    public static double sueldo;
                }
            public class EmpleadoUno
                {
                    public static void main (String args[])
                        {
                            Empleado.sueldo = 890000;
                            System.out.println ("El salario es:"+Empleado.sueldo);
                        }
                }