SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
PROGRAMACIÓN
ORIENTADA A
OBJETOS
Curso de programación orientada a objetos con java
Universidad Técnica Particular de Loja – Ecuador
Daniel Irene – pdirene@gmail.com
AGENDA
üQue es programación orientada a
objetos (Clases, Objetos, métodos y variables de instancia).
üAtributos (primitivos/por referencia), niveles de
acceso (public, private, protected, static) e
inicialización (final, this)
üMétodos, propiedades (set, get),
constructores y sobrecarga.
üEncapsulamiento, ocultamiento y
paquetes.
Traduce a todo el mundo real, invisible o
invisible como un objeto, el cual tiene
atributos que lo describen, métodos
(acciones) que le dan un sentido y
mensajes para comunicarse de un
objeto a otro; todo ello de manera
abstraída en una clase.
PARADIGMA DE LA
PROGRAMACIÓN
ORIENTADA A
OBJETOS
http://www.howdesign.com/web-design-resources-technology/how-to-present-creative-ideas-to-clients/
ATRIBUTOS
•color
•velocidad
•ruedas
•motor
•puertas
METODOS
•arrancar()
•frenar()
•reparar()
•lavar()
OBJETO
auto
ATRIBUTOS
•sexo
•edad
•estatura
•peso
•numero de identidad
METODOS
•respirar()
•caminar()
•alimentar()
•investigar()
OBJETO
persona
ATRIBUTOS
•nombre
•naturaleza
•gerente
•direccion
•numero de empleados
METODOS
•servir()
•contratar()
•cancelar()
•cobra()
•despedir()
OBJETO
empresa
Una clase es el molde para crear
objetos, abstrae los datos (atributos) y
operaciones (métodos) de un objeto a
modo de caja negra (ejemplo en libro base:
conducción de un vehículo).
PROGRAMACIÓN
ORIENTADA A OBJETOS
¿QUE ES UNA CLASE?
CLASES
CLASE = Aeronave CLASE = Vehículo
CLASE = Transporte
otros
Aeronave
Vehículo
CLASES
CLASE = Mujer CLASE = Hombre
CLASE = Humanos
otros
mujer
hombre
CLASES
CLASE = Empresa Publica CLASE = Empresa Privada
CLASE = Empresa
otras
publica
privada
Gráficamente una clase en UML es un
rectángulo dividido en tres partes
donde la (1) es el nombre de la clase;
(2) los atributos con niveles de acceso
+publico -privado y #protegido y (3)
son los métodos con niveles de acceso
+publico -privado y #protegido.
NOMENCLATURA
UML DE UNA CLASE
1
2
3
1
2
3
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Métodos (void), funciones (return)
public void respirar() {
estado = "respirando";
}
protected void caminar() {
estado = "caminando";
}
private void alimentar() {
estado = "alimentando";
}
public String investigar() {
estado = "investigando";
return estado;
}
}
1
2
3
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Métodos (void), funciones (return)
public void respirar() {
estado = "respirando";
}
protected void caminar() {
estado = "caminando";
}
private void alimentar() {
estado = "alimentando";
}
public String investigar() {
estado = "investigando";
return estado;
}
}
class TestPersona{
public static void main(String[] args) {
Personas personaA = new Personas();
Personas personaB = new Personas();
Personas personaC = new Personas();
personaA.sexo = "Masculino";
personaA.caminar();
System.out.println("personaA d sexo <"
+personaA.sexo+"> esta <"
+personaA.estado+">");
}
}
Output - NomProyecto (run)
C:>cd C:FolderMisJava
C:FolderMisJava>javac Personas.java
C:FolderMisJava>java TestPersona
personaA d sexo <Masculino> esta <caminando>
C:FolderMisJava>
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Métodos (void), funciones (return)
public void respirar() {
estado = "respirando";
}
protected void caminar() {
estado = "caminando";
}
private void alimentar() {
estado = "alimentando";
}
public String investigar() {
estado = "investigando";
return estado;
}
}
class TestPersona{
public static void main(String[] args) {
Personas personaA = new Personas();
Personas personaB = new Personas();
Personas personaC = new Personas();
personaA.sexo = "Masculino";
personaA.caminar();
System.out.println("personaA d sexo <"
+personaA.sexo+"> esta <"
+personaA.estado+">");
}
}
Personas personaA = new Personas();
Personas personaB = new Personas();
Personas personaC = new Personas();
Nombre
de la clase
Nombre
del objeto
Invoca al
constructor
Nombre del
constructor
Lo +public: es accesibles dentro/fuera
de la clase, a través del objeto que la
instancia; lo -private: es accesibles
solo dentro de la misma clase
(ocultamiento de información) y lo
#protected: dentro de la clase y otras
que pertenezcan al mismo paquete.
NIVELES O
MODIFICADORES DE
ACCESO
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Métodos (void), funciones (return)
public void respirar() {
estado = "respirando";
}
protected void caminar() {
estado = "caminando";
}
private void alimentar() {
estado = "alimentando";
}
public String investigar() {
estado = "investigando";
return estado;
}
}
class TestPersona{
public static void main(String[] args) {
Personas personaA = new Personas();
Personas personaB = new Personas();
Personas personaC = new Personas();
personaA.sexo = "Masculino";
personaA.caminar();
System.out.println("personaA d sexo <"
+personaA.sexo+"> esta <"
+personaA.estado+">");
}
}
ü personaA.estatura = 175.5;
ü personaA.numIdentidad = 1105467862;
× personaA.peso = 70;
+
-
#
Existen dos tipo (nombres) de métodos genéricos para
inicializar los valores de lo cada atributo de una
clase:
ü set: para inicializar los atributos con un valor
determinado
ü get: para obtener dichos valores.
El constructor de la clase: método especial que
inicializa todos (o algunos de) sus atributos. Si la clase
que no tiene uno, el compilador crea uno vacío por
defecto; si ya se especifica uno, no se crea el vacío
por defecto.
CONSTRUCTOR Y
MÉTODOS DE
ACCESO A
ATRIBUTOS DE LA
CLASE
Output - NomProyecto (run)
Peso de PersonaA <70.0>
Peso de PersonaB <75.0>
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
}
class TestPersona{
public static void main(String[] args) {
Persona personaA = new Persona();
Persona personaB = new Persona("M",34,170,
75,1105678432,"Activo");
personaA.setPeso(70);
System.out.println("Peso de PersonaA "
+ "<"+personaA.getPeso()+">");
System.out.println("Peso de PersonaB "
+ "<"+personaB.getPeso()+">");
}
}
public class Persona {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Constructores
public Persona() { }
public Persona(String sexo, double edad,
double estatura, double peso,
int numIdentidad, String estado) {
this.sexo = sexo;
this.edad = edad;
this.estatura = estatura;
this.peso = peso;
this.numIdentidad = numIdentidad;
this.estado = estado;
}
//Métodos SET (void), funciones GET (return)
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
Las variables que se
declaran en el cuerpo
de un método
específico se conocen
como variables
locales, y sólo se
pueden utilizar en
ese método.
Los
atributos/campos
de la clase se
conocen como
variables globales, y
son accesibles en
todo el cuerpo de la
clase.
Por lo general los
valores de los
atributos de una
clase se inicializan
dentro del
constructor de la
clase.
“
”
Tipos primitivos de
datos: boolean, byte,
char, short, int, long,
float y double
Tipos de datos por
referencia: String, o
cualquier otro
objetivo que apunte
a una clase, son
tipos de dato no
primitivos.
Toda clase
que usted
declara
representa
un nuevo
tipo en Java.
“
”
public class Persona {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Constructores
public Persona() { }
public Persona(String sexo, double edad,
double estatura, double peso,
int numIdentidad, String estado) {
this.sexo = sexo;
this.edad = edad;
this.estatura = estatura;
this.peso = peso;
this.numIdentidad = numIdentidad;
this.estado = estado;
}
//Métodos SET (void), funciones GET (return)
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
}
class TestPersona{
public static void main(String[] args) {
Persona personaA = new Persona();
Persona personaB = new Persona("M",34,170,
75,1105678432,"Activo");
personaA.setPeso(70);
System.out.println("Peso de PersonaA "
+ "<"+personaA.getPeso()+">");
System.out.println("Peso de PersonaB "
+ "<"+personaB.getPeso()+">");
}
}
# datos primitivo: 4
# datos por referencia: 4
# nuevos tipos: 1
Si un método contiene una variable
local con el mismo nombre que uno
de los campos de su clase, la
variable local oculta el campo en el
alcance del método. El método
puede usar la referencia this para
hacer referencia al campo oculto en
forma explícita.
PREFIJO THIS
PARA INSTANCIAR
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Constructores
public Personas() { }
//Métodos SET (void), funciones GET (return)
public double calcularEdad(int anioNacimiento){
int edad;
edad = 2015 - anioNacimiento;
this.edad = edad; //setEdad(edad);
return edad;
}
public double getEdad() {
return edad;
}
public void setEdad(double edad) {
this.edad = edad;
}
class TestPersonas{
public static void main(String[] args) {
Personas personaA = new Personas();
personaA.calcularEdad(1970);
System.out.println("Edad de personaA <"
+personaA.getEdad()+"> anios");
}
}
Output - NomProyecto (run)
Edad de personaA <45.0> anios
Los constructores
sobrecargados
permiten
inicializar los
objetos de una
clase de varias
formas distintas.
CONSTRUCTORES
SOBRECARGADOS
public class Personas {
//Atributos ó campos
public String sexo;
protected double edad;
public double estatura;
private double peso;
protected int numIdentidad;
public String estado;
//Constructores
public Personas() { }
public Personas(double edad, double peso,
int numIdentidad) {
this.edad = edad;
this.peso = peso;
this.numIdentidad = numIdentidad;
}
public Personas(String sexo, double edad,
double estatura, double peso,
int numIdentidad, String estado) {
this.sexo = sexo;
this.edad = edad;
this.estatura = estatura;
this.peso = peso;
this.numIdentidad = numIdentidad;
this.estado = estado;
}
//Métodos SET (void), funciones GET (return)
Una variable
static
representa la
información a
nivel de clase
que se
comparte
entre todos los
objetos de la
clase.
Las variables
static tienen
alcance en toda
la clase. Se
puede tener
acceso a los
miembros
public static de
una clase a
través de una
referencia a
cualquier objeto
de la clase.
Los miembros
de clase static
existen aun
cuando no
existan
objetos de la
clase; están
disponibles
tan pronto
como se carga
la clase en
memoria, en
tiempo de
ejecución.
“
”
Un método que se
declara como static
no puede acceder a
los miembros de
clase que no son
static, ya que un
método static puede
llamarse incluso
aunque no se hayan
creado instancias de
objetos de la clase.
public class PersonasV4 {
//Atributos ó campos
public static String nombreEmpresa;
public String sexo;
public int edad;
//Constructores
public PersonasV4() { }
public PersonasV4(String sexo, int edad) {
nombreEmpresa = "UTPL";
this.sexo = sexo;
this.edad = edad;
}
//Métodos estaticos y no estaticos
public static double calcularEdad(int anioNacimiento){
int edad = 2015 - anioNacimiento;
return edad;
}
public String getNombreEmpresa(){
return nombreEmpresa;
}
}
class TestPersonasV4{
public static void main(String[] args) {
System.out.println("Nombre de empresa de Personas <"+PersonasV4.nombreEmpresa+">");
PersonasV4 personaA = new PersonasV4("M",4);
System.out.println("Nombre de empresa de Personas <"+PersonasV4.nombreEmpresa+">");
PersonasV4 personaB = new PersonasV4();
System.out.println("Nombre de empresa de Personas <"+personaB.getNombreEmpresa()+">");
}
}
Output - NomProyecto (run)
Nombre de empresa de Personas <null>
Nombre de empresa de Personas <UTPL>
Nombre de empresa de Personas <UTPL>
ü Un Paquete en Java es un contenedor de clases
que permite agrupar las distintas partes de un
programa cuya funcionalidad tienen elementos
comunes.
ü Antes de poder importar una clase en varias
aplicaciones, ésta debe colocarse en un paquete.
Sólo puede haber una declaración package en
cada archivo de código fuente de Java
nomClase.java
QUE ES UN PAQUETE
Cada clase en la API de Java
pertenece a un paquete que
contiene un grupo de clases
relacionadas. Los paquetes ayudan a
administrar la complejidad de los
componentes de una aplicación y
facilitan la reutilización de software.
PAQUETE EN JAVA
http://docs.oracle.com/javase/7/docs/api/
No se requiere de import cuando se
desea usar una clase que esta
dentro de un mismo paquete, o si
accedemos a sus miembros
directamente con el nombre de la
clase.
IMPORTAR CLASES
package PaqueteA;
public class ClasesA1 {
public int atributoA;
public int getAtributoA() {
return atributoA;
}
}
package PaqueteA;
import PaqueteB.*;
public class ClasesA2 {
ClasesA1 objetoA = new ClasesA1();
ClasesB1 objetoB = new ClasesB1();
}
package PaqueteB;
public class ClasesB1 {
ClasesA1 objeto = new ClasesA1();
}
Al compilar una clase en un paquete, la opción -d de línea de comandos de javac especifica en dónde se debe
almacenar el paquete, y hace que el compilador cree los directorios del paquete, en caso de que no existan.
La ruta de clases para el compilador y la JVM se puede especificar proporcionando la opción –classpath al
comando javac o java, o estableciendo la variable de entorno CLASSPATH.
La ruta de clases para la JVM también se puede especificar mediante la opción -cp de línea de comandos. Si las
clases deben cargarse del directorio actual, incluya un punto (.) en la ruta de clases.
Un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya
funcionalidad tienen elementos comunes.
IMPORTAR CLASES
PROGRAMACIÓN
ORIENTADA A
OBJETOS
curso de programación orientada a objetos
@utpl, @pdirene

Más contenido relacionado

La actualidad más candente

Polymorphism in java
Polymorphism in java Polymorphism in java
Polymorphism in java Janu Jahnavi
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaAme Linares Vivas
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Classes and objects1
Classes and objects1Classes and objects1
Classes and objects1Vineeta Garg
 
Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function Kamlesh Makvana
 
Java: Inheritance
Java: InheritanceJava: Inheritance
Java: InheritanceTareq Hasan
 
Class, object and inheritance in python
Class, object and inheritance in pythonClass, object and inheritance in python
Class, object and inheritance in pythonSantosh Verma
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programmingNeelesh Shukla
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and SetsNicole Ryan
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAMaulik Borsaniya
 

La actualidad más candente (20)

Python-Inheritance.pptx
Python-Inheritance.pptxPython-Inheritance.pptx
Python-Inheritance.pptx
 
Polymorphism in java
Polymorphism in java Polymorphism in java
Polymorphism in java
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en Java
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Classes and objects1
Classes and objects1Classes and objects1
Classes and objects1
 
Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function
 
Java: Inheritance
Java: InheritanceJava: Inheritance
Java: Inheritance
 
Python: Basic Inheritance
Python: Basic InheritancePython: Basic Inheritance
Python: Basic Inheritance
 
Class, object and inheritance in python
Class, object and inheritance in pythonClass, object and inheritance in python
Class, object and inheritance in python
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
 
Ordenamiento por seleccion
Ordenamiento por seleccionOrdenamiento por seleccion
Ordenamiento por seleccion
 
Python-Polymorphism.pptx
Python-Polymorphism.pptxPython-Polymorphism.pptx
Python-Polymorphism.pptx
 
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
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and Sets
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
C# Strings
C# StringsC# Strings
C# Strings
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
 
inheritance
inheritanceinheritance
inheritance
 
Constructor ppt
Constructor pptConstructor ppt
Constructor ppt
 

Similar a Programación Orientada a Objetos en Java

Poo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionPoo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionjlmanmons
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Constructores con el parámetro this
Constructores con el parámetro thisConstructores con el parámetro this
Constructores con el parámetro thisDarwin Chungandro
 
T2 C01 y C02 Herencia y polimorfismo.ppt
T2 C01 y C02 Herencia y polimorfismo.pptT2 C01 y C02 Herencia y polimorfismo.ppt
T2 C01 y C02 Herencia y polimorfismo.pptjose185278
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxdocmarcoantoniosotov
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadasGaloGabriel
 
2.android java
2.android   java2.android   java
2.android javaguidotic
 
Persistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPAPersistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPAJosngelViedmaMartnez
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoojorg_marq
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Objetos con atributos de vectores
Objetos con atributos de vectoresObjetos con atributos de vectores
Objetos con atributos de vectoresJose Diaz Silva
 

Similar a Programación Orientada a Objetos en Java (20)

PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Poo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionPoo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacion
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Java
JavaJava
Java
 
Constructores con el parámetro this
Constructores con el parámetro thisConstructores con el parámetro this
Constructores con el parámetro this
 
Tema2
Tema2Tema2
Tema2
 
Main
MainMain
Main
 
T2 C01 y C02 Herencia y polimorfismo.ppt
T2 C01 y C02 Herencia y polimorfismo.pptT2 C01 y C02 Herencia y polimorfismo.ppt
T2 C01 y C02 Herencia y polimorfismo.ppt
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptx
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadas
 
Clase 2
Clase 2 Clase 2
Clase 2
 
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
 
2.android java
2.android   java2.android   java
2.android java
 
Persistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPAPersistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPA
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoo
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
T2 herencia
T2 herenciaT2 herencia
T2 herencia
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Objetos con atributos de vectores
Objetos con atributos de vectoresObjetos con atributos de vectores
Objetos con atributos de vectores
 

Más de Daniel Irene

2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene
2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene
2 indicaciones algarreglos_utpl_abr-ago-2014_pdireneDaniel Irene
 
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdireneDaniel Irene
 
Secciones Cónicas
Secciones CónicasSecciones Cónicas
Secciones CónicasDaniel Irene
 
ALGEBRA DE MATRICES
ALGEBRA DE MATRICESALGEBRA DE MATRICES
ALGEBRA DE MATRICESDaniel Irene
 
CURSO DE MATEMATICAS - Cap 01
CURSO DE MATEMATICAS - Cap 01CURSO DE MATEMATICAS - Cap 01
CURSO DE MATEMATICAS - Cap 01Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 9
CURSO DE PROGRAMACION BASICA - Cap 9CURSO DE PROGRAMACION BASICA - Cap 9
CURSO DE PROGRAMACION BASICA - Cap 9Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 8
CURSO DE PROGRAMACION BASICA - Cap 8CURSO DE PROGRAMACION BASICA - Cap 8
CURSO DE PROGRAMACION BASICA - Cap 8Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 7
CURSO DE PROGRAMACION BASICA - Cap 7CURSO DE PROGRAMACION BASICA - Cap 7
CURSO DE PROGRAMACION BASICA - Cap 7Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 6
CURSO DE PROGRAMACION BASICA - Cap 6CURSO DE PROGRAMACION BASICA - Cap 6
CURSO DE PROGRAMACION BASICA - Cap 6Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 3
CURSO DE PROGRAMACION BASICA - Cap 3CURSO DE PROGRAMACION BASICA - Cap 3
CURSO DE PROGRAMACION BASICA - Cap 3Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1Daniel Irene
 
CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2Daniel Irene
 

Más de Daniel Irene (14)

2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene
2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene
2 indicaciones algarreglos_utpl_abr-ago-2014_pdirene
 
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
 
Secciones Cónicas
Secciones CónicasSecciones Cónicas
Secciones Cónicas
 
ALGEBRA DE MATRICES
ALGEBRA DE MATRICESALGEBRA DE MATRICES
ALGEBRA DE MATRICES
 
CURSO DE MATEMATICAS - Cap 01
CURSO DE MATEMATICAS - Cap 01CURSO DE MATEMATICAS - Cap 01
CURSO DE MATEMATICAS - Cap 01
 
CURSO DE PROGRAMACION BASICA - Cap 9
CURSO DE PROGRAMACION BASICA - Cap 9CURSO DE PROGRAMACION BASICA - Cap 9
CURSO DE PROGRAMACION BASICA - Cap 9
 
CURSO DE PROGRAMACION BASICA - Cap 8
CURSO DE PROGRAMACION BASICA - Cap 8CURSO DE PROGRAMACION BASICA - Cap 8
CURSO DE PROGRAMACION BASICA - Cap 8
 
CURSO DE PROGRAMACION BASICA - Cap 7
CURSO DE PROGRAMACION BASICA - Cap 7CURSO DE PROGRAMACION BASICA - Cap 7
CURSO DE PROGRAMACION BASICA - Cap 7
 
CURSO DE PROGRAMACION BASICA - Cap 6
CURSO DE PROGRAMACION BASICA - Cap 6CURSO DE PROGRAMACION BASICA - Cap 6
CURSO DE PROGRAMACION BASICA - Cap 6
 
CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4
 
CURSO DE PROGRAMACION BASICA - Cap 3
CURSO DE PROGRAMACION BASICA - Cap 3CURSO DE PROGRAMACION BASICA - Cap 3
CURSO DE PROGRAMACION BASICA - Cap 3
 
CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1
 
CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2
 

Último

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 

Último (20)

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 

Programación Orientada a Objetos en Java

  • 1. PROGRAMACIÓN ORIENTADA A OBJETOS Curso de programación orientada a objetos con java Universidad Técnica Particular de Loja – Ecuador Daniel Irene – pdirene@gmail.com
  • 2. AGENDA üQue es programación orientada a objetos (Clases, Objetos, métodos y variables de instancia). üAtributos (primitivos/por referencia), niveles de acceso (public, private, protected, static) e inicialización (final, this) üMétodos, propiedades (set, get), constructores y sobrecarga. üEncapsulamiento, ocultamiento y paquetes.
  • 3. Traduce a todo el mundo real, invisible o invisible como un objeto, el cual tiene atributos que lo describen, métodos (acciones) que le dan un sentido y mensajes para comunicarse de un objeto a otro; todo ello de manera abstraída en una clase. PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS http://www.howdesign.com/web-design-resources-technology/how-to-present-creative-ideas-to-clients/
  • 7. Una clase es el molde para crear objetos, abstrae los datos (atributos) y operaciones (métodos) de un objeto a modo de caja negra (ejemplo en libro base: conducción de un vehículo). PROGRAMACIÓN ORIENTADA A OBJETOS ¿QUE ES UNA CLASE?
  • 8. CLASES CLASE = Aeronave CLASE = Vehículo CLASE = Transporte otros Aeronave Vehículo
  • 9. CLASES CLASE = Mujer CLASE = Hombre CLASE = Humanos otros mujer hombre
  • 10. CLASES CLASE = Empresa Publica CLASE = Empresa Privada CLASE = Empresa otras publica privada
  • 11. Gráficamente una clase en UML es un rectángulo dividido en tres partes donde la (1) es el nombre de la clase; (2) los atributos con niveles de acceso +publico -privado y #protegido y (3) son los métodos con niveles de acceso +publico -privado y #protegido. NOMENCLATURA UML DE UNA CLASE 1 2 3
  • 12. 1 2 3 public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Métodos (void), funciones (return) public void respirar() { estado = "respirando"; } protected void caminar() { estado = "caminando"; } private void alimentar() { estado = "alimentando"; } public String investigar() { estado = "investigando"; return estado; } } 1 2 3
  • 13. public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Métodos (void), funciones (return) public void respirar() { estado = "respirando"; } protected void caminar() { estado = "caminando"; } private void alimentar() { estado = "alimentando"; } public String investigar() { estado = "investigando"; return estado; } } class TestPersona{ public static void main(String[] args) { Personas personaA = new Personas(); Personas personaB = new Personas(); Personas personaC = new Personas(); personaA.sexo = "Masculino"; personaA.caminar(); System.out.println("personaA d sexo <" +personaA.sexo+"> esta <" +personaA.estado+">"); } } Output - NomProyecto (run) C:>cd C:FolderMisJava C:FolderMisJava>javac Personas.java C:FolderMisJava>java TestPersona personaA d sexo <Masculino> esta <caminando> C:FolderMisJava>
  • 14. public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Métodos (void), funciones (return) public void respirar() { estado = "respirando"; } protected void caminar() { estado = "caminando"; } private void alimentar() { estado = "alimentando"; } public String investigar() { estado = "investigando"; return estado; } } class TestPersona{ public static void main(String[] args) { Personas personaA = new Personas(); Personas personaB = new Personas(); Personas personaC = new Personas(); personaA.sexo = "Masculino"; personaA.caminar(); System.out.println("personaA d sexo <" +personaA.sexo+"> esta <" +personaA.estado+">"); } } Personas personaA = new Personas(); Personas personaB = new Personas(); Personas personaC = new Personas(); Nombre de la clase Nombre del objeto Invoca al constructor Nombre del constructor
  • 15. Lo +public: es accesibles dentro/fuera de la clase, a través del objeto que la instancia; lo -private: es accesibles solo dentro de la misma clase (ocultamiento de información) y lo #protected: dentro de la clase y otras que pertenezcan al mismo paquete. NIVELES O MODIFICADORES DE ACCESO
  • 16. public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Métodos (void), funciones (return) public void respirar() { estado = "respirando"; } protected void caminar() { estado = "caminando"; } private void alimentar() { estado = "alimentando"; } public String investigar() { estado = "investigando"; return estado; } } class TestPersona{ public static void main(String[] args) { Personas personaA = new Personas(); Personas personaB = new Personas(); Personas personaC = new Personas(); personaA.sexo = "Masculino"; personaA.caminar(); System.out.println("personaA d sexo <" +personaA.sexo+"> esta <" +personaA.estado+">"); } } ü personaA.estatura = 175.5; ü personaA.numIdentidad = 1105467862; × personaA.peso = 70; + - #
  • 17. Existen dos tipo (nombres) de métodos genéricos para inicializar los valores de lo cada atributo de una clase: ü set: para inicializar los atributos con un valor determinado ü get: para obtener dichos valores. El constructor de la clase: método especial que inicializa todos (o algunos de) sus atributos. Si la clase que no tiene uno, el compilador crea uno vacío por defecto; si ya se especifica uno, no se crea el vacío por defecto. CONSTRUCTOR Y MÉTODOS DE ACCESO A ATRIBUTOS DE LA CLASE
  • 18. Output - NomProyecto (run) Peso de PersonaA <70.0> Peso de PersonaB <75.0> public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } } class TestPersona{ public static void main(String[] args) { Persona personaA = new Persona(); Persona personaB = new Persona("M",34,170, 75,1105678432,"Activo"); personaA.setPeso(70); System.out.println("Peso de PersonaA " + "<"+personaA.getPeso()+">"); System.out.println("Peso de PersonaB " + "<"+personaB.getPeso()+">"); } } public class Persona { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Constructores public Persona() { } public Persona(String sexo, double edad, double estatura, double peso, int numIdentidad, String estado) { this.sexo = sexo; this.edad = edad; this.estatura = estatura; this.peso = peso; this.numIdentidad = numIdentidad; this.estado = estado; } //Métodos SET (void), funciones GET (return) public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; }
  • 19. Las variables que se declaran en el cuerpo de un método específico se conocen como variables locales, y sólo se pueden utilizar en ese método. Los atributos/campos de la clase se conocen como variables globales, y son accesibles en todo el cuerpo de la clase. Por lo general los valores de los atributos de una clase se inicializan dentro del constructor de la clase. “ ”
  • 20. Tipos primitivos de datos: boolean, byte, char, short, int, long, float y double Tipos de datos por referencia: String, o cualquier otro objetivo que apunte a una clase, son tipos de dato no primitivos. Toda clase que usted declara representa un nuevo tipo en Java. “ ”
  • 21. public class Persona { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Constructores public Persona() { } public Persona(String sexo, double edad, double estatura, double peso, int numIdentidad, String estado) { this.sexo = sexo; this.edad = edad; this.estatura = estatura; this.peso = peso; this.numIdentidad = numIdentidad; this.estado = estado; } //Métodos SET (void), funciones GET (return) public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } } class TestPersona{ public static void main(String[] args) { Persona personaA = new Persona(); Persona personaB = new Persona("M",34,170, 75,1105678432,"Activo"); personaA.setPeso(70); System.out.println("Peso de PersonaA " + "<"+personaA.getPeso()+">"); System.out.println("Peso de PersonaB " + "<"+personaB.getPeso()+">"); } } # datos primitivo: 4 # datos por referencia: 4 # nuevos tipos: 1
  • 22. Si un método contiene una variable local con el mismo nombre que uno de los campos de su clase, la variable local oculta el campo en el alcance del método. El método puede usar la referencia this para hacer referencia al campo oculto en forma explícita. PREFIJO THIS PARA INSTANCIAR
  • 23. public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Constructores public Personas() { } //Métodos SET (void), funciones GET (return) public double calcularEdad(int anioNacimiento){ int edad; edad = 2015 - anioNacimiento; this.edad = edad; //setEdad(edad); return edad; } public double getEdad() { return edad; } public void setEdad(double edad) { this.edad = edad; } class TestPersonas{ public static void main(String[] args) { Personas personaA = new Personas(); personaA.calcularEdad(1970); System.out.println("Edad de personaA <" +personaA.getEdad()+"> anios"); } } Output - NomProyecto (run) Edad de personaA <45.0> anios
  • 24. Los constructores sobrecargados permiten inicializar los objetos de una clase de varias formas distintas. CONSTRUCTORES SOBRECARGADOS public class Personas { //Atributos ó campos public String sexo; protected double edad; public double estatura; private double peso; protected int numIdentidad; public String estado; //Constructores public Personas() { } public Personas(double edad, double peso, int numIdentidad) { this.edad = edad; this.peso = peso; this.numIdentidad = numIdentidad; } public Personas(String sexo, double edad, double estatura, double peso, int numIdentidad, String estado) { this.sexo = sexo; this.edad = edad; this.estatura = estatura; this.peso = peso; this.numIdentidad = numIdentidad; this.estado = estado; } //Métodos SET (void), funciones GET (return)
  • 25. Una variable static representa la información a nivel de clase que se comparte entre todos los objetos de la clase. Las variables static tienen alcance en toda la clase. Se puede tener acceso a los miembros public static de una clase a través de una referencia a cualquier objeto de la clase. Los miembros de clase static existen aun cuando no existan objetos de la clase; están disponibles tan pronto como se carga la clase en memoria, en tiempo de ejecución. “ ” Un método que se declara como static no puede acceder a los miembros de clase que no son static, ya que un método static puede llamarse incluso aunque no se hayan creado instancias de objetos de la clase.
  • 26. public class PersonasV4 { //Atributos ó campos public static String nombreEmpresa; public String sexo; public int edad; //Constructores public PersonasV4() { } public PersonasV4(String sexo, int edad) { nombreEmpresa = "UTPL"; this.sexo = sexo; this.edad = edad; } //Métodos estaticos y no estaticos public static double calcularEdad(int anioNacimiento){ int edad = 2015 - anioNacimiento; return edad; } public String getNombreEmpresa(){ return nombreEmpresa; } } class TestPersonasV4{ public static void main(String[] args) { System.out.println("Nombre de empresa de Personas <"+PersonasV4.nombreEmpresa+">"); PersonasV4 personaA = new PersonasV4("M",4); System.out.println("Nombre de empresa de Personas <"+PersonasV4.nombreEmpresa+">"); PersonasV4 personaB = new PersonasV4(); System.out.println("Nombre de empresa de Personas <"+personaB.getNombreEmpresa()+">"); } } Output - NomProyecto (run) Nombre de empresa de Personas <null> Nombre de empresa de Personas <UTPL> Nombre de empresa de Personas <UTPL>
  • 27. ü Un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes. ü Antes de poder importar una clase en varias aplicaciones, ésta debe colocarse en un paquete. Sólo puede haber una declaración package en cada archivo de código fuente de Java nomClase.java QUE ES UN PAQUETE
  • 28. Cada clase en la API de Java pertenece a un paquete que contiene un grupo de clases relacionadas. Los paquetes ayudan a administrar la complejidad de los componentes de una aplicación y facilitan la reutilización de software. PAQUETE EN JAVA http://docs.oracle.com/javase/7/docs/api/
  • 29. No se requiere de import cuando se desea usar una clase que esta dentro de un mismo paquete, o si accedemos a sus miembros directamente con el nombre de la clase. IMPORTAR CLASES
  • 30. package PaqueteA; public class ClasesA1 { public int atributoA; public int getAtributoA() { return atributoA; } } package PaqueteA; import PaqueteB.*; public class ClasesA2 { ClasesA1 objetoA = new ClasesA1(); ClasesB1 objetoB = new ClasesB1(); } package PaqueteB; public class ClasesB1 { ClasesA1 objeto = new ClasesA1(); }
  • 31. Al compilar una clase en un paquete, la opción -d de línea de comandos de javac especifica en dónde se debe almacenar el paquete, y hace que el compilador cree los directorios del paquete, en caso de que no existan. La ruta de clases para el compilador y la JVM se puede especificar proporcionando la opción –classpath al comando javac o java, o estableciendo la variable de entorno CLASSPATH. La ruta de clases para la JVM también se puede especificar mediante la opción -cp de línea de comandos. Si las clases deben cargarse del directorio actual, incluya un punto (.) en la ruta de clases. Un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes. IMPORTAR CLASES
  • 32. PROGRAMACIÓN ORIENTADA A OBJETOS curso de programación orientada a objetos @utpl, @pdirene