SlideShare una empresa de Scribd logo
1 de 21
Programación
Orientada a
Objetos -Java
Parte 2
FERNANDO SOLIS
El lenguaje de programación Java 2
Constructores
• Procedimiento con el mismo nombre que la clase
• Se invoca automáticamente cada vez que se crea un
objeto de la clase
• No pueden especificar tipos ni valores de retorno
• Permite sobrecarga para especificar formas distintas de
inicializar los objetos
• Si no se define, el compilador crea uno por defecto sin
argumentos que inicializa los atributos a los valores por
defecto
• El programador también puede definir un constructor sin
argumentos.
El lenguaje de programación Java 3
Constructor de copia
public class Ejemplo{
private int at1;
…
public Ejemplo (Ejemplo e){
at1 = e.at1;
}
}
4
Ejemplo: Clase Contador v1
public class Contador{
// Variables de instancia
private int valor;
// Constructores
public Contador (){
valor = 0;
}
public void incrementar(){
valor++;
}
public int getValor(){
return valor;
}
}
El lenguaje de programación Java 5
semántica referencia!!!
Creación de objetos
• Un objeto es una instancia de una clase.
• La creación de un objeto se realiza en tres pasos
– Declaración, proporcionar un nombre al objeto
Contador miContador; (null)
– Instanciación, asignar memoria al objeto
miContador = new Contador();
objContador
– Inicialización, opcionalmente se pueden proporcionar valores iniciales
a las variables de instancia del objeto en la declaración o mediante
CONSTRUCTORES.
El lenguaje de programación Java 6
Ejemplo. Clase de prueba v1
public class TestContador{
public static void main (String [] args){
Contador c = new Contador();
c.incrementar();
c.incrementar();
System.out.println(“C = “ + c.getValor());
}
}
El lenguaje de programación Java 7
Igualdad vs. Identidad
¡¡OJO!!
== y != compara REFERENCIAS de manera que:
Contador c1 = new Contador();
Contador c2 = new Contador();
c1 == c2 --> false, luego c1!=c2
c1.equals(c2) --> true compara el CONTENIDO de los objetos
si lo redefinimos en la clase
(por defecto es igual que ==)
47
0
c2 valor
valorInicial
47
0
c1 valor
valorInicial
El lenguaje de programación Java 8
this
• Invocación a otro de los constructores de la clase:
public Contador (int i) {
valor=i;
valorInicial=i;
}
public Contador(){
this(0);
}
• Instancia actual:
– Pasar el objeto actual como parámetro de otro método
servicio.añadir(this);
– En cualquier método del objeto actual
this.otroMetodo();
El lenguaje de programación Java 9
Reglas de alcance
• Porción del programa en el que se puede hacer referencia al
identificador
• Un identificador debe ser único dentro de su ámbito
• Alcance de CLASE:
– los métodos de una clase pueden modificar directamente los atributos de
clase y de instancia
– Un método de clase (static) sólo puede acceder a atributos de clase.
• Alcance de Bloque:
– variables locales y parámetros de un método
– cuando se anidan los bloques y existen dos identificadores con nombres
iguales el compilador da error de sintaxis (variable ya definida)
– si una variable local tiene igual nombre que un atributo de la clase éste
queda oculto.
El lenguaje de programación Java 10
Reglas de alcance
class MiClase{
…
public static void metodo1(…){
{
…//bloque
}
}
public void metodo2(…){
…
}
}
variables de clase
parámetros
variables locales
var. de instancia
parámetros
variables locales
El lenguaje de programación Java 11
El método main
• Clase que conduce la aplicación
• Al ejecutar el programa se busca el método main que
contiene dicha clase:
public class Eco {
public static void main (String[] args){
for (int i = 0; i<args.length;i++)
System.out.print(args[i] + “ “);
}
}
• String[] args: parámetros del programa
• Ejemplo de invocación:
java Eco repite esto
• Puede haber más de un main, pero sólo se ejecutará uno
El lenguaje de programación Java 12
Normas de estilo
No es que existan reglas pero es conveniente seguir unas
normas para que el código sea mas legible:
• nombre de CLASE empieza por Mayúsculas
• nombre de métodos y atributos por minúsculas
• las CONSTANTES con MAYÚSCULAS completamente
• cuando empieza una nueva palabra la ponemos en
mayúsculas ej: dibujarRectangulo
13
Ejemplo: Clase Contador v2 (1/2)
public class Contador{
// Variable de clase
private static int nextCodigo=1;
// Variables de instancia
private int codigo;
private int valor;
private int valorInicial;
private int step;
// Constructores
public Contador (int valor, int step){
codigo =nextCodigo;
this.valor = valor;
valorInicial = valor;
this.step = step;
++nextCodigo;
}
public Contador(){
this(0,1);
}
El lenguaje de programación Java 14
Ejemplo: Clase Contador v2 (2/2)
// Métodos de instancia
public void incrementar(){
valor+=step;
}
public void decrementar(){
if (valor>=step) valor-=step;
else valor=0;
}
public void reset(){
valor=valorInicial;
}
public int getValor(){
return valor;
}
public int getCodigo(){
return codigo;
}
}
El lenguaje de programación Java 15
Ejemplo. Clase de prueba
public class TestContador{
public static void main (String [] args){
Contador c1 = new Contador();
Contador c2 = new Contador (0, 10);
c1.incrementar();
c2.incrementar();
System.out.println(“C1 = “ + c1.getValor());
System.out.println(“C2 = “ + c2.getValor());
}
}
16
Paquetes
• Agrupar todas las clases relacionadas
//MiClass.java
package miBiblioteca;
public class MiClase{ //...
• Se coloca al comienzo del fichero
• Indica que las clases públicas que contenga está accesible a cualquiera que
incluya:
import miBiblioteca.MiClase; o bien
import miBiblioteca.*;
• Las clases que no tienen un nombre de paquete están en el paquete por
defecto (Default Package)
• Soporta el concepto de jerarquía de paquetes (estilo directorio)
ej: import miPaquete.miSubPaquete.MiClase;
El lenguaje de programación Java 17
Control de acceso
• Designar qué clases de una biblioteca (miBiblio) están
disponibles desde fuera del paquete
• Controlan si el cliente puede crear objetos de la clase
public class MiClase { ... }
Entonces import miBilio.MiClase;
• Modificador de acceso por omisión indica visibilidad a
nivel de paquete.
– Tanto la clase como atributos y métodos.
• Una clase NUNCA puede ser private.
El lenguaje de programación Java 18
Estructura de un proyecto
modelo
Contador
valor
sumar()
restar()
vista
VentanaContador
...
...
Contiene nom_proyecto.jpx
Ficheros .class
Ficheros .java
• Una carpeta por cada paquete
• Cada carpeta contiene los ficheros corres-
pondientes a las clases del paquete.
•Coincidencia EXACTA de nombres.
El lenguaje de programación Java 19
Paquetes básicos del sistema
• java.lang: para funciones del lenguaje
• java.util: para utilidades adicionales
• java.io: para manejo de ficheros
• java.awt: para diseño gráfico e interfaz de usuario
• java.awt.event: para gestionar eventos
• javax.swing: nuevo diseño de GUI
• java.net: para comunicaciones
…
El lenguaje de programación Java 20
Comentarios
• Hay tres tipos de comentarios:
// comentarios para una sola línea
/*
comentarios de una o más líneas
*/
/** comentario de documentación, de una o más líneas
justo antes del elemento (clase, var, met)
*/
• Los comentarios de documentación pueden llevar etiquetas
• La documentación se genera con javadoc en formato html
El lenguaje de programación Java 21
... Comentarios
Las etiquetas pueden ser:
@see <referencia a otra clase>
- Etiquetas de documentación de clases:
@version <información sobre la versión>
@author <nombre autor>
- Etiquetas de documentación de métodos:
@param <nombre argumento><descripción>
@return <descripción>
@exception <excepción>
- Otras: (no aparece en la documentación)
@todo <comentario sobre algún tema pendiente>

Más contenido relacionado

La actualidad más candente

Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseintHEIVER CUESTA
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
Ejemplo de uno a uno
Ejemplo de uno a unoEjemplo de uno a uno
Ejemplo de uno a unorafita07zr
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Cuestionario
CuestionarioCuestionario
CuestionarioJose Nava
 
Ejercicios de XSD
Ejercicios de XSDEjercicios de XSD
Ejercicios de XSDAbrirllave
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarioselcapo2008
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaAme Linares Vivas
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseintDon Augusto
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en PseintMonjeOneble
 
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)Martin Murciego
 
Python-02| Input, Output & Import
Python-02| Input, Output & ImportPython-02| Input, Output & Import
Python-02| Input, Output & ImportMohd Sajjad
 

La actualidad más candente (20)

Apuntes De Algoritmos
Apuntes De AlgoritmosApuntes De Algoritmos
Apuntes De Algoritmos
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Ejemplo de uno a uno
Ejemplo de uno a unoEjemplo de uno a uno
Ejemplo de uno a uno
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Ejercicios de XSD
Ejercicios de XSDEjercicios de XSD
Ejercicios de XSD
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en Java
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en Pseint
 
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
 
Python-02| Input, Output & Import
Python-02| Input, Output & ImportPython-02| Input, Output & Import
Python-02| Input, Output & Import
 
Contadores y Acumuladores
Contadores y AcumuladoresContadores y Acumuladores
Contadores y Acumuladores
 

Similar a Programacion orientada a objetos 2

Información básica Java
Información básica JavaInformación básica Java
Información básica JavaFordBull2er
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1mellcv
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)Manuel Ch.
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributosRobert Wolf
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesecodereck
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y DestructorTecnologico
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructorrezzaca
 

Similar a Programacion orientada a objetos 2 (20)

Información básica Java
Información básica JavaInformación básica Java
Información básica Java
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 

Más de mellcv

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNmellcv
 
INTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASmellcv
 
Asp .net
Asp .netAsp .net
Asp .netmellcv
 
Eventos
EventosEventos
Eventosmellcv
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESmellcv
 
Arquitectura basada en componentes
Arquitectura basada en componentesArquitectura basada en componentes
Arquitectura basada en componentesmellcv
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesmellcv
 
Programacion orientada a componentes
Programacion orientada a componentesProgramacion orientada a componentes
Programacion orientada a componentesmellcv
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVAmellcv
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVAmellcv
 
MODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESOMODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESOmellcv
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAmellcv
 
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAmellcv
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosmellcv
 
Principios fundamentales de la programación orientado a objetos
 Principios fundamentales de la programación orientado a objetos  Principios fundamentales de la programación orientado a objetos
Principios fundamentales de la programación orientado a objetos mellcv
 
Introduccion al lenguage java
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage javamellcv
 
Programar aplicaciones windows forms
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows formsmellcv
 

Más de mellcv (20)

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
 
INTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIAS
 
Asp .net
Asp .netAsp .net
Asp .net
 
Asp
AspAsp
Asp
 
Eventos
EventosEventos
Eventos
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICES
 
Arquitectura basada en componentes
Arquitectura basada en componentesArquitectura basada en componentes
Arquitectura basada en componentes
 
Poc 2
Poc 2Poc 2
Poc 2
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Poc
PocPoc
Poc
 
Programacion orientada a componentes
Programacion orientada a componentesProgramacion orientada a componentes
Programacion orientada a componentes
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
MODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESOMODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESO
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVA
 
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
Principios fundamentales de la programación orientado a objetos
 Principios fundamentales de la programación orientado a objetos  Principios fundamentales de la programación orientado a objetos
Principios fundamentales de la programación orientado a objetos
 
Introduccion al lenguage java
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage java
 
Programar aplicaciones windows forms
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows forms
 

Último

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (19)

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Programacion orientada a objetos 2

  • 2. El lenguaje de programación Java 2 Constructores • Procedimiento con el mismo nombre que la clase • Se invoca automáticamente cada vez que se crea un objeto de la clase • No pueden especificar tipos ni valores de retorno • Permite sobrecarga para especificar formas distintas de inicializar los objetos • Si no se define, el compilador crea uno por defecto sin argumentos que inicializa los atributos a los valores por defecto • El programador también puede definir un constructor sin argumentos.
  • 3. El lenguaje de programación Java 3 Constructor de copia public class Ejemplo{ private int at1; … public Ejemplo (Ejemplo e){ at1 = e.at1; } }
  • 4. 4 Ejemplo: Clase Contador v1 public class Contador{ // Variables de instancia private int valor; // Constructores public Contador (){ valor = 0; } public void incrementar(){ valor++; } public int getValor(){ return valor; } }
  • 5. El lenguaje de programación Java 5 semántica referencia!!! Creación de objetos • Un objeto es una instancia de una clase. • La creación de un objeto se realiza en tres pasos – Declaración, proporcionar un nombre al objeto Contador miContador; (null) – Instanciación, asignar memoria al objeto miContador = new Contador(); objContador – Inicialización, opcionalmente se pueden proporcionar valores iniciales a las variables de instancia del objeto en la declaración o mediante CONSTRUCTORES.
  • 6. El lenguaje de programación Java 6 Ejemplo. Clase de prueba v1 public class TestContador{ public static void main (String [] args){ Contador c = new Contador(); c.incrementar(); c.incrementar(); System.out.println(“C = “ + c.getValor()); } }
  • 7. El lenguaje de programación Java 7 Igualdad vs. Identidad ¡¡OJO!! == y != compara REFERENCIAS de manera que: Contador c1 = new Contador(); Contador c2 = new Contador(); c1 == c2 --> false, luego c1!=c2 c1.equals(c2) --> true compara el CONTENIDO de los objetos si lo redefinimos en la clase (por defecto es igual que ==) 47 0 c2 valor valorInicial 47 0 c1 valor valorInicial
  • 8. El lenguaje de programación Java 8 this • Invocación a otro de los constructores de la clase: public Contador (int i) { valor=i; valorInicial=i; } public Contador(){ this(0); } • Instancia actual: – Pasar el objeto actual como parámetro de otro método servicio.añadir(this); – En cualquier método del objeto actual this.otroMetodo();
  • 9. El lenguaje de programación Java 9 Reglas de alcance • Porción del programa en el que se puede hacer referencia al identificador • Un identificador debe ser único dentro de su ámbito • Alcance de CLASE: – los métodos de una clase pueden modificar directamente los atributos de clase y de instancia – Un método de clase (static) sólo puede acceder a atributos de clase. • Alcance de Bloque: – variables locales y parámetros de un método – cuando se anidan los bloques y existen dos identificadores con nombres iguales el compilador da error de sintaxis (variable ya definida) – si una variable local tiene igual nombre que un atributo de la clase éste queda oculto.
  • 10. El lenguaje de programación Java 10 Reglas de alcance class MiClase{ … public static void metodo1(…){ { …//bloque } } public void metodo2(…){ … } } variables de clase parámetros variables locales var. de instancia parámetros variables locales
  • 11. El lenguaje de programación Java 11 El método main • Clase que conduce la aplicación • Al ejecutar el programa se busca el método main que contiene dicha clase: public class Eco { public static void main (String[] args){ for (int i = 0; i<args.length;i++) System.out.print(args[i] + “ “); } } • String[] args: parámetros del programa • Ejemplo de invocación: java Eco repite esto • Puede haber más de un main, pero sólo se ejecutará uno
  • 12. El lenguaje de programación Java 12 Normas de estilo No es que existan reglas pero es conveniente seguir unas normas para que el código sea mas legible: • nombre de CLASE empieza por Mayúsculas • nombre de métodos y atributos por minúsculas • las CONSTANTES con MAYÚSCULAS completamente • cuando empieza una nueva palabra la ponemos en mayúsculas ej: dibujarRectangulo
  • 13. 13 Ejemplo: Clase Contador v2 (1/2) public class Contador{ // Variable de clase private static int nextCodigo=1; // Variables de instancia private int codigo; private int valor; private int valorInicial; private int step; // Constructores public Contador (int valor, int step){ codigo =nextCodigo; this.valor = valor; valorInicial = valor; this.step = step; ++nextCodigo; } public Contador(){ this(0,1); }
  • 14. El lenguaje de programación Java 14 Ejemplo: Clase Contador v2 (2/2) // Métodos de instancia public void incrementar(){ valor+=step; } public void decrementar(){ if (valor>=step) valor-=step; else valor=0; } public void reset(){ valor=valorInicial; } public int getValor(){ return valor; } public int getCodigo(){ return codigo; } }
  • 15. El lenguaje de programación Java 15 Ejemplo. Clase de prueba public class TestContador{ public static void main (String [] args){ Contador c1 = new Contador(); Contador c2 = new Contador (0, 10); c1.incrementar(); c2.incrementar(); System.out.println(“C1 = “ + c1.getValor()); System.out.println(“C2 = “ + c2.getValor()); } }
  • 16. 16 Paquetes • Agrupar todas las clases relacionadas //MiClass.java package miBiblioteca; public class MiClase{ //... • Se coloca al comienzo del fichero • Indica que las clases públicas que contenga está accesible a cualquiera que incluya: import miBiblioteca.MiClase; o bien import miBiblioteca.*; • Las clases que no tienen un nombre de paquete están en el paquete por defecto (Default Package) • Soporta el concepto de jerarquía de paquetes (estilo directorio) ej: import miPaquete.miSubPaquete.MiClase;
  • 17. El lenguaje de programación Java 17 Control de acceso • Designar qué clases de una biblioteca (miBiblio) están disponibles desde fuera del paquete • Controlan si el cliente puede crear objetos de la clase public class MiClase { ... } Entonces import miBilio.MiClase; • Modificador de acceso por omisión indica visibilidad a nivel de paquete. – Tanto la clase como atributos y métodos. • Una clase NUNCA puede ser private.
  • 18. El lenguaje de programación Java 18 Estructura de un proyecto modelo Contador valor sumar() restar() vista VentanaContador ... ... Contiene nom_proyecto.jpx Ficheros .class Ficheros .java • Una carpeta por cada paquete • Cada carpeta contiene los ficheros corres- pondientes a las clases del paquete. •Coincidencia EXACTA de nombres.
  • 19. El lenguaje de programación Java 19 Paquetes básicos del sistema • java.lang: para funciones del lenguaje • java.util: para utilidades adicionales • java.io: para manejo de ficheros • java.awt: para diseño gráfico e interfaz de usuario • java.awt.event: para gestionar eventos • javax.swing: nuevo diseño de GUI • java.net: para comunicaciones …
  • 20. El lenguaje de programación Java 20 Comentarios • Hay tres tipos de comentarios: // comentarios para una sola línea /* comentarios de una o más líneas */ /** comentario de documentación, de una o más líneas justo antes del elemento (clase, var, met) */ • Los comentarios de documentación pueden llevar etiquetas • La documentación se genera con javadoc en formato html
  • 21. El lenguaje de programación Java 21 ... Comentarios Las etiquetas pueden ser: @see <referencia a otra clase> - Etiquetas de documentación de clases: @version <información sobre la versión> @author <nombre autor> - Etiquetas de documentación de métodos: @param <nombre argumento><descripción> @return <descripción> @exception <excepción> - Otras: (no aparece en la documentación) @todo <comentario sobre algún tema pendiente>