SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Prof. Renny Batista Programación IIIOctubre, 2015
Programación Orientada a Objetos – Parte I
Contenido
Evolución de la Programación
Introducción a la programación orientada a objetos (POO)
Conceptos Básicos de la POO
Clases
Objetos
Atributos y Métodos
Sobrecarga de métodos
Encapsulación
Constructores
Paquetes
POO - Evolución
Evolución Tecnológica
Programación Hexadecimal
Programación Ensamblador
Programación alto nivel
Programación Orientada a Objetos
Evolución Conceptual
Programación Lineal
Programación Estructurada
Programación Orientada a Objetos
POO – Evolución de los lenguajes orientados a objetos
Algol
PascalCLU CSmalltalk
Simula
Basic
Ada
Ada - 95
Object Pascal
Borland Pascal
Delphi
Actor Objetive-C C++ Visual Basic
Visual Basic .NetJava
Java2
C#
POO - Clasificación de los lenguajes orientados a objetos
Clasificación de los lenguajes orientados a objetos
Wegner, Peter [1987]
Basados en
Objetos
Basados en
Clases
Orientados
a Objetos
+ clases
+ herencia
POO - Clasificación de los lenguajes orientados a objetos
La clasificación de Wegner divide los lenguajes en tres categorías:
Lenguajes basados en objetos que soportan objetos Es decir, disponen de
componentes caracterizados por un conjunto de operaciones (comportamiento) y un
estado.
Lenguajes basados en clases que implican objetos y clases Es decir, disponen de
componentes tipo clase con operaciones y estado común. Una clase de un objeto se
construye con un «interfaz» que especifica las operaciones posibles y un «cuerpo»
que implementa dichas operaciones.
Lenguajes orientados a objetos que además de objetos y clases ofrecen mecanismos
de herencia entre clases. Esto es, la posibilidad de derivar operaciones y atributos de
una clase (superclase) a sus subclases.
POO – Conceptos Básicos
POO no es :
Un sistema de ventanas, ratones, iconos, etc
Un lenguaje de programación.
POO es :
La programación orientada a objeto puede describirse como el
conjunto de disciplinas (ingeniería) que desarrollan y modelizan
software que facilitan la construcción de sistemas complejos a partir
de componentes.
POO – Conceptos Básicos
“Tenemos un carro y queremos aumentar su potencia…”
Opción Tradicional :
Construir un carro nuevo
Opción POO :
Cambiamos el carburador
Cambiamos las ruedas por otras más anchas
Añadimos un sistema turbo
Características de la POO
Los cuatro pilares de la programación orientada a objetos son: Abstracción,
Encapsulación, Herencia y Polimorfismo.
Elementos de la POO en Java
Identificación de clases y objetos
Cuando se diseña un sistema orientado a objetos, se preguntan:
¿Por dónde comenzar?
La respuesta es primero encontrar clases, añadirles métodos y,
posteriormente, atributos o datos de la clase.
La regla más simple para identificar clases es buscar nombres en el análisis del
problema y en su dominio de definición; los métodos, por el contrario,
corresponden a verbos; por ejemplo, en un sistema de operaciones en un
banco, algunos nombres de clase pueden ser.
Clases
Concepto de clase
Una clase es una plantilla a partir de la cual se puede crear objetos. Una clase es una
estructura de datos que encapsula variables (atributos) y funciones miembro (métodos).
Se puede decir que una clase es una colección de objetos similares.
public class Nombre_clase {
// Declaración de campos o atributos
// Definición de métodos
}
La palabra class puede estar precedida por el modificador de acceso public.
La clase se guarda en un archivo .java cuyo nombre tiene que ser exactamente el
mismo que el de la clase.
Una vez definida la clase con sus métodos, los programadores podrán crear objetos de
la clase (instancias).
Clases
Representación de una Clase (UML)
Objetos
Concepto de objeto.
Un objeto es una instancia de una clase, un ejemplo concreto de esa clase; al
igual que una variable es una instancia de un tipo de dato.
Para crear un objeto se llama al constructor de la clase (un método o función con
el mismo nombre que la clase) con el operador: new.
public class Principal {
public static void main(){
Nombre_clase obj = new Nombre_clase();
obj.miMetodo();
}
}
Variable que almacenará la
referencia al objeto
Creación del objetoLlamada a los métodos
del objeto
Objetos
Atributos
Propiedad o atributo:
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos),
que hace los datos visibles o no desde fuera del objeto y esto se define como las
características predeterminadas de un objeto, y cuyo valor puede ser alterado por
la ejecución de algún método.
public class Nombre_de_clase{
Tipo_acceso tipo idAtributo;
// Otros atributos
}
Tipo de dato almacenado
en el atributo (Variable
primitiva o de algún tipo
de objeto).
Miembros de una clase (Métodos)
Los métodos definen el comportamiento de los objetos de una clase, estos métodos
pueden hacer uso campos o atributos para almacenar información sobre el objeto,
información que puede ser utilizada posteriormente por cualquiera de los métodos
del objeto.
Se accede a los miembros de un objeto a través del operador punto (.)
Un método también es un bloque de código al que se le puede transferir el control
de ejecución de un programa y ejecutar dicho código.
Los métodos se suelen dividir en los que se usan internamente en la clase (métodos
private) y los que son accesibles desde el exterior de la clase (métodos public).
Los métodos en Java siempre son miembros de clases, no hay métodos o funciones
fuera de ellas.
Métodos
Declaración de un método en Java:
public class Nombre_Clase {
[acceso] tipo idAtributo;
// Otros atributos
[acceso] tipo nombreMétodo (tipo parámetro1, tipo parámetro2,..) {
// Código del método
[return valor;]
}
// Otros métodos
}
Tipo de dato devuelto
por el método
Parámetros de Llamada
Valor devuelto por el
método
Métodos
Ejemplo:
Métodos
Invocación al Método
objeto.metodo(argumento1, argumento2,… argumento_n);
Llamada al
método
Declaración del
método
tipo método(tipo parametro1, parametro2,… argumento_n){
// Código del método
.
.
.
[return valor;] // valor de retorno (opcional)
}
Operador de invocación al
método (punto)
Métodos
Ejemplos de métodos
public void saludarVariasVeces (String nombre, int veces) {
for (int i=0; i<veces; i++ )
System.out.println(“Hola ”+nombre);
}
private int sumar (int n1, int n2) {
int s;
s = n1 + n2;
return (s);
}
Si un método no devuelve
ningún valor, entonces el tipo
de retorno es void.
El método main()
Toda aplicación Java está compuesta por al menos una clase. La cual debe contener
un método estático llamado main() que esta declarada con el modificador de acceso
public. Este método es el punto de arranque de un programa Java.
El método main() debe cumplir con las siguientes características:
Ha de ser un método publico.
Ha de ser un método estático.
No puede devolver ningún resultado (tipo void)
Ha de declarar un array de cadenas de caracteres en la lista de parámetros o un
número variable de argumentos.
public class Nombre_Clase {
public static void main(String[] args) {
// Código del método
}
}
public class Nombre_Clase {
public void asignarDatos(String nombre) {
}
public void asignarDatos(String nombre, int edad) {
//método sobrecargado
}
}
Sobrecarga de métodos
Otra de las ventajas que nos ofrece la POO es poder tener en una misma clase
varios métodos con el mismo nombre, a esto se le llama sobrecarga de métodos.
Para que un método pueda sobrecargarse es imprescindible que se de la siguiente
condición: cada versión del método debe distinguirse de las otras en el numero o
tipo de parámetro.
Constructores
¿Qué es un constructor?
Un constructor es una función o método que se llama automáticamente al crear un
objeto de una clase.
El constructor reserva memoria para el objeto e inicializa sus variables.
Los constructores no tienen valor de retorno (ni void) y tienen el mismo nombre que
la clase.
class Mi_Clase {
public Mi_Clase(){
// tareas a hacer al crear un objeto
// de tipo MiClase
}
}
Constructores
Múltiples constructores
Una clase puede tener varios constructores, cada uno con parámetros de entrada
diferentes.
Un constructor de una clase puede llamar a otro constructor de la misma clase en
su primera línea de código, usando el operador this.
Java crea automáticamente un constructor por defecto cuando no existen otros
constructores; tal constructor inicializa las variables de tipo numérico, como int o
float a cero, las variables de tipo boolean a true y las referencias a null.
class Mi_Clase {
private String cadena_texto;
// Este constructor llama al otro
public Mi_Clase(){
this(“Programación en Java..!”);
}
public Mi_Clase(String cadena) {
cadena_texto = cadena;
}
}
Atributos y Métodos Estáticos
Los atributos de clase static son compartidas por todos los objetos de la clase; se
declaran de igual manera que otra variable, añadiendo como prefijo la palabra
reservada static; por ejemplo:
Las variables miembro static no forman parte de los objetos de la clase sino de la
propia clase; se accede a ellas de la manera habitual, simplemente con su nombre;
desde el exterior se accede con el nombre de la clase, el selector y el nombre de la
variable
public class Conjunto {
private static int k = 0;
static Arraylist lista = null;
// ...
}
Atributos y Métodos Estáticos
La llamada a los métodos static se realiza mediante la clase:
NombreClase.metodo(), respetando las reglas de visibilidad; aunque también se
pueden llamar con un objeto de la clase, no es recomendable debido a que son
métodos dependientes de la clase y no de los objetos.
Los atributos estáticos deben llevar un modificador de acceso que permita su uso
desde el exterior de la misma, este puede ser public, protected o ninguno.
Un método estático no puede hacer referencia a elementos no estáticos de su misma
clase.
Un método estático no puede hacer uso de la palabra reservadas super y this.
Muchos métodos de la biblioteca Java se definen como static; por ejemplo, los
métodos matemáticos de la clase Math: Math.sin(), Math.sqrt().
Atributos y Métodos Estáticos
Declaración de un método estático
public class Nombre_Clase {
static tipo idAtributo;
// Otros atributos
static tipo nombreMétodo (parámetro…) {
// Código del método
[return valor;]
}
// Otros métodos
}
Palabra reservada para la
definición de elementos
estáticos
Biblioteca de clases de Java
Java incorpora una amplia biblioteca de clases e interfaces denominado Java API; sus
clases se pueden utilizar para formar otras nuevas, crear objetos, utilizar sus
métodos.
La biblioteca se organiza por paquetes que contienen colecciones de clases; para
emplear estas últimas sin tener que hacerlas preceder del nombre del paquete se
utiliza la sentencia import.
Algunos de los paquetes más utilizados son:
javax.swing
java.applet
java.awt
java.io
java.lang
java.net
java.util
Encapsulación
¿Qué es la encapsulación?
La encapsulación es una de las características de la POO mediante la cual se protege
el acceso a los datos y funciones de un programa mediante sus modificadores de
acceso.
Por defecto, una clase, sus funciones y sus variables solo son accesibles desde otra
clase del mismo paquete.
Modificadores de Acceso
Los modificadores de acceso se utilizan para definir la visibilidad de los miembros de una
clase (atributos y métodos) y de la propia clase. En Java existen cuatro modificadores de
acceso:
private: Su uso está restringido al interior de la clase. Lo que significa que solamente
puede ser utilizado en el interior de su misma clase. Este modificador puede ser
aplicado a métodos y atributos, pero no a la clase.
(ninguno): La no utilización de modificador proporciona lo que se conoce como el
acceso por defecto. Si una clase, atributo o método tienen acceso por defecto,
únicamente las clases de su mismo paquete tendrán acceso al mismo.
protected: Es empleado en la herencia. Cualquier método o atributo definido como
protected en una clase puede ser utilizado por cualquier otra clase de su mismo
paquete y además por cualquier subclase de ella, independientemente del paquete
en que esta se encuentre. Una clase no puede ser protected, sólo sus miembros.
public: Este modificador ofrece el máximo nivel de visibilidad. Un elemento (clase,
método o atributo) public será visible desde cualquier clase, independientemente del
paquete en que se encuentre.
java
Organización de Clases: Los Paquetes
Los paquetes es la forma que tiene Java de organizar los archivos con las clases
necesarias para construir las aplicaciones. Java incorpora varios de ellos, por
ejemplo: java.lang, java.io, o java.util, con las clases básicas para la
construcción de programas: System, String, Integer, Scanner.
Un paquete es un directorio en el que se almacenan los archivos .class con los
bytecodes de la clase; un paquete puede a su vez estar compuesto de otros
subpaquetes.
String.classlang
java.lang.StringPaquete
principal
Subpaquete
Clase
Organización de Clases: Los Paquetes
Ventajas de la utilización de paquetes
Permiten organizar las clases de manera estructurada. Los paquetes permiten
agrupar clases que tengan algún tipo de relación lógica. Esto facilita su localización
y utilización en un programa.
Evitan conflictos de nombres. Una clase localizada en un determinado paquete se
identifica mediante lo que se conoce como nombre cualificado de la clase. Este se
compone del nombre de la clase, precedido por los nombres de los subpaquetes
hasta llegar al paquete principal, separados por un “.” Esto permite que en un
programa se pueda utilizar dos o mas clases que tengan el mismo nombre y que se
encuentren en distintos paquetes.
Importar clases y paquetes de clases
Para importar una clase se utiliza la sentencia import al principio del archivo de código
.java, antes de la definición de la clase:
import java.util.Vector;
public class Nombre_Clase {
public static void main(String[] args) {
Vector v;
}
}
public class Nombre_Clase {
public static void main(String[] args) {
java.util.Vector v;
}
}
Nombre cualificado
de la clase
Importa la clase
para su utilización
Paquetes de uso general
java.lang: Incluye las clases de uso fundamentales para la realización de cualquier
programa en Java. Dado que sus clases son de uso común en los programas, el
compilador importa el paquete completo de forma implícita. Por lo que no deberá
utilizarse la sentencia import para importar clases de este paquete.
java.io: Contiene las clases para gestión de entradas y salidas de datos en java.
Independientemente del dispositivo E/S que se utilice. Java utiliza siempre las mismas
clases para enviar datos a la salida y leer datos de la entrada.
java.util: En este paquete encontraremos clases para utilidades varias, tales como el
tratamiento de colecciones de objetos, la manipulación de fechas o la construcción de
expresiones regulares.
Ejercicio
Se pretende desarrollar una aplicación que simule el funcionamiento de un cajero automático.
Primero se debe crear una clase llamada Cuenta, que administre las operaciones sobre la cuenta.
Además del constructor y atributos que se estimen necesarios la clase contará con los métodos:
void ingresar(float c). Agrega al saldo de la cuenta la cantidad recibida.
void extraer(float c) Descuenta del saldo la cantidad recibida. Tras la llamada a este método el
saldo no podrá quedar en negativo.
float getSaldo(). Devuelve el saldo actual.
Por otro lado, existirá una clase con el método main encargada de la captura y presentación de datos
y administración de la cuenta. Al iniciarse la aplicación se mostrará el siguiente menú.
1. Crear cuenta vacía
2. Crear cuenta saldo inicial
3. Ingresar dinero
4. Sacar dinero
5. Ver saldo
6. Salir
Ejercicio Continuación
La opción 1 crea un objeto Cuenta con saldo 0, la opción 2 solicita una cantidad y crea un
objeto Cuenta con ese saldo inicial.
En la opción 3 se solicita una cantidad y la ingresa en el objeto creado en las opciones 1 y 2
(debe haber pasado antes por estas opciones), mientras que la opción 4 se solicita una
cantidad y la extrae del objeto creado en las opciones 1 o 2 (también debe haber pasado antes
por estas opciones).
Finalmente, la opción 5 muestra el saldo, mientras que la 6 finaliza el programa, lo que
provocará que el objeto Cuenta se destruya y se pierda el saldo.
El menú vuelve a presentarse en pantalla mientras no se elija la opción de salir
Bibliografías
Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial
RA-MA. 2da Edición.
Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación
orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL, 1ra Edición.

Más contenido relacionado

La actualidad más candente

Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relaciondanielglot
 
Packages,static,this keyword in java
Packages,static,this keyword in javaPackages,static,this keyword in java
Packages,static,this keyword in javaVishnu Suresh
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in javaNilesh Dalvi
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relaciónjosecuartas
 
Modelo entidad relación de base de datos
Modelo entidad relación de base de datosModelo entidad relación de base de datos
Modelo entidad relación de base de datosani_tuza
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
Lecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptxLecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptxShahinAhmed49
 
Class and object in c++
Class and object in c++Class and object in c++
Class and object in c++NainaKhan28
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETRoberto Taborda
 

La actualidad más candente (20)

Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Packages,static,this keyword in java
Packages,static,this keyword in javaPackages,static,this keyword in java
Packages,static,this keyword in java
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in java
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Modelo entidad relación de base de datos
Modelo entidad relación de base de datosModelo entidad relación de base de datos
Modelo entidad relación de base de datos
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Lecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptxLecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptx
 
18 Curso POO en java - contenedores
18 Curso POO en java - contenedores18 Curso POO en java - contenedores
18 Curso POO en java - contenedores
 
15 Curso de POO en java - estructuras repetitivas
15 Curso de POO en java - estructuras repetitivas15 Curso de POO en java - estructuras repetitivas
15 Curso de POO en java - estructuras repetitivas
 
Class and object in c++
Class and object in c++Class and object in c++
Class and object in c++
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
S2-Representación Gráfica
S2-Representación GráficaS2-Representación Gráfica
S2-Representación Gráfica
 
8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 

Destacado

Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticaseccutpl
 
2 1 1 Definiendo Clases
2 1 1 Definiendo Clases2 1 1 Definiendo Clases
2 1 1 Definiendo ClasesUVM
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instanciaRobert Wolf
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Daniel Gómez
 
Tm04 modelo de clases
Tm04 modelo de clasesTm04 modelo de clases
Tm04 modelo de clasesJulio Pari
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Andres Garcia Garcia
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 
Como programar java, 9na edicion deitel
Como programar java, 9na edicion   deitelComo programar java, 9na edicion   deitel
Como programar java, 9na edicion deitelSantos Isaias Itc
 

Destacado (18)

Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Java
JavaJava
Java
 
Taller 1 3
Taller 1 3Taller 1 3
Taller 1 3
 
Clase math.java
Clase math.javaClase math.java
Clase math.java
 
2 1 1 Definiendo Clases
2 1 1 Definiendo Clases2 1 1 Definiendo Clases
2 1 1 Definiendo Clases
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Paradigma orientado a objetos
Paradigma orientado a objetosParadigma orientado a objetos
Paradigma orientado a objetos
 
METODOS
METODOSMETODOS
METODOS
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instancia
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)
 
POO
POOPOO
POO
 
Tm04 modelo de clases
Tm04 modelo de clasesTm04 modelo de clases
Tm04 modelo de clases
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
 
MéTodos En Java
MéTodos En JavaMéTodos En Java
MéTodos En Java
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Como programar java, 9na edicion deitel
Como programar java, 9na edicion   deitelComo programar java, 9na edicion   deitel
Como programar java, 9na edicion deitel
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 

Similar a Programación Orientada a Objetos en Java - Parte I 2015

Similar a Programación Orientada a Objetos en Java - Parte I 2015 (20)

Poo Java
Poo JavaPoo Java
Poo Java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
03 Oop
03   Oop03   Oop
03 Oop
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetos
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Poo 1
Poo 1Poo 1
Poo 1
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 

Más de Renny Batista

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsiveRenny Batista
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - FormulariosRenny Batista
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasRenny Batista
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIRenny Batista
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de DatosRenny Batista
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java scriptRenny Batista
 

Más de Renny Batista (17)

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsive
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - Formularios
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y Listas
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 

Último

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 

Último (20)

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 

Programación Orientada a Objetos en Java - Parte I 2015

  • 1. Prof. Renny Batista Programación IIIOctubre, 2015 Programación Orientada a Objetos – Parte I
  • 2. Contenido Evolución de la Programación Introducción a la programación orientada a objetos (POO) Conceptos Básicos de la POO Clases Objetos Atributos y Métodos Sobrecarga de métodos Encapsulación Constructores Paquetes
  • 3. POO - Evolución Evolución Tecnológica Programación Hexadecimal Programación Ensamblador Programación alto nivel Programación Orientada a Objetos Evolución Conceptual Programación Lineal Programación Estructurada Programación Orientada a Objetos
  • 4. POO – Evolución de los lenguajes orientados a objetos Algol PascalCLU CSmalltalk Simula Basic Ada Ada - 95 Object Pascal Borland Pascal Delphi Actor Objetive-C C++ Visual Basic Visual Basic .NetJava Java2 C#
  • 5. POO - Clasificación de los lenguajes orientados a objetos Clasificación de los lenguajes orientados a objetos Wegner, Peter [1987] Basados en Objetos Basados en Clases Orientados a Objetos + clases + herencia
  • 6. POO - Clasificación de los lenguajes orientados a objetos La clasificación de Wegner divide los lenguajes en tres categorías: Lenguajes basados en objetos que soportan objetos Es decir, disponen de componentes caracterizados por un conjunto de operaciones (comportamiento) y un estado. Lenguajes basados en clases que implican objetos y clases Es decir, disponen de componentes tipo clase con operaciones y estado común. Una clase de un objeto se construye con un «interfaz» que especifica las operaciones posibles y un «cuerpo» que implementa dichas operaciones. Lenguajes orientados a objetos que además de objetos y clases ofrecen mecanismos de herencia entre clases. Esto es, la posibilidad de derivar operaciones y atributos de una clase (superclase) a sus subclases.
  • 7. POO – Conceptos Básicos POO no es : Un sistema de ventanas, ratones, iconos, etc Un lenguaje de programación. POO es : La programación orientada a objeto puede describirse como el conjunto de disciplinas (ingeniería) que desarrollan y modelizan software que facilitan la construcción de sistemas complejos a partir de componentes.
  • 8. POO – Conceptos Básicos “Tenemos un carro y queremos aumentar su potencia…” Opción Tradicional : Construir un carro nuevo Opción POO : Cambiamos el carburador Cambiamos las ruedas por otras más anchas Añadimos un sistema turbo
  • 9. Características de la POO Los cuatro pilares de la programación orientada a objetos son: Abstracción, Encapsulación, Herencia y Polimorfismo.
  • 10. Elementos de la POO en Java
  • 11. Identificación de clases y objetos Cuando se diseña un sistema orientado a objetos, se preguntan: ¿Por dónde comenzar? La respuesta es primero encontrar clases, añadirles métodos y, posteriormente, atributos o datos de la clase. La regla más simple para identificar clases es buscar nombres en el análisis del problema y en su dominio de definición; los métodos, por el contrario, corresponden a verbos; por ejemplo, en un sistema de operaciones en un banco, algunos nombres de clase pueden ser.
  • 12. Clases Concepto de clase Una clase es una plantilla a partir de la cual se puede crear objetos. Una clase es una estructura de datos que encapsula variables (atributos) y funciones miembro (métodos). Se puede decir que una clase es una colección de objetos similares. public class Nombre_clase { // Declaración de campos o atributos // Definición de métodos } La palabra class puede estar precedida por el modificador de acceso public. La clase se guarda en un archivo .java cuyo nombre tiene que ser exactamente el mismo que el de la clase. Una vez definida la clase con sus métodos, los programadores podrán crear objetos de la clase (instancias).
  • 14. Objetos Concepto de objeto. Un objeto es una instancia de una clase, un ejemplo concreto de esa clase; al igual que una variable es una instancia de un tipo de dato. Para crear un objeto se llama al constructor de la clase (un método o función con el mismo nombre que la clase) con el operador: new. public class Principal { public static void main(){ Nombre_clase obj = new Nombre_clase(); obj.miMetodo(); } } Variable que almacenará la referencia al objeto Creación del objetoLlamada a los métodos del objeto
  • 16. Atributos Propiedad o atributo: Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles o no desde fuera del objeto y esto se define como las características predeterminadas de un objeto, y cuyo valor puede ser alterado por la ejecución de algún método. public class Nombre_de_clase{ Tipo_acceso tipo idAtributo; // Otros atributos } Tipo de dato almacenado en el atributo (Variable primitiva o de algún tipo de objeto).
  • 17. Miembros de una clase (Métodos) Los métodos definen el comportamiento de los objetos de una clase, estos métodos pueden hacer uso campos o atributos para almacenar información sobre el objeto, información que puede ser utilizada posteriormente por cualquiera de los métodos del objeto. Se accede a los miembros de un objeto a través del operador punto (.) Un método también es un bloque de código al que se le puede transferir el control de ejecución de un programa y ejecutar dicho código. Los métodos se suelen dividir en los que se usan internamente en la clase (métodos private) y los que son accesibles desde el exterior de la clase (métodos public). Los métodos en Java siempre son miembros de clases, no hay métodos o funciones fuera de ellas.
  • 18. Métodos Declaración de un método en Java: public class Nombre_Clase { [acceso] tipo idAtributo; // Otros atributos [acceso] tipo nombreMétodo (tipo parámetro1, tipo parámetro2,..) { // Código del método [return valor;] } // Otros métodos } Tipo de dato devuelto por el método Parámetros de Llamada Valor devuelto por el método
  • 20. Métodos Invocación al Método objeto.metodo(argumento1, argumento2,… argumento_n); Llamada al método Declaración del método tipo método(tipo parametro1, parametro2,… argumento_n){ // Código del método . . . [return valor;] // valor de retorno (opcional) } Operador de invocación al método (punto)
  • 21. Métodos Ejemplos de métodos public void saludarVariasVeces (String nombre, int veces) { for (int i=0; i<veces; i++ ) System.out.println(“Hola ”+nombre); } private int sumar (int n1, int n2) { int s; s = n1 + n2; return (s); } Si un método no devuelve ningún valor, entonces el tipo de retorno es void.
  • 22. El método main() Toda aplicación Java está compuesta por al menos una clase. La cual debe contener un método estático llamado main() que esta declarada con el modificador de acceso public. Este método es el punto de arranque de un programa Java. El método main() debe cumplir con las siguientes características: Ha de ser un método publico. Ha de ser un método estático. No puede devolver ningún resultado (tipo void) Ha de declarar un array de cadenas de caracteres en la lista de parámetros o un número variable de argumentos. public class Nombre_Clase { public static void main(String[] args) { // Código del método } }
  • 23. public class Nombre_Clase { public void asignarDatos(String nombre) { } public void asignarDatos(String nombre, int edad) { //método sobrecargado } } Sobrecarga de métodos Otra de las ventajas que nos ofrece la POO es poder tener en una misma clase varios métodos con el mismo nombre, a esto se le llama sobrecarga de métodos. Para que un método pueda sobrecargarse es imprescindible que se de la siguiente condición: cada versión del método debe distinguirse de las otras en el numero o tipo de parámetro.
  • 24. Constructores ¿Qué es un constructor? Un constructor es una función o método que se llama automáticamente al crear un objeto de una clase. El constructor reserva memoria para el objeto e inicializa sus variables. Los constructores no tienen valor de retorno (ni void) y tienen el mismo nombre que la clase. class Mi_Clase { public Mi_Clase(){ // tareas a hacer al crear un objeto // de tipo MiClase } }
  • 25. Constructores Múltiples constructores Una clase puede tener varios constructores, cada uno con parámetros de entrada diferentes. Un constructor de una clase puede llamar a otro constructor de la misma clase en su primera línea de código, usando el operador this. Java crea automáticamente un constructor por defecto cuando no existen otros constructores; tal constructor inicializa las variables de tipo numérico, como int o float a cero, las variables de tipo boolean a true y las referencias a null. class Mi_Clase { private String cadena_texto; // Este constructor llama al otro public Mi_Clase(){ this(“Programación en Java..!”); } public Mi_Clase(String cadena) { cadena_texto = cadena; } }
  • 26. Atributos y Métodos Estáticos Los atributos de clase static son compartidas por todos los objetos de la clase; se declaran de igual manera que otra variable, añadiendo como prefijo la palabra reservada static; por ejemplo: Las variables miembro static no forman parte de los objetos de la clase sino de la propia clase; se accede a ellas de la manera habitual, simplemente con su nombre; desde el exterior se accede con el nombre de la clase, el selector y el nombre de la variable public class Conjunto { private static int k = 0; static Arraylist lista = null; // ... }
  • 27. Atributos y Métodos Estáticos La llamada a los métodos static se realiza mediante la clase: NombreClase.metodo(), respetando las reglas de visibilidad; aunque también se pueden llamar con un objeto de la clase, no es recomendable debido a que son métodos dependientes de la clase y no de los objetos. Los atributos estáticos deben llevar un modificador de acceso que permita su uso desde el exterior de la misma, este puede ser public, protected o ninguno. Un método estático no puede hacer referencia a elementos no estáticos de su misma clase. Un método estático no puede hacer uso de la palabra reservadas super y this. Muchos métodos de la biblioteca Java se definen como static; por ejemplo, los métodos matemáticos de la clase Math: Math.sin(), Math.sqrt().
  • 28. Atributos y Métodos Estáticos Declaración de un método estático public class Nombre_Clase { static tipo idAtributo; // Otros atributos static tipo nombreMétodo (parámetro…) { // Código del método [return valor;] } // Otros métodos } Palabra reservada para la definición de elementos estáticos
  • 29. Biblioteca de clases de Java Java incorpora una amplia biblioteca de clases e interfaces denominado Java API; sus clases se pueden utilizar para formar otras nuevas, crear objetos, utilizar sus métodos. La biblioteca se organiza por paquetes que contienen colecciones de clases; para emplear estas últimas sin tener que hacerlas preceder del nombre del paquete se utiliza la sentencia import. Algunos de los paquetes más utilizados son: javax.swing java.applet java.awt java.io java.lang java.net java.util
  • 30. Encapsulación ¿Qué es la encapsulación? La encapsulación es una de las características de la POO mediante la cual se protege el acceso a los datos y funciones de un programa mediante sus modificadores de acceso. Por defecto, una clase, sus funciones y sus variables solo son accesibles desde otra clase del mismo paquete.
  • 31. Modificadores de Acceso Los modificadores de acceso se utilizan para definir la visibilidad de los miembros de una clase (atributos y métodos) y de la propia clase. En Java existen cuatro modificadores de acceso: private: Su uso está restringido al interior de la clase. Lo que significa que solamente puede ser utilizado en el interior de su misma clase. Este modificador puede ser aplicado a métodos y atributos, pero no a la clase. (ninguno): La no utilización de modificador proporciona lo que se conoce como el acceso por defecto. Si una clase, atributo o método tienen acceso por defecto, únicamente las clases de su mismo paquete tendrán acceso al mismo. protected: Es empleado en la herencia. Cualquier método o atributo definido como protected en una clase puede ser utilizado por cualquier otra clase de su mismo paquete y además por cualquier subclase de ella, independientemente del paquete en que esta se encuentre. Una clase no puede ser protected, sólo sus miembros. public: Este modificador ofrece el máximo nivel de visibilidad. Un elemento (clase, método o atributo) public será visible desde cualquier clase, independientemente del paquete en que se encuentre.
  • 32. java Organización de Clases: Los Paquetes Los paquetes es la forma que tiene Java de organizar los archivos con las clases necesarias para construir las aplicaciones. Java incorpora varios de ellos, por ejemplo: java.lang, java.io, o java.util, con las clases básicas para la construcción de programas: System, String, Integer, Scanner. Un paquete es un directorio en el que se almacenan los archivos .class con los bytecodes de la clase; un paquete puede a su vez estar compuesto de otros subpaquetes. String.classlang java.lang.StringPaquete principal Subpaquete Clase
  • 33. Organización de Clases: Los Paquetes Ventajas de la utilización de paquetes Permiten organizar las clases de manera estructurada. Los paquetes permiten agrupar clases que tengan algún tipo de relación lógica. Esto facilita su localización y utilización en un programa. Evitan conflictos de nombres. Una clase localizada en un determinado paquete se identifica mediante lo que se conoce como nombre cualificado de la clase. Este se compone del nombre de la clase, precedido por los nombres de los subpaquetes hasta llegar al paquete principal, separados por un “.” Esto permite que en un programa se pueda utilizar dos o mas clases que tengan el mismo nombre y que se encuentren en distintos paquetes.
  • 34. Importar clases y paquetes de clases Para importar una clase se utiliza la sentencia import al principio del archivo de código .java, antes de la definición de la clase: import java.util.Vector; public class Nombre_Clase { public static void main(String[] args) { Vector v; } } public class Nombre_Clase { public static void main(String[] args) { java.util.Vector v; } } Nombre cualificado de la clase Importa la clase para su utilización
  • 35. Paquetes de uso general java.lang: Incluye las clases de uso fundamentales para la realización de cualquier programa en Java. Dado que sus clases son de uso común en los programas, el compilador importa el paquete completo de forma implícita. Por lo que no deberá utilizarse la sentencia import para importar clases de este paquete. java.io: Contiene las clases para gestión de entradas y salidas de datos en java. Independientemente del dispositivo E/S que se utilice. Java utiliza siempre las mismas clases para enviar datos a la salida y leer datos de la entrada. java.util: En este paquete encontraremos clases para utilidades varias, tales como el tratamiento de colecciones de objetos, la manipulación de fechas o la construcción de expresiones regulares.
  • 36. Ejercicio Se pretende desarrollar una aplicación que simule el funcionamiento de un cajero automático. Primero se debe crear una clase llamada Cuenta, que administre las operaciones sobre la cuenta. Además del constructor y atributos que se estimen necesarios la clase contará con los métodos: void ingresar(float c). Agrega al saldo de la cuenta la cantidad recibida. void extraer(float c) Descuenta del saldo la cantidad recibida. Tras la llamada a este método el saldo no podrá quedar en negativo. float getSaldo(). Devuelve el saldo actual. Por otro lado, existirá una clase con el método main encargada de la captura y presentación de datos y administración de la cuenta. Al iniciarse la aplicación se mostrará el siguiente menú. 1. Crear cuenta vacía 2. Crear cuenta saldo inicial 3. Ingresar dinero 4. Sacar dinero 5. Ver saldo 6. Salir
  • 37. Ejercicio Continuación La opción 1 crea un objeto Cuenta con saldo 0, la opción 2 solicita una cantidad y crea un objeto Cuenta con ese saldo inicial. En la opción 3 se solicita una cantidad y la ingresa en el objeto creado en las opciones 1 y 2 (debe haber pasado antes por estas opciones), mientras que la opción 4 se solicita una cantidad y la extrae del objeto creado en las opciones 1 o 2 (también debe haber pasado antes por estas opciones). Finalmente, la opción 5 muestra el saldo, mientras que la 6 finaliza el programa, lo que provocará que el objeto Cuenta se destruya y se pierda el saldo. El menú vuelve a presentarse en pantalla mientras no se elija la opción de salir
  • 38. Bibliografías Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial RA-MA. 2da Edición. Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL, 1ra Edición.