21

Mis apuntes del curso de Java Basico

Buenas me presento, mi nombre es Diego, y tengo 16 años. Soy de España y estoy aprendiendo programación. He realizado unos apuntes durante las clases bastantes breves y lo quiero compartir con vosotros.
Índice:

Introducción a Java

  • Tipos de Datos

  • Operadores en Java

  • Control de flujo

  • POO (Programación Orientado a Objetos.)

  • Static, Final, Sobrecarga y Modificadores de Acceso

  • Herencia, Polimorfismo e Interfaces.

  • Colecciones de datos.

Introducción a Java

¿Qué es Java?:

Java es un lenguaje de programación de alto nivel. Para mi los lenguaje de programación de alto nivel son aquellos que se asemejan más a lenguaje natural que el de la máquina. Java es un lenguaje con una sintaxis muy parecida a la de C Y C++. Hay que tener en cuenta que es un lenguaje orientado a objetos, es decir es un paradigma que tiene su teoria, filosofia …
Gracias al virtual machine de java nos permite que java sea un lenguaje portable y con un solo código se puede correr en todos los sistemas operativos. Es un lenguaje seguro debido a que a la hora de compilar el código se convierte a ByteCode y el programa no lee el código fuente.

Origen de Java:

Es un lenguaje que nació en 1991 por James Gosling. En el año 2009 compró Oracle a Java. La intención de java es permitir que los desarrolladores escriban un programa una vez y lo ejecuten en cualquier dispositivo.

Hola Mundo en Java:

publicclassHolaMundo
{

publicstaticvoidmain (String [] args)
{
	System.out.println (“Hola Mundo”);
}

}

Ahora lo comparamos con un hola mundo de C#, para que veáis lo similar que es

using System;

namespaceHelloNameSpace

{

      publicclassHelloWorld

      {

            publicstaticvoidMain(string[] args)

            {

                  Console.WriteLine("Hola Mundo!");

            }

      }

}

¿Qué es el método main?:

El método main se conoce como el punto de entrada de la aplicación java. Es decir que todo lo que esté en el método main es lo que se va a ejecutar.

Un ejemplo:

publicclassMain

      {

     publicstaticvoidMain(string[] args)
			
            {
								segundoMetodo(); 
                // Se ejecuta el codigo

            }
	// Podemos crear mas metodos, pero para que se ejecuten necesitamos llamarlos por el método mainpublicstaticvoidsegundoMetodo()
{
	// Mas codigo
}
      }

Tipos de datos:

Tipos de datos primitivos enteros:

¿Qué es una variable? → Una variable es un espacio en memoria al que se le puede asignar un contenido.

Tipos de datos primitivos enteros:

Byte: Rango → -128 a 127 Memoria que ocupa → 1 byte
Short: Rango → -32,768 a 32,767 Memoria que ocupa → 2 bytes
Int: Rango → -2,147,483,648 a 2,147,483,647 Memoria que ocupa → 4 bytes
Long: Rango → -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 Memoria que ocupa → 8 Bytes.

Tipos de datos primitivos con decimales:

Float: Rango → 1.40129846432481707e-45 a 3.40282346638528860e+38 Memoria que ocupa → 4 bytes
Double: Rango → 4.94065645841246544e-324d a 1.79769313486231570e+308d Memoria que ocupa → 8 Bytes.
Char: Rango en unicode → 0 a 65,535 Memoria que ocupa → 2 bytes

Tipos de datos lógicos:
boolean → Solamente nos devuelve un true o false. 2 bytes de memoria ocupa.

Hay que tener en cuenta estos datos para saber que tipo de variable utilizar. Es decir si tenemos una variable para la edad lo más recomendable es utilizar un variable de tipo entero Byte, porque qué persona supera los 127 años de edad. Esto hay que tenerlo en cuenta para hacer un programa lo más eficiente posible.

Naming en Java:

Es la forma correcta de nombres variables,métodos, objetos, clases y constantes.

Variables, Métodos y Objetos → Lower Camel Case : Ejemplo → int numeroEntero = 1;
Clases → Upper Camel Case
Constantes → Las palabras en mayúsculas y separadas por _

Cast de variables:

El cast nos permite cambiar el tipo de dato.

Syntaxis para el cast:

double d = 23,2;
inr i = (int) d;

Arreglos en java

Los arreglos se pueden definir como objetos en los que podamos guardar más de una variable.

Para declarar un array → dato[] nombreVariable;
Definir tamaño Arrays → nombreVariable = new TipoDato[capacidad];

int arreglo [];

arreglo = new int arreglo[4];

También se pueden de más dimensiones.

int [][] array2D = new int [2][3]; → Este arreglo tiene una capacidad de 6.

Búsqueda de elementos en Arrays, Indices:

Vamos a realizar el ejemplo con un char:

char[] names = new char[3];

name[0] = ‘h’;
names[1] = ‘i’;
names[2] = ‘i’;

** Operadores en Java**

Tipos de operadores en Java:

Los operadores nos permiten una vez que tengamos variables, usarlas para crear y formar expresiones que regresen valores.

Operador Adición → +
Operador Sustracción → -
Operador Multiplicación → *
Operador División → /
Operador Modulo → %

Operadores de incremento ++ y decremento –

Operador ++ → Ejemplo: i++ (i = i + 1)
Operador – → Ejemplo i --(i = i - 1)

Operadores Relacionales:

Operador < → Menor que
Operador > → Mayor que
Operador <= → Menor o igual que
Operador >= → Mayor o igual que

Operadores lógicos:

Operador && → Y (AND)
Operador || → O (OR)

Operador a! → negativo (NO)

Ejemplos de codigo:
// Ejemplo con &&
boolean n;
int p = 2;
int q = 2;
int a = 5;
int b = 6;

if (p == q && a == b)
{
n = true;
}
else
{
n = false;
}

Esto quiere decir que para que boolean n sea true deben cumplirse las dos condiciones

// Ejemplo con ||
boolean n;
int p = 2;
int q = 2;
int a = 5;
int b = 6;

if (p == q || a == b)
{
n = true;
}
else
{
n = false;
}

Esto quiere decir que para que boolean n sea true deben cumplirse una de las dos condiciones.

Control de flujo:

La sentencia if/else:
Nos permite ejecutar un bloque de código o no, dependiendo de una condición que se evalúa antes del bloque.
Su resultado son dos valores, true o false.

La sentencia switch:

En esta sentencia permite elegir múltiples caminos a seguir por el flujo de ejecución de nuestro programa.

public static  void main(String[] args)
{
	int user = 18;switch (user)
	{
		case18:
			System.out.println("You are 18");break;	case19:
		System.out.println("You are 18");break;default:
		System.out.println("You are not 18, 18 or 20");
		
	}
}

while:

Es un bucle, en que mientras se cumpla la condición va estar ejecutándose todo el rato. Cuando deje de cumplirse se sale del bucle

int e = 1;
while (e <= 5)
{
	System.out.println(“e es menor o igual que 5”);
e++;
}

Do While:

En este bucle entras y realizas lo que hay en el do. Despues se comprueba si cumples la condición. Si no la cumples te saca del bucle y si la cumples te vuelve a meter en bucle.

do
{
	// codigo
}while(condicion);

For:
Se trata de un bucle en el que nos permite repetir un bucle de código hasta que ya no se cumpla la condición. La sentencia break termina un bucle inmediatamente y el control del programa se mueve a la siguiente sentencia después del bucle.

for(int i =1; i<= 10; i++)
{
	// codigo
}

foreach: Tiene un mejor rendimiento que for, pero en for si tenemos acceso al índice. Por lo cual la elección entre for o foreach dependerá de lo que queramos hacer.

for(intj : numeros)
{
	// codigo
}

Programación Orientada a objetos:

POO es una nueva forma de hablar que consiste en descomponer un problema en subproblemas y más subproblemas.

Los objetos pueden ser físicos o conceptuales. Y cada objeto tiene atributos como (tamaño, nombre, forma…)

Los nombres y atributos de los objetos por lo general son sustantivos.

La sentencia import

Import nos permite importar una clases o paquete de clases que nos puede servir como utilidad.

import java.util.Date;
import java.util.*;

Métodos y método constructor en java:

Estructura de un método:

publicintsuma(int a int b){
return a + b;
}

Si el método no regresa ningún valor utilizamos la palabra void.
Un método no puede declararse dentro de otro método.

Estructura Método constructor:

miAuto = new Auto();

Nos permite crear nuevas instancias de un clase
Tiene el mismo nombre que la clase que inicializa

Usa la palabra reservada new para invocarlo.

Metodos:
Los metodos en java pueden tener parametros, es decir, que un metodo puede utilizar variables predefinidas para ser utilizadas en sus procesos, Veamos un ejemplo de como hacer un metodo en el siguiente ejemplo
En este ejemplo vemos un programa normal en el cual se ejecuta un ciclo while que imprime numeros del 0 al 7, pero ¿es posible hacerlo utilizando un metodo?

package ciclos;



publicclassMain {

/**


* @param args the command line arguments
*/publicstaticvoidmain(String[] args) {

int x=0;
while(x!=7)

{


System.out.println("X vale: "+x);
x++;
}

}


}
 

Ahora utilizaremos este mismo programa pero el ciclo se ejecutara en un metodo:

package ciclos;


publicclassMain {


/**


* @param args the command line arguments


*/publicstaticvoidmain(String[] args) {


iniciarCiclo();//aqui estamos ejecutando el metodo escrito en//la parte de abajo, se puede utilizar mas de 1 vez


}

/*Comienza el metodo


Este metodo no regresa valores, es un metodo que unicamente


realiza un procedimiento, por lo que se declara como  "void" seguido del


nombre que tendra el metodo*/publicvoidiniciarCiclo(){

int x=0;


while(x!=7)


{

System.out.println("X vale: "+x);
x++;


}


}

}

Los dos anteriores programas hacen exactamente lo mismo a diferencia de que el segundo programa esta utilizando un metodo.
En este ultimo ejemplo se mostrara un metodo que regrese un valor, estos metodos se declaran diferente y siempre deben terminar
con la palabra “return var;” donde “var” es una variable cualquiera del mismo tipo del metodo. Ejemplo:
Declaramos el metodo:

publicintobtenerValor(){
int x=10;
return x;

}

Notese que se utiliza “int” en lugar de “void”, lo cual indica que se regresara una variable del tipo integer o numerico, por lo que dentro del metodo se declara int x=10; que es precisamente un valor numerico, y se regresa el valor de x, es decir 10. Finalmente el metodo puede ser usado para obtener el valor de 10 del siguiente modo.


int variable;
variable = obtenerValor(); //estamos diciendo que variable vale ahora 

Utilizando parametros
Se puede utilizar parametros en un metodo. En el siguiente ejemplo se utilizara un parametro el cual es un valor que se puede asignar al metodo para realizar operaciones, este puede ser variable y se obtendran diferentes resultados dependiendo del valor asignado.
Declaramos el metodo:

publicintobtenerValor(int parametro){


//notese que dentro de los parentesis se declara una variable//esta variable es el parametroint x=parametro/2;


//utilizamos una variable x para calcular el parametro dividido entre 2return x;//se obtiene finalmente la variable "parametro" dividida entre 


}

vemos que este metodo utiliza un parametro, y el resultado del mismo es este parametro pero dividido entre 2, si el parametro varia, entonces vemos que el resultado tambien.
su implementación en codigo seria algo asi:

int variable;


variable = obtenerValor(10); //debido a que el parametro es 10, la variable valdra 5//pues el metodo regresa la division del parametro entre 2.

Esta fue una breve introducción acerca de como se utilizan los metodos en java. Se publicara un programa que utiliza metodos en la sección de codigo fuente, revisa esta sección para descargar ejemplos y practicar, pues en cuanto a programación se trata solo se puede aprender practicando. Asi mismo no olvides revisar nuestros video tutoriales para ver ejecución de programas en tiempo real.

¿Qué es la herencia?
La herencia nos permite generalizar caracteristicas y comportamientos en grupos mas amplios. De manera que podamos reutilizar en la mayor cantidad caracteristicas comunes

Para aplicar la herencia lo hacemos con la palabra reservada extends.

public class Movie extends Film{}

Tenemos el Super y el This.
El super indica que una variable o un método es la clase padre.
El this nos permite especificar la variable que estamos señalando.

Colecciones de Datos:

Se diferencian de los arrays en que su tamaño no es fijo, si no dinámicos.

Con ello se pueden realizar operaciones de añadir, eliminar, obtener, encontrar o recorrer una colección.

List: Es una interfaz que extiende de la interfaz collection, se utiliza para almacenar colecciones de objetos.
add(Object o) añade un objeto al final de la lista

add(int indice, object o) Añade un objeto a la lista en la posición indicada
get(int indice) Devuelve el objeto de la lista de la posición indicada
remove (int indice) Elimina el objeto de la lista pasada por parámetro
clear(). Elimina todos los elementos de la lista
IndexOf(Object 0) Devuelve la posición de la primera vez que un elemento coincida con el objeto pasado por parámetro. Si el elemento no es se encuentra se devuelve -1 .
lastIndexOf(Object o) Devuelve la posición de la última vez que un elemento coincida con el objeto pasado por parámetro. Si el elemento no se encuentra devuelve -1.
size(): Devuelve el número de elementos de la lista.
Constains (Object 0) Devuelve verdadero si en la lista aparece el objeto pasado por parametro, para cual utiliza intrinsecamente el metodo equals()

ArrayList: Almacena un arreglo de objetos que pueden cambiar de tamaño.
ArrayList<String> androids = new ArrayList <String>();
androids.add(“Jelly Bean”);
androids.add(“Kit Kat”)

Vector:

Un vector es muy similar a un array, la diferencia estriba que un vector usa hilos y esta sincronizado y un array no.

Gracias por vuestra atención, he intentado incluir lo mas importante para mi
Google Docs ->Google Docs

Escribe tu comentario
+ 2
1
2388Puntos

Graciass por las notas, que juicioso al tomarlas tan detalladamente.