0% encontró este documento útil (0 votos)
2 vistas58 páginas

Introducción a Java y POO

La programación orientada a objetos (POO) busca adaptarse al pensamiento humano para resolver problemas y desarrollar soluciones. Java, un lenguaje de programación lanzado en 1995, se compone de varias ediciones (SE, EE, ME) y utiliza un proceso de compilación que genera bytecode, ejecutado por la Java Virtual Machine (JVM). El documento también aborda conceptos fundamentales de Java, como tipos de datos, operadores y estructuras de control.

Cargado por

rikudou.9314
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas58 páginas

Introducción a Java y POO

La programación orientada a objetos (POO) busca adaptarse al pensamiento humano para resolver problemas y desarrollar soluciones. Java, un lenguaje de programación lanzado en 1995, se compone de varias ediciones (SE, EE, ME) y utiliza un proceso de compilación que genera bytecode, ejecutado por la Java Virtual Machine (JVM). El documento también aborda conceptos fundamentales de Java, como tipos de datos, operadores y estructuras de control.

Cargado por

rikudou.9314
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

PROGRAMACIÓN ORIENTADA A

OBJETOS

1. Conceptos fundamentales de Programación


Orientada a Objetos

Ing. Karla Abad Sacoto, Docente CISC - Software


Introducción a la Programación Orientada a Objetos
 ¿¿ Por qué POO??
 Una manera más natural ………………
 La programación orientada a objetos trata de amoldarse al
modo de pensar del hombre y no al de la máquina.
 Estamos hablando de una nueva forma de pensar acerca del
proceso de descomposición de problemas y de desarrollo de
soluciones de programación

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Introducción a la Programación Orientada a Objetos

Un lenguaje orientado a objetos es un


lenguaje de programación que permite el
desarrollo de aplicaciones orientadas a
objetos. Ejemplos:
 Ada, C++, C#, [Link], Java, Objective-
C, PHP, Python, Ruby y Smalltalk.
 Primero se debe adquirir la forma de
pensar es decir la “filosofía” orientada a
objetos y aprender después el lenguaje.

Ing. Karla Abad Sacoto, Docente CISC - Software


Introducción a Java
¿Qué es Java?
Java
es un lenguaje de programación y una plataforma informática
comercializada por primera vez en 1995 por Sun Microsystems.

Java salió al mercado en 1995. Su fundador fue James Gosling.


En Diciembre de 1998, Sun MicroSystems anunció la plataforma Java 2.
En el 2010, Sun MicroSystems fue adquirido por Oracle.
Actualmente sus librerias se encuentra en la versión 17.
([Link]

Ing. Karla Abad Sacoto, Docente CISC - Software


Introducción a Java.
Es necesario distinguir claramente entre dos partes muy
diferenciadas dentro de la plataforma Java:
 JRE (Java Runtime Environment): aporta con el entorno
necesario para ejecutar una aplicación Java. Forman parte del
JRE la máquina virtual Java o JVM (Java Virtual Machine),
encargada de ejecutar el bytecode Java, así como las
bibliotecas que ofrecen los servicios definidos en la plataforma.

 JDK (Java Development Kit): es el paquete de herramientas


precisas para llevar a cabo el desarrollo de dicha aplicación.
Este JDK agrega herramientas como el compilador Java. Este
toma el código fuente Java y genera como resultado bytecode,
un formato de código objeto independiente del sistema
operativo y el hardware.
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Introducción a Java.
Existen 3 ediciones de JAVA:
Java SE: la conocida como Standard Edition es
la edición más difundida de la plataforma Java.
Incorpora los elementos necesarios para crear
aplicaciones de escritorio con o sin interfaz
gráfica de usuario. JavaFX forma parte de Java
SE desde la versión 7 de dicha edición de la
plataforma.

Java EE: es la Enterprise Edition de la


plataforma Java, dirigida al desarrollo de
soluciones software que se ejecutarán en un
servidor de aplicaciones (web). A las
capacidades de Java SE, la edición EE agrega
servicios para gestionar la persistencia de
objetos en bases de datos, hacer posible la
invocación remota de métodos, crear
aplicaciones con interfaz de usuario web, etc.

Java ME: esta edición de la plataforma, Micro


Edition, está enfocada a la creación de
programas que se ejecutarán en sistemas con
recursos limitados, tales como teléfonos
móviles, electrodomésticos y dispositivos de
domótica o equipos para entornos [Link]
Karla Abad Sacoto, Docente CISC - Software
como la Rasperry Pi y similares.
Introducción a Java.
Java: Proceso de compilación

 En el proceso de compilación, el compilador JAVA


genera un código independiente de la plataforma,
código bytecode
 Bytecode es una especie de lenguaje de máquina de una
máquina virtual de JAVA

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Introducción a Java.
Java: Proceso de
ejecución Máquina Virtual de Java (JVM)
.

 En el proceso de ejecución, la Java


Virtual Machine (JVM) interpreta el
Bytecode para generar el código
de máquina según la
arquitectura y sistema operativo
sobre el cual se encuentra.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Introducción a Java.
 La siguiente figura ilustra de manera visual la
relación existente entre los diferentes
componentes de la plataforma Java

En el lenguaje JAVA, el compilador traduce los fuentes


a bytecode, y el intérprete de JAVA, que en realidad
interpreta bytecode.
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Java Multiplataforma

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Introducción Java

 Sintaxis, tipos de datos y


variables

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Tipos de datos primitivos
 El lenguaje Java define 8 tipos de datos
primitivos o simples:
 Datos de tipos numéricos
 Números enteros: byte, short, int, long

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Tipos de datos primitivos
 Datos de tipos numéricos
 Número con punto flotante: float, double

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Tipos de datos primitivos
 Datos de tipo caracter
 Char

 Datos de tipo lógico


 boolean

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Operadores aritméticos

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Caracteres especiales (secuencias de escape)

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Operadores Lógicos

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Variables
 Java es un lenguaje "fuertemente tipado o tipificado“.
 Es necesario especificar el tipo de dato para cada
una de las variables.
 El tipo de una variable determina los valores que
puede almacenar y las operaciones que se pueden
hacer sobre ella.
 Para dar a una variable un tipo:

 TipoDato nombreVariable;
 Ej. String nombre; // variable de tipo String
 int edad; // variable de tipo int
 Punto p; // variable del tipo Punto

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Identificadores válidos de variables
• Pueden empezar con una letra, un signo de dólar ($) o un
subguión. No pueden empezar con un número.

• Después del primer caracter, pueden contener cualquier


combinación de letras, símbolos especiales y números.

• En la práctica no hay límite para el número de caracteres


que puede contener un identificador.

• No puede utilizarse un keyword de Java como identificador.

• Son case sensitive. Es decir: mes y MES son dos


identificadores diferentes;
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
JAVA
Identificadores de variables
 int $c;
 int :b;
 int -d; Existen 4
identificadores
 int _$; correctos
 int e#;
 int ______2_w;
 int .f;
 int 7g;
 Int
this_is_a_very_detailed_name_for_an_identifie
r;
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
JAVA
Keywords
• Son palabras reservadas especiales que no pueden ser
utilizadas como identificadores (nombres) para clases,
métodos o variables.

• En Java existen dos palabras que son reservadas pero


que no son utlizadas: const y goto.

• El uso de null, true y false como identificadores está


prohibido a pesar de no ser consideradas palabras
reservadas sino valores literales.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA
Keywords

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Literales Boolean

Un boolean puede ser definida solo como true o false.

OJO: No se pueden asignar números en vez de valores boolean. Ni


ponerlos en lugares en donde un boolean es requerido.

Eje:
boolean b1 = true;
boolean b2 = 1;

int x=1;
if ( x ) {
}

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Literales Caracteres

Es representado por un caracter entre comillas simples. También


se lo puede escribir en el valor Unicode del carácter.

Eje:
char a = 'a';
char N = '\u004E';

Recordar que un entero es solo un número sin signo de 16 bits.


Lo que significa que puede ser un numero de 0 a 65535.

char d = 0x64;
char A = 65;
char f = (char)70000;

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Literales Caracteres

Valores de Literales String

Se los representa en la forma más sencilla con comillas dobles.

Eje:
String string = “hola”;

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Operadores de incremento y
decremento
 Para aumentar o disminuir en 1 una variable entera
(resulta útil especialmente en ciclos).

i++; //incremento después. Da el valor de i y luego le suma 1


++i; //incremento antes. Suma 1 a i y luego da el valor de i
i--; //incremente después. Da el valor de i y luego le resta 1
--i; //incremente antes. Le resta 1 a i y luego da el valor de i

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Operadores de incremento y decremento
 ++ incremento (prefix and postfix)
 -- decremento (prefix and postfix)

Nota que en la tercera línea del programa el operador de incremento


está después de la variable players. Eso significa que se está
utilizando el operador de incremento postfix, el cual causa que la
variable players se incremente por uno ,pero solo después de que el
valor de player se use en la expresión. Está será la salida del
programa:
players online: 0
The value of players is 1
The value of players is
[Link] 2 Sacoto, Docente CISC - Soft
Karla Abad
ware
Sentencias comunes
 Operadores lógicos
 La evaluación de una expresión lógica se detiene
en cuanto se determina el valor lógico de toda la
expresión.
&&; //Operador lógico y
|| //Operador lógico o
! //Operador lógico no
^ //Operador lógico xo

 Los operadores && y || evaluan solo valores


booleanos. Para que una expresión (&&) sea
verdadera, ambos operandos deben ser
verdaderos.
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Operadores de Asignación Compuestos

 Existen 11 operadores de asignación


compuestos, pero solo 4 son los más usados
(+=, -=, *=, /=),
y = y - 6;
x = x + 2 * 5;
 Ahora, con operadores compuestos:
y -= 6;
x += 2 * 5;

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Operadores de Asignación Compuestos

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Operadores de igualdad
 == equals
 != not equals
 No se puede comparar tipos incompatibles.
 Hay 4 tipos diferentes de cosas que pueden ser
comparadas:
 números
 caracteres
 booleanos
 Variables de referencia a Objetos

El operador == analiza el valor en la variable, en otras


palabras ,el patrón de bits.
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Operador concatenación de String
 String n=“Karla”;
 String ap =“Abad”;

 String nombreCompleto = n + “ ” + ap; // Karla Abad


 int n1=2;
 int n2 =3;
 int n3 = n1+n2; // 5

 String a = “Hola";
 int b = 3;
 int c = 7;
 [Link](a + b + c);
 // a+b //”Hola” + 3// “Hola3”
 // “Hola3” +7 //”Hola37”

 [Link](a + (b + c));
 b+c//3+7// 10

Sin embargo, si se coloca parentesis alrededor
“Hola” +10 // Hola10

de las dos variables:


[Link](a + (b + c));
you'll get this: String10
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Operador Condicional
 El operador condicional es un operador
ternario y es usado para evaluar
expresiones booleanas.
 x = (expresión booleana) ? valor asignado si es
verdadero: valor asignado si es falso

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Operadores lógicos ^ and !

 ^ exclusive-OR (XOR)
 ! boolean invert
 El operador ^ (exclusive-OR) evalúa solo
valores booleanos. Revisa siempre
ambos lados de la operación.
 Para que una expresión que usa el
operador exclusive-OR (^) sea verdadera,
exactamente un operando debe ser
verdadero—por ejemplo,
 [Link]("xor " + ((2<3) ^
(4>3)));
produce la salida: xor
Ing. Karla Abad
ware
false
Sacoto, Docente CISC - Soft
Operadores lógicos ^ and !

El operador ! (boolean invert) retorna el


valor booleano opuesto al actual:
• if(!(7 == 5)) { [Link]("not
equal"); }
Puede ser leído "if it's not true that 7 == 5," y
produce la salida: not equal

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Sentencias comunes
 Simples: es la instrucción terminada con un
punto y coma (;)
 Ejemplos: boolean esEmpleado = true;
 [Link]("El primer
programa");

 Compuestas: cero o más sentencias agrupadas


con { y }
 Ejemplo:
public static void main(String[] args) {
Bloque de //imprime un mensaje
código String mensaje="El primer programa";
[Link](mensaje);
}
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Sentencias comunes
 Condicionales
If if(condicion)
sentencia 1;
Sintaxis:
else if
sentencia 2;
else
otra sentencia;

Ejemplo:

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Sentencias comunes
 Condicionales
Switch-case
Sintaxis:
switch (variable) {
case <posible valor> :
Instrucciones ; break; case <posible valor>
: Instrucciones ; break; case <posible valor>
: Instrucciones ; break; case <posible valor>
: Instrucciones ; break; case <posible valor>
: Instrucciones ; break; default :
Instrucciones ;
}

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Sentencias comunes
 Condicionales
Switch-case
// SENTENCIA SWITCH-CASE
Ejemplo: int dia =5;
switch (dia) {
case 1: [Link]("Lunes");
break;
case 2: [Link]("Martes");
break;
case 3: [Link]("Miercoles");
break;
case 4: [Link]("Jueves");
break;
case 5: [Link]("Viernes");
break;
case 6: [Link]("Sabado");
break;
case 7: [Link]("Domingo");
break;
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Sentencias comunes
 Lazos
while
Sintaxis:
while(condicion) {
sentencias;
}

Eemplo:
int num =3;
while (num> 0){
[Link](“Numero: " +
num+ "\n");
num--;
}

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Sentencias comunes
 Lazos
Do-while
Sintaxis:
do{
sentencias;
} while(condicion) ;

Eemplo:
int num =3;
do{
[Link](“Numero: " +
num+ "\n");
num--;
} while (num> 0);

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Sentencias comunes
 Lazos
For
Sintaxis:
for(inicio ; condicion de terminación ;
incremento){
sentencias;
};
Eemplo:

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
JAVA Arrays

• Son objetos que sirven para almacenar múltiples variables del mismo tipo o
que sean todas subclases del mismo tipo.

• Pueden almacenar primitivos o referencias a objetos.

Declaraciones de Arrays
• Declaración de arrays de primitivos:

int[] key; // Corchetes antes del nombre (recomendado)


int key []; // Corchetes después del nombre (legal pero menos leíble)

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Declaraciones de Arrays Multidimensionales

• Pueden declararse arrays multidimensionales (arrays de arrays), de la


siguiente forma:

String[] [] [] occupantName;

String[] ManagerName []; // Legal, pero muy feo y no entendible.

Es recomendable seguir los consejos dados anteriormente en cuanto a


la declaración de los arreglos para que puedan ser leídos y entendido
mas fácilmente.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Declaraciones de Arrays

Es ilegal incluir el tamaño del array en su declaración.


La razón es que la JVM, no reserva espacio hasta que realmente se
instancie el array de objetos.

int[5] scores;

Con respecto a lo declarado, recuerden que esto nunca compilará,


ya que java hace la reservación de memoria solo en el momento de
la instanciación.

Construyendo un arreglo
En el momento de la creación es donde se especifica el tamaño del
arreglo para poder alojarlo en la memoria.

int[] scores = new int [5];


Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Construyendo Arreglos Multimensionales
Un arreglo multidimensional es un simple arreglo de arreglos.
Así, un arreglo bidimensional de enteros es un objeto de tipo arreglo
de enteros done cada uno de sus elementos es otro arreglo.

Ejemplo:

int [][] arreglo = new int[3][];


arreglo[0] = new int[3];
arreglo[0][0] = 0;
arreglo[0][1] = 1;
arreglo[0][2] = 2;
arreglo[1] = new int[2];
arreglo[1][0] = 3;
arreglo[1][1] = 4;

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Declarando, Construyendo e Inicializando en una línea
(Atajo 1)

int[] casas = {3,6,9};


Esta línea:
• Declara una referencia de arreglo de enteros llamado casas.
• Crea un arreglo de longitud tres.
• Lo llena con los valores: 3,6 y 9.
• Asigna el arreglo creado a la referencia de arreglo llamada
casas.

Aquí salta una pregunta, porque no solo se usa esta manera para
crear los arreglos y la respuesta es que puede que al momento de
crear el arreglo no se sepa el tamaño final.

Para un arreglo de objetos se lo hace de la misma manera.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Declarando, Construyendo e Inicializando en una línea

Para arreglos multidimensionales

int[][] casas = { {1,2} , {3,4,5} , {6,7,8} };

Aquí se esta creando un arreglo de arreglos, cada uno de los


elementos creados es un arreglo, en donde el tamaño de estos en el
número de elementos que tienen.
Se ha creado 4 objetos aqui, el primer objeto creado es el arreglo de
arreglos, luego el primer elemento dentro del arreglo tiene un
tamaño de 2, el segundo 3 y el tercero 4, y cada uno de estos son
objetos.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Inicializando arreglos
A two-dimensional array (an array of arrays) can be initialized as follows:
int[][] scores = new int[3][];
// Declara y crea un arreglo que contiene 3 referencias a arreglos de enteros

scores[0] = new int[4];


//El primer elemento en un arreglo de enteros de tamaño 4

scores[1] = new int[6];


//El segundo en un arreglo de enteros de tamaño 6

scores[2] = new int[1];


//El tercero es un arreglo de enteros de tamaño 1

Inicializando arreglos en un lazo


Los arreglos tienen un único atributo publico: length, que da el
número de elementos del arreglo.
String[] misPerros = new String[5];

for (int i=0; i<[Link] ;i++){


misPerros[i] = “Perrito ” + i;
}
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Alcance de variables
 El alcance de una variable indica la parte del programa
donde puede utilizarse. En base al alcance, las
variables se clasifican en:
 Variables locales
 Variables globales (de instancia)

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Alcance de Variables
 Variables locales
 Se declaran dentro de métodos o de
instrucciones asociadas a bucles for,
estructuras condicionales, etc.
 Su alcance se restringe al bloque de código
del método o de la instrucción.
 Deben estar inicializadas antes de ser
empleadas.

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Alcance de Variables
 Variables locales
 Ejemplo:
/** La variable entera j es local pues está
declarada e inicializada dentro de un bucle
for. Si se usa fuera del código del for se
producirá un error de compilación */
for(int j=0;i<=5;i++){
[Link](j);
[Link](“ Repeticion "+j);
}
[Link](j+1);

//Línea que provoca error de


Este código producirá la salida ????
compilación.
//Acceso incorrecto a una variable
local
[Link](j+1);
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Alcance de Variables
 Variables de instancia (o globales)
 Se declaran después de la clase y fuera de cualquier
método. Los valores que asumen para cada objeto
(instancia) constituyen el estado o conjunto de atributos
del objeto.
 Su alcance es global, es decir, las pueden utilizar
directamente todos lo métodos no estáticos de la clase.
 Para acceder desde el método main o
desde cualquier otro método estático a una variable de
instancia es necesario crear un objeto de la clase.
 Al hecho de crear un objeto de una clase se le conoce
también como instanciar la clase. Si no se inicializan
explícitamente, asumen el valor nulo o su valor literal por
defecto, una vez instanciada la clase.
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Alcance de Variables: Variables de
instancia
Estándar de programación
– Las variables de instancia se inicializan con
valores por defecto:
– Variables numéricas se establecen en cero
– Variables booleanas se establecen en false
– Variables de referencia a objetos se establecen en null

– Todas las variables locales serán declaradas al


comienzo del cuerpo de un método.
– Inicializar las variables locales antes de utilizarlas
(no se inicializan por defecto como las de la
clase).

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Alcance de Variables: Variables de
instancia

Ing. Karla Abad Sacoto, Docente CISC - Soft


ware
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware
Ing. Karla Abad Sacoto, Docente CISC - Soft
ware

También podría gustarte