Sunteți pe pagina 1din 26

Ing.

Luis Fran Cardozo González


Esp. Desarrollo de Aplicaciones para dispositivos móviles
Maestrante en Ingeniería de Sistemas y Computación
Email: lucag2004@gmail.com
27/08/2020 2

Programación orientada a objetos


Las clases son la base de la Programación Orientada a Objetos ( POO ) ,
y sus características más importantes son:

ABSTRACCIÓN
Consiste en representar las características esenciales de un objeto,
olvidándose de otras no esenciales. Definir una abstracción significa
describir una entidad del mundo real, no importa lo compleja que sea y
luego utilizarla en la descripción de un programa. Una clase es una
abstracción de un grupo de objetos, que tienen la posibilidad de realizar una
serie de operaciones.
27/08/2020 3

Programación orientada a objetos


ENCAPSULACIÓN
Una clase se compone de atributos, constructores, métodos que le dan
funcionalidad a los objetos que pertenecen a dicha clase. Los atributos de
una clase pueden ser de acceso privado (private), protegido (protected) y
aunque puedan ser de acceso público (public), jamás deben serlo para que
cumplan con la característica del Encapsulamiento de la Programación
Orientada a Objetos. Los objetos solo pueden tener acceso a los atributos
por medio de los métodos de la clase. El acceso a los métodos es tanto
para obtener (get) su valor como para cambiarlo (set).
27/08/2020 4

Programación orientada a objetos


HERENCIA
Es una de las características fundamentales de los lenguajes de
Programación Orientados a Objetos. Gracias a esta característica podemos
aprovechar los que hace una clase para crear otra a partir de ella,
agregándole atributos y métodos (Extensibilidad) y/o cambiando su
funcionalidad (Reutilización). Extensibilidad y reutilización son los
argumentos válidos para aplicar Herencia. De no darse estos argumentos
no se estaría aplicando herencia con propiedad.
27/08/2020 5

Programación orientada a objetos


POLIMORFISMO
Múltiples formas de hacer una misma secuencia lógica.
- Sobrecarga de métodos.
- Herencia.
- Implementación de Interfaces.
27/08/2020 6

Clases y Objetos
En la vida diaria podemos pensar en objetos como una manzana o un libro
y podemos distinguir clases de cosas: por ejemplo clases de plantas. Sin
embargo, en programación el término objeto y el término clase no guardan
una correlación exacta con el significado de estas palabras en la vida diaria.

Podemos buscar ciertas similitudes e incluso hacer analogías didácticas.


Pero no trates de buscar siempre equivalencias entre objetos y clases en
programación con objetos y clases de la vida diaria porque esa
correspondencia exacta no existe y te llevará a confusión.

Al escribir un programa en un lenguaje orientado a objetos tratamos de


modelar un problema del mundo real pensando en objetos que forman parte
del problema y que se relacionan entre sí.
27/08/2020 7

Clases y Objetos
27/08/2020 8

Clases y Objetos
Una CLASE es una plantilla que sirve para producir y utilizar objetos. Cada objeto
pertenece a una sola clase. Se dice que un objeto es una instancia de una clase.
Una clase en Java tiene:

Atributos: propiedades de los objetos de la clase.


Métodos: procedimientos que comparten los objetos de la clase.
Constructores: procedimientos que se ejecutan en el momento de la
instanciación del objeto (tienen el mismo nombre de la clase).
27/08/2020 9

Clases y Objetos
VARIABLES ( ATRIBUTOS)

VARIABLE DE INSTANCIA
Usada para definir atributos o el estado de un objeto en particular. Cada Objeto
tendrá su propia copia local de variable definida en clase.
27/08/2020 10

Clases y Objetos
VARIABLES ( ATRIBUTOS)

VARIABLE DE CLASE
Similar a las variables de Instancia, con la diferencia que sus valores se aplican a
todas las instancias y a la misma clase. Se definen y almacenan en la Clase.
No hay una copia del dato para cada objeto sino una sola copia que es compartida
por todos los objetos de la clase. Indica una variable global. .
27/08/2020 11

Clases y Objetos
CONSTRUCTORES

Cuando se crea un objeto ( se instancia una clase ) es posible definir un proceso de


inicialización que prepare el objeto para ser usado. Esta inicialización se lleva a
cabo invocando en un método especial denominado CONSTRUCTOR . Esta
invocación se realiza cuando se utiliza el operador new.
27/08/2020 12

Clases y Objetos
METODOS SET / GET
Una de las características de la POO es que el usuario no puede manipular en
forma directa los atributos de la clase. Por lo tanto, se debe implementar los
atributos como privados(private), y se debe implementar métodos para acceder a
ellos.

MÉTODO SET
Métodos que Modifican los valores de las propiedades de una clase. Requieren de
un Parámetro, no es indispensable valor de retorno.
27/08/2020 13

Clases y Objetos
METODOS SET / GET
Una de las características de la POO es que el usuario no puede manipular en
forma directa los atributos de la clase. Por lo tanto, se debe implementar los
atributos como privados(private), y se debe implementar métodos para acceder a
ellos.

METODO GET
Métodos que Devuelven los valores propiedades de una clase. Requieren valor de
retorno más no es indispensable parámetros.
27/08/2020 14

Clases y Objetos
TIPO DE RETORNO

Void: Cuando el método no retorna ningún valor.

Sin Void: Significa que el método retorna un valor de algún tipo de dato, entero (
int), cadena (String ), real (float ), Objeto ( Object).
27/08/2020 15

Clases y Objetos
METODOS TIPO FUNCION
Son métodos que nos devuelven algo. Un método es tipo función comienza con un
tipo de dato(no consideramos ahora la palabra clave public).

public tipoValorDevuelto nombreDelMétodo (tipo parámetro1, tipo parámetro2…) {


Código del método
return ResultadoQueDevuelveElMétodo;
}

Tener en cuenta que un método tipo función devuelve solo un dato u objeto como
resultado, no varios. La devolución del resultado se expresa con la palabra clave
return seguida del dato u objeto a devolver, por ejemplo return tipoMotor;. La
sentencia return implica que termina la ejecución del código en el método y estará
típicamente en la línea final. De existir una línea por detrás de una sentencia return,
nunca llegaría a ejecutarse (tendremos que matizar esto porque el uso de
condicionales nos permitirá tener más de un return en un método).
27/08/2020 16

Clases y Objetos
METODOS TIPO PROCEDIMIENTO
Son métodos que realizan ciertas operaciones sin devolver un valor u objeto
concreto.
Un método es tipo procedimiento si comienza con la palabra clave void (que
traducido del inglés viene siendo “vacío” o “nulo”). En estos casos podemos decir
que el tipo de retorno es void.

public void nombreDelMétodo (tipo parámetro1, tipo parámetro2…) {


Código del método
}

En general un método con tipo de retorno void no llevará sentencia return, aunque
en Java se permite que un método de este tipo incluya la sentencia return;. Si ocurre
esto, la sentencia da lugar a que el método finalice en ese punto sin ejecutar
ninguna línea más de código.
27/08/2020 17

Clases y Objetos
DECLARACION DE OBJETOS

El operador new se utiliza para crear un objeto de un tipo de clase especifica , es


decir , que asigne memoria para el objeto. Para utilizar el operador new tenemos
dos alternativas.

En la primera instrucción se define la variable que apuntara a un objeto que se crea


en la Segunda instrucción.

En este caso tanto la creación de la variable y la creación del objeto se realizan en la


misma instrucción.
27/08/2020 18

Clases y Objetos
27/08/2020 19

Ejemplo Praactico:
En este ejemplo hemos considerado que el problema consta de tres tipos de
vehículo: taxi, autobús y transmetro, y que esos tipos los denominamos clases.

¿Qué haríamos en Java para definir una clase?

Indicar sus propiedades y operaciones (métodos) disponibles, por ejemplo:


27/08/2020 20

Esto vamos a transformarlo en código usando un ejemplo. Para ello abre un nuevo
proyecto en NetBeans y crea en él una clase denominada Taxi.

Escribe en ella este código, aunque no entiendas algunas partes de él.


27/08/2020 21

//Esta clase representa un taxi. -- > Comentario general que puede incluir: cometido, autor, versión, etc…
public class Taxi { //El nombre de la clase
String ciudad; //Ciudad de cada objeto taxi
String matricula; //Matrícula de cada objeto taxi
String distrito; //Distrito asignado a cada objeto taxi
int tipoMotor; //tipo de motor asignado a cada objeto taxi. 0 = desconocido, 1 = gasolina, 2 = diesel

//Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el


constructor

public Taxi () {
ciudad = “Barranquilla”;
matricula = "";
distrito = "";
tipoMotor = 0;
}

//Método para establecer la matrícula de un taxi


public void setMatricula (String valorMatricula) {
matricula = valorMatricula; //La matrícula del objeto taxi toma el valor que tenga valorMatricula
} //Cierre del método
27/08/2020 22

//Método para establecer el distrito de un taxi

public void setDistrito (String valorDistrito) {


distrito = "Distrito " + valorDistrito; //El distrito del objeto taxi adopta el valor indicado
} //Cierre del método

public void setTipoMotor (int valorTipoMotor) {


tipoMotor = valorTipoMotor; //El tipoMotor del objeto taxi adopta el valor que contenga
valorTipoMotor
} //Cierre del método

//Método para obtener la matrícula del objeto taxi


public String getMatricula () { return matricula; } //Cierre del método

//Método para obtener el distrito del objeto taxi


public String getDistrito () { return distrito; } //Cierre del método

//Método para obtener el tipo de motor del objeto taxi


public int getTipoMotor () { return tipoMotor; } //Cierre del método

} //Cierre de la clase
27/08/2020 23

Crear una Clase Principal (Java MainClass), para hacer la Prueba a nuestra Clase
Taxi:

public class PruebaTaxi {

public static void main(String[] args) throws IOException {


// Se crea el objeto teclado para catura de datos
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

//Se crea el objeto taxi


Taxi tax1= new Taxi();

//Se solicitan datos al distrito, la matricula y tipo motor


System.out.println("Asigne distrito de Taxi");
tax1.setDistrito(teclado.readLine());
System.out.println("Asigne Matricula de Taxi");
tax1.setMatricula(teclado.readLine());
System.out.println("Asigne Tipo de motor de Taxi: 1. para gasolina -- 2.para diesel");
tax1.setTipoMotor(Integer.parseInt(teclado.readLine()));
27/08/2020 24

//Se escribe los datos que contiene el objeto


System.out.println("Los datos del nuevo taxi son los siguientes:");
System.out.println("Matricula No: "+tax1.getMatricula());
System.out.println("Ciudad: "+tax1.getCiudad());
System.out.println("Distrito: "+tax1.getDistrito());
System.out.println("Motor: "+tax1.getTipoMotor());
}
}
27/08/2020 25

EJERCICIO

Clase Producto, encapsulamiento de atributos, creación de Objetos y envío de


mensajes.
27/08/2020 26

EJERCICIO

Implemente una clase de nombre Empleado con los siguientes atributos: código ,
nombre , área laboral, sueldo, horas extras, afiliación a una AFP. Además,
considere atributos de valores comunes para todos los empleados , para los
porcentajes de descuento por afiliación al sistema nacional de pensiones ( 6% del
sueldo) y por salud ( 3% del sueldo ).

Considere métodos de calculo para el monto de horas extras ( sueldo básico/240 *


horas extras ), monto de los descuentos por salud , monto de los descuentos de
pensión y sueldo total.

S-ar putea să vă placă și