Programacion orientada a objetos 2

M
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>
1 de 21

Recomendados

Analisis Y DiseñO Orientado A Objetos por
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
51.1K visualizações19 slides
11 Curso de POO en java - métodos constructores y toString() por
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
34.4K visualizações13 slides
Poo 3 herencia por
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
5.3K visualizações11 slides
Clases y objetos de java por
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
2.9K visualizações86 slides
Programación Orientada a Objetos - Unidad 2: clases y objetos por
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
859 visualizações60 slides
Multitarea e hilos en java con ejemplos por
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosCarlos Anibal Riascos Hurtado
9.1K visualizações15 slides

Mais conteúdo relacionado

Mais procurados

Diagramas de clases por
Diagramas de clasesDiagramas de clases
Diagramas de clasesJuan Pablo Bustos Thames
45.9K visualizações38 slides
Clases y objetos en Java por
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en JavaDaniel Gomez Jaramillo
2.6K visualizações24 slides
Polimorfismo resumen por
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumenwouyrmz
3.2K visualizações4 slides
exception handling in java.ppt por
exception handling in java.pptexception handling in java.ppt
exception handling in java.pptVarshini62
112 visualizações25 slides
encapsulation, inheritance, overriding, overloading por
encapsulation, inheritance, overriding, overloadingencapsulation, inheritance, overriding, overloading
encapsulation, inheritance, overriding, overloadingShivam Singhal
9.4K visualizações29 slides
Pilas estáticas. IESIT por
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESITBlanca Elia Jiménez Guzmán
3K visualizações10 slides

Mais procurados(20)

Polimorfismo resumen por wouyrmz
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumen
wouyrmz3.2K visualizações
exception handling in java.ppt por Varshini62
exception handling in java.pptexception handling in java.ppt
exception handling in java.ppt
Varshini62112 visualizações
encapsulation, inheritance, overriding, overloading por Shivam Singhal
encapsulation, inheritance, overriding, overloadingencapsulation, inheritance, overriding, overloading
encapsulation, inheritance, overriding, overloading
Shivam Singhal9.4K visualizações
5.manejo de excepciones por Santiago Bernal
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
Santiago Bernal10.7K visualizações
Estructura de datos: lista, pilas y colas por Huascar Génere
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
Huascar Génere36.1K visualizações
Normalizacion de bases de datos por Caro_Noirgean
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
Caro_Noirgean15.5K visualizações
Polimorfismo en Java por Estefani Lucero
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
Estefani Lucero3.8K visualizações
Estructura de datos listas, pilas y colas por Elias Peña
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
Elias Peña37.2K visualizações
10 Curso de POO en java - métodos modificadores y analizadores por Clara Patricia Avella Ibañez
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
Clara Patricia Avella Ibañez6.4K visualizações
Diagrama de clases por Nedoww Haw
Diagrama de clasesDiagrama de clases
Diagrama de clases
Nedoww Haw207.3K visualizações
Conceptos poo (presentación1) por programadorjavablog
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
programadorjavablog6.6K visualizações
Greenfoot 6 por Christian Medina
Greenfoot 6Greenfoot 6
Greenfoot 6
Christian Medina2K visualizações
Inner join por Israel Rey
Inner joinInner join
Inner join
Israel Rey1K visualizações
Unidad 4 Mad Modelado Analisis Casos De Uso por Sergio Sanchez
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
Sergio Sanchez21.7K visualizações
Manual de conexion a una base de datos con gambas por Moposita1994
Manual de conexion a una base de datos con gambasManual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambas
Moposita1994459 visualizações

Similar a Programacion orientada a objetos 2

Información básica Java por
Información básica JavaInformación básica Java
Información básica JavaFordBull2er
599 visualizações184 slides
Programacion orientada a objetos 1 por
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1mellcv
668 visualizações14 slides
JAVA_BASICO_modo_consola_introduccion.pptx por
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
8 visualizações37 slides
2introduccionallenguajejava 141109171757-conversion-gate02 por
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
157 visualizações20 slides
2) introduccion al lenguaje java por
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
1.9K visualizações20 slides
INTRODUCCION LENGUAJE JAVA por
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAKarla Estefania Villanueva Epigmenio
354 visualizações20 slides

Similar a Programacion orientada a objetos 2(20)

Información básica Java por FordBull2er
Información básica JavaInformación básica Java
Información básica Java
FordBull2er599 visualizações
Programacion orientada a objetos 1 por mellcv
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
mellcv668 visualizações
JAVA_BASICO_modo_consola_introduccion.pptx por FamiliaAyluardo
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
FamiliaAyluardo8 visualizações
2introduccionallenguajejava 141109171757-conversion-gate02 por Krizztiina Pacheko
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko157 visualizações
2) introduccion al lenguaje java por Margarita Romero
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
Margarita Romero1.9K visualizações
Contructores en java(grupo 8) por Manuel Ch.
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
Manuel Ch.4.3K visualizações
manual de C# por Brendita Martinez
manual de C#manual de C#
manual de C#
Brendita Martinez176 visualizações
Manual de c# por Ana Ruth G H
Manual de c#Manual de c#
Manual de c#
Ana Ruth G H802 visualizações
Manual c# 2 por Elizabeth Reyna
Manual c# 2Manual c# 2
Manual c# 2
Elizabeth Reyna321 visualizações
Clases metodos y atributos por Robert Wolf
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
Robert Wolf597 visualizações
Sesion 07 nivel_acceso_miembros_clases por ecodereck
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
ecodereck328 visualizações
Constructor Y Destructor por Tecnologico
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
Tecnologico19.6K visualizações
Metodos Constructor Y Destructor por rezzaca
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
rezzaca7.1K visualizações
Constructores en Java por León Arenas Rivera
Constructores en JavaConstructores en Java
Constructores en Java
León Arenas Rivera263 visualizações
Operadores poo por RochaJaqueline
Operadores pooOperadores poo
Operadores poo
RochaJaqueline3.7K visualizações
Framework .NET 3.5 07 Programación orientada a objetos por Antonio Palomares Sender
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
Antonio Palomares Sender951 visualizações

Mais de mellcv

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN por
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNmellcv
1.9K visualizações21 slides
INTERACCIÓN ENTRE CLASES, HERENCIAS por
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASmellcv
869 visualizações24 slides
Asp .net por
Asp .netAsp .net
Asp .netmellcv
848 visualizações43 slides
Asp por
AspAsp
Aspmellcv
232 visualizações6 slides
Eventos por
EventosEventos
Eventosmellcv
251 visualizações11 slides
ARREGLOS EN JAVA, VECTORES Y MATRICES por
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESmellcv
3.1K visualizações15 slides

Mais de mellcv(20)

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN por mellcv
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
mellcv1.9K visualizações
INTERACCIÓN ENTRE CLASES, HERENCIAS por mellcv
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIAS
mellcv869 visualizações
Asp .net por mellcv
Asp .netAsp .net
Asp .net
mellcv848 visualizações
Asp por mellcv
AspAsp
Asp
mellcv232 visualizações
Eventos por mellcv
EventosEventos
Eventos
mellcv251 visualizações
ARREGLOS EN JAVA, VECTORES Y MATRICES por mellcv
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICES
mellcv3.1K visualizações
Arquitectura basada en componentes por mellcv
Arquitectura basada en componentesArquitectura basada en componentes
Arquitectura basada en componentes
mellcv881 visualizações
Poc 2 por mellcv
Poc 2Poc 2
Poc 2
mellcv257 visualizações
Desarrollo de software basado en componentes por mellcv
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
mellcv694 visualizações
Poc por mellcv
PocPoc
Poc
mellcv274 visualizações
Programacion orientada a componentes por mellcv
Programacion orientada a componentesProgramacion orientada a componentes
Programacion orientada a componentes
mellcv1.1K visualizações
PAQUETES EN JAVA por mellcv
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
mellcv1.8K visualizações
EXCEPCIONES JAVA por mellcv
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
mellcv1.5K visualizações
MODIFICADORES Y METODOS DE ACCESO por mellcv
MODIFICADORES Y METODOS DE ACCESOMODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESO
mellcv1.8K visualizações
INSTANCIAS Y CONSTRUCTORES EN JAVA por mellcv
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVA
mellcv898 visualizações
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA por mellcv
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
mellcv179 visualizações
Lenguaje de programacion java, conceptos por mellcv
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
mellcv356 visualizações
Principios fundamentales de la programación orientado a objetos por mellcv
 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
mellcv4.2K visualizações
Introduccion al lenguage java por mellcv
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage java
mellcv263 visualizações
Programar aplicaciones windows forms por mellcv
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows forms
mellcv55 visualizações

Último

Excel avanzado (1) (1).pdf por
Excel avanzado (1) (1).pdfExcel avanzado (1) (1).pdf
Excel avanzado (1) (1).pdfKagomeHigurashi11
6 visualizações7 slides
excelavanzado1-231020003159-be608ddc.pdf por
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdfsarahloradorado
11 visualizações23 slides
Fundamentos De Electricidad y Electrónica equipo 5.pdf por
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdfcoloradxmaria
13 visualizações14 slides
Tecnologia (6).pdf por
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdffspro99
6 visualizações6 slides
proyecto_ salvando tortugas.pdf por
proyecto_ salvando tortugas.pdfproyecto_ salvando tortugas.pdf
proyecto_ salvando tortugas.pdfCamilaCordoba30
8 visualizações1 slide
La nueva era. por
La nueva era.La nueva era.
La nueva era.msebastianalvarezz
11 visualizações3 slides

Último(20)

Excel avanzado (1) (1).pdf por KagomeHigurashi11
Excel avanzado (1) (1).pdfExcel avanzado (1) (1).pdf
Excel avanzado (1) (1).pdf
KagomeHigurashi116 visualizações
excelavanzado1-231020003159-be608ddc.pdf por sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 visualizações
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria13 visualizações
Tecnologia (6).pdf por fspro99
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdf
fspro996 visualizações
proyecto_ salvando tortugas.pdf por CamilaCordoba30
proyecto_ salvando tortugas.pdfproyecto_ salvando tortugas.pdf
proyecto_ salvando tortugas.pdf
CamilaCordoba308 visualizações
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf por 8m6zpwytgs
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdffundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
8m6zpwytgs8 visualizações
proyecto lavadora.pdf por CamilaCordoba30
proyecto  lavadora.pdfproyecto  lavadora.pdf
proyecto lavadora.pdf
CamilaCordoba3011 visualizações
programacion orientada a objetos_sebastian segura barreto.pptx por sebastiansegura25
programacion orientada a objetos_sebastian segura barreto.pptxprogramacion orientada a objetos_sebastian segura barreto.pptx
programacion orientada a objetos_sebastian segura barreto.pptx
sebastiansegura258 visualizações
excelavanzado1-231020003159-be608ddc.pdf por orianaisabellaramire
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
orianaisabellaramire16 visualizações
Dominios de Internet.pdf por AnahisZambrano
Dominios de Internet.pdfDominios de Internet.pdf
Dominios de Internet.pdf
AnahisZambrano7 visualizações
Google alternativo, para volar por corpbracat
Google alternativo, para volarGoogle alternativo, para volar
Google alternativo, para volar
corpbracat8 visualizações
Tema 3. Fuentes de Energía no renovables.ppt por AlmuPe
Tema 3. Fuentes de Energía no renovables.pptTema 3. Fuentes de Energía no renovables.ppt
Tema 3. Fuentes de Energía no renovables.ppt
AlmuPe185 visualizações
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira6 visualizações
Taller de Electricidad y Electrónica.docx por juantrujillosolano10
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docx
juantrujillosolano1010 visualizações
Dominios de internet.pdf por NahomiBanchen
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdf
NahomiBanchen8 visualizações
PyGoat Analizando la seguridad en aplicaciones Django.pdf por Jose Manuel Ortega Candel
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
Jose Manuel Ortega Candel5 visualizações
Excel avanzado.pdf por NyobeMahechaDvila
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
NyobeMahechaDvila46 visualizações
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf por samuellopezrivera928
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdfTALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf
samuellopezrivera9285 visualizações
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... por codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura56 visualizações

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>