Resumen Programación II (Lenguaje Java)
Resumen Programación II (Lenguaje Java)
}
Programa fuente java: Nombre.java
public class MyClass { Son lo mismo que las funciones de C, pero pueden llevar
modificadores antes del tipo de retorno.
public static void main(String[] arguments){
SENTENCIAS Definición del método main:
} public static void main(String[] arguments) {
} System.out.println(“hola”);
Como en C, la ejecución empieza por la ejecución main y }
main se declara con algunas diferencias: • public : accesible desde cualquier lugar del código
• Un sólo parámetro, está implícito el número de
argumentos • static : permite acceder a métodos y campos sin
• Tiene unos modificadores y tipo de retorno void instanciar objetos
• Va dentro de una estructura class, el ambiente IntelliJ
genera esta automáticamente, tu sólo completas • String[] arguments : para recibir argumentos desde la
línea de comandos, arreglo de String (java MiPrograma
6. TIPOS (PRIMITIVOS) arg1 arg2 arg3)
Tipos de valores que pueden ser almacenados y Definición de un método en Java:
manipulados:
public void NOMBRE() {
• boolean: true, false
SENTENCIAS
• int: Entero (Ej: 0, 1, -47) }
• double, float: Número Real (Ej: 3.14, 1.0, -2.1) Para llamar un método: NOMBRE();
Los métodos pertenecen a una clase
• char: Carácter unicode
• String: Texto (“hola”, “ejemplo”). //diferente del string C 10. PARÁMETROS
♦ String es una excepción entre las clases de Definición de un método estático con parámetros:
objetos de Java
public static void NOMBRE(TIPO NOMBRE, TIPO2
♦ Tiene un trato especial como objeto NOMBRE2,…){
Las variables se localizan con nombre, y estas almacenan SENTENCIAS
un valor de un tipo dado: }
Forma: Tipo Nombre Ej: String Nombre Para llamar:
Para asignar un valor a una variable, se hace con el NOMBRE(EXPRESIÓN);
símbolo = suma(1,2);
suma(5+4,1-2);
7. SALIDA suma(a,b);
System.out.println(String); imprime en la consola Se pasan por valor:
• Se copia el valor actual de la variable y se envía a el
Ej: System.out.println(“salida”); método
System.out.print(“salida”); //Sin salto de línea
• Se trabaja con una copia independiente del valor
8. STRING original
• Cualquier cambio realizado en la copia no afecta la
En Java, los strings o cadenas son un objeto especial variable original fuera del método
Ej: String text = "hola" + " mundo";
text = text + " numero " + 5;
// text = “hola mundo numero 5"
Ej: String a = "aeiou";
System.out.println(a.length()) //imprime largo del String,
, se llama el metodo length del objeto a
11. VALOR DE RETORNO 14. ALCANCE DE VARIABLES (SCOPE)
Definición de método estático que retorna un valor: Las variables viven en el bloque ({}) donde ellas fueron
public static TIPO NOMBRE() { definidas (scope).
SENTENCIAS Los parámetros de los métodos son lo mismo que definir
return EXPRESIÓN; nuevas variables en los métodos.
} Hay un scope de clase.
Ej: public class Scope {
Ejemplos Diferencias
No realiza ninguna acción public static void main(String[] arguments){
public static int dame5() { visible, pero devuelve un int x = 5;
return 5; valor (el número 5) que if (x == 5){
} puede ser almacenado y
x = 6;
utilizado posteriormente
en el programa int y = 72;
Realiza una acción System.out.println("x = " + x + " y = " + y);
public static void print5() { (imprimir en la consola) }
System.out.println(“5”); pero no devuelve ningún System.out.println("x = " + x + " y = " + y); // /!\
} valor }
}
void significa “no tipo”
15. CONDICIONALES
12. LLAMAR MÉTODOS (STATIC) DE UNA CLASE
If Else if
Ej: class Operaciones {
if (CONDITION) {
public static double cuadrado(double x){
SENTENCIAS
return x*x; } else if (CONDITION) {
} if (CONDICIÓN) { SENTENCIAS
} SENTENCIAS } else if (CONDITION) {
} SENTENCIAS
public static void main(String[] arguments){ } else {
SENTENCIAS
System.out.println(Operaciones.cuadrado(5));
}
}
16. CICLOS (LOOPS)
13. RECURSIVIDAD
Ej: public static int suma(int hasta) { Tipo Definición Ejemplo
if (hasta > 0) { //Condición de parada (sin eso bucle int i = 0;
infinito) while (condición) { while (i < 4) {
return hasta + suma(hasta - 1); While sentencias System.out.println(i);
} else { } i++;
return 0; }
int i = 0;
}
do { //se ejecuta a
} Do - do { // Bloque de mínimo una vez
• Si llamamos a suma(5) : 5 + suma(4) : 5 + (4 + suma(3))… While código a ejecutar } System.out.println(i);
5 + 4 + 3 + 2 +1 + 0 while (condición); i++;
• La recursión es poderosa y elegante, pero debes tener }
cuidado al usarla, debes asegurarte de que terminará y while (i < 5);
no sobrecargará la pila de métodos (dando errores de for
(inicialización;condici for (int i = 0; i < 4; i++) {
memoria)
For ón;actualización){ System.out.println(i);
sentencias }
}
17. COMPARACIONES MATERIA PA3P “SEMANA 1”
En Java se usa la palabra "método" para referirse a lo que
x>y x<y x>=y x<=y x==y x!=y en C se le llama "función". Mucho de lo que sabes sobre el
uso de "funciones" en C es aplicable a los "metodos"
18.OPERADORES BOOLEANOS
(parametros, retorno, etc).
Una aplicación Java es un programa que inicia su
&& : AND || : OR ! : NOT
ejecución llamando al "metodo" main, que es el
19. ARREGLOS equivalente a la funcion main de un programa C.
Para crear un arreglo de un tamaño dado, use el operador |- main -+ //origen de la aplicación
new : |- org.example -+
//paquete por defecto (podría tener otro
int[] values = new int[5];
nombre)
o puedes usar una variable para especificar tamaño: |-Main.java
//archivo en el que esta método main y la
int size = 12; clase Main (podría tener otro nombre de
int[] values = new int[size]; clase, como A o Ejercicio1 por ejemplo)
Arreglo multidimensional:
• Todos los métodos deben estar dentro del cuerpo de una
Ej 1: int[][] R=new int[2][3]; //inicializar elementos . .
"clase", en una clase puede haber varios "métodos" y
.. después
una aplicación puede estar compuesta de varias clases.
Ej 2: int[][] R={{1,2,3},{4,5,6}};//inicializa en declaración • El nombre de la clase usado en el enunciado mas arriba
System.out.println(R.length+"--"+R[0].length); es "Main". Los nombres son identificadores
alfanuméricos. Aunque no es obligatorio, por
Número de filas Número de convención los nombres se inician con mayúscula.
Arreglos en memoria: columnas fila cero • En Intellij debes crear un proyecto maven, que generará
Los nombres de los arreglos son punteros. automáticamente el Main.
Punteros: variables que contienen la dirección en
memoria de algo
• Los nombres de las clases usados en los enunciados de • En java, para declarar un arreglo con valores iniciales se
problemas de esta PA3P puedes cambiarlos por otros a puede hacer de la siguiente manera:
tu elección, a menos que se te pida explícitamente que int R[]={3,2,1,5,7,3,0,10};
uses uno especifico. se puede puede declarar dentro del metodo "main" o fuera
• Otra diferencia entre C y Java es la forma en que se de el, pero dentro de la clase.
imprimen los resultados en pantalla, la función printf es Si se declara fuera del metodo "main", se deberá
reemplazada por System.out.println. Si usas la primera, anteponer la palabra "static", como ocurre con el método
debes incluir el \n en el string, como en C. Si usas la "main". Este es un caso especial relativo a la
segunda, el \n lo agrega automáticamente. implementación de java.
Los arreglos en Java tienen asociada una variable que
Las variables se declaran como en C, por ejemplo:
siempre tiene el número de elementos de este. El nombre
Crea una variable 'x' de
de la variable es el nombre del arreglo seguido de '.' y la
int x tipo 'int'. Lo que se
almacena en 'x' es un palabra length. en ejemplo presentado arriba seria
entero, como en C "b.length"
Crea una "referencia" o
int r[] "puntero" a memoria ➢ Para hacer la conversión de tipo entero a flotante, se
donde los enteros se hace igual que en c, se usa 'casting' (moldeaje). Por
almacenan en forma
ejemplo:
contigua.
int x = 3;
float f Crea una variable 'f' de
float z = (float)x/(float)2; //no es
tipo 'float'.
necesario poner casting en los dos
Esta variable puede
almacenar los valores operandos
boolean b
"true" o "false". En C el • En java, una class reemplaza el concepto del lenguaje
entero '0' es falso y mayor C de estructura, una class se declara como sigue:
que cero es verdadero.
class ComoStruct {
Las variables siempre se declaran dentro de una clase o }
dentro de un método. Si se declaran dentro de la clase Dentro de las { } puedes declarar las variables de manera
pero fuera de métodos, son compartidas por todos los normal como en las "struct" del lenguaje C
métodos de la clase (equivale a variable global en C). No Por ejemplo, un arreglo como
existen variables globales declaradas fuera de las clases. int ar[]={3,2,1,5,7,3,0,10,5}; se puede poner
Java es un lenguaje derivado de C, y sus estructuras de dentro de una class y queda:
class ComoStruct {
control "for", "while", "switch", "if", etc. son muy similares.
int ar[]={3,2,1,5,7,3,0,10,5};
Una diferencia al usar constantes booleanas:
}
• while(true){---} es equivalente a decir while(1){---} Esta class no debe ir dentro de la class donde esta
Para imprimir en pantalla usando System.out.print o main
System.out.println, no es necesario especificar un Para crear una instancia de esta clase, en Java se hace de
formato según el tipo de variable, basta con poner: la siguiente:
ComoStruct cs = new ComoStruct(); //cs
• System.out.println(variable) y se es una variable puntero y su contenido es
imprimirá en pantalla el valor de esta. la direccion al objeto particular creado
El texto y los valores imprimibles de las variables se - Puedes crear una instancia en el método "main" o en
pueden concatenar usando '+' de variadas formas. Por cualquier parte del programa y para referirte a los
ejemplo: elementos del arreglo dentro de esa instancia de la class,
System.out.println("blabla " + variable); basta con usar la variable "cs" seguida de un '.' y el
elemento.
imprime en pantalla la palabra "blabla", el blanco que va
Por ejemplo la siguiente sentencia copia el contenido de
antes de las últimas comillas y el valor de la variable.
un elemento de arreglo en otro:
cs.ar[2] = cs.ar[3];
- Los arreglos en Java tienen asociada una variable que
siempre tiene el número de elementos de este,
El nombre de la variable es el nombre del arreglo seguido
de '.' y la palabra "length". En el ejemplo
presentado arriba seria "ar.length"