clases y objetos-1

Facultad de Ingeniería de Sistemas y Electronica Programacion de Objetos Clases y Objetos Semana 1 Ing. Alberto Moreno

Views 92 Downloads 3 File size 804KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Facultad de Ingeniería de Sistemas y Electronica Programacion de Objetos Clases y Objetos Semana 1

Ing. Alberto Moreno C. [email protected]

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.1 Clase

NombreClase (NombrePaquete al que pertenece)

Atributos

¿Qué pueden hacer los objetos?. Expresado en:

Algoritmos.

Métodos DEFINICIÓN: • Los métodos representan pequeños subprogramas encapsulados dentro de las clases y contribuyen a definir el comportamiento típico de los objetos. • Los métodos especifican la forma en que se controlan los datos de un objeto.

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.2 Paquete



Paquete: Conjunto de clases similares ⚫

• •

Un paquete permiten organizar las clases. Un paquete contiene clases que tienen funciones similares.

dominioDeLaAplicación. biblioteca.

nombrePaquete

EJEMPLO DE OBJETOS

celular1: Celular

celular2: Celular

dueño: Ivan marca: Sony modelo: W300i

dueño: Belissa marca: LG modelo: Zafiro

llamar() mensajeTexto() grabar()

llamar() mensajeTexto() grabar()

EJEMPLO DE CLASE

Celular dueño: String marca: String modelo: String llamar() mensajeTexto grabar()

EJEMPLO DE PAQUETE

telefoniaCelular

Empresa

Celular

Cliente

PlanTarifario

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.3 Atributo

¿Qué datos manejan los objetos? Expresado en:

Estructuras de Datos.

CLASIFICACIÓN:

TIPOS:

• Atributo de clase.

• Variables globales.

• Atributo de instancia.

• Variables locales.

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.4 Métodos

¿Qué pueden hacer los objetos?. Expresado en:

Algoritmos.

CLASIFICACION:

TIPOS:

• Método de clase.

• void que no reciben parámetros.

• Método de objeto o instancia.

• void que reciben parámetros.

• Métodos especiales

• tipeados que no reciben parámetros.

• Método principal. • Método constructor.

• tipeados que reciben parámetros.

COMO HEMOS VENIDO TRABAJANDO

domApli PrgPrograma

main()

COMO HEMOS VENIDO TRABAJANDO if, if – else,

public static void main(String[ ] args){ }

switch, while, do while, for

Usamos el método main

La programación es secuencial

Es “controlada” por sentencias de repetición y de decisión

El programa se ejecuta de principio a fin

… String nombre; Nombre = LE.leerString(“Ingrese su nombre); …

INICIO FIN

COMO HEMOS VENIDO TRABAJANDO

Cuando el programa es grande es mas difícil de dar mantenimiento

Cuando deseamos ejecutar un conjunto de instrucciones cada vez que queramos, no podemos

No podemos aislar un conjunto de instrucciones que realizan una tarea específica

OTRA FORMA DE TRABAJAR

domApli PrgPrograma

main( ) metodo1( ) metodo2( ) … metodoN( )

OTRA FORMA DE TRABAJAR Podemos ejecutar un conjunto de instrucciones cada vez que queramos. Es mas fácil de dar mantenimiento

Podemos aislar un conjunto de instrucciones que realizan una tarea específica

¿Qué es un método? • Son pequeños subprogramas dentro de nuestra clase (programa).

¿Cómo nos ayuda? Permiten definir el comportamiento de una clase (objeto). • Teniendo una mejor visión de nuestra clase.

• Ordenando nuestra clase (programa).

• Pudiendo re-ejecutar (reutilizar) un conjunto de instrucciones, las veces que queramos.

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.5 Declaración de Método

public resultado nombre_del_metodo ( datos ) { NO DEVUELVE

void

}

DEVUELVE Tipo_de_dato String char double float boolean

NO RECIBE Paréntesis vacíos ()

RECIBE Tipo_de_dato nom_variable (String alfa) (int edad, String nombre) (char sexo, int num, double d, …)

UN PROGRAMA MAS ORDENADO package domApli; import biblioteca.*; public class PrgVentas{

public static void main(String[ ] args){ }

public void mostrarListado(){ } public double yoSumo(int n1, int n2){

} }

COMUNICACIÓN

Si los métodos no se llaman entre si, no hay comunicación

¿QUÉ MÉTODO SE EJECUTA PRIMERO?

Para comunicarse el método main() con al menos un método se necesita crear un objeto de la misma clase.

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.6 Creación de Objetos PrgPrograma

main( ) metodo1( ) metodo2( ) … metodoN( )

public static void main(String[ ] args){ PrgPrograma objP = new PrgPrograma();

} Nombre de la clase

Nombre del objeto

Método constructor

YA PODEMOS COMUNICARNOS package domApli;

import biblioteca.*; public class PrgPrograma{

public static void main(String[ ] args){ PrgPrograma objP = new PrgPrograma(); objP.saluda( );

main llama a saluda

} public void saluda(){

LE.mostrarInformacion(“Hola”); }

}

Termina saluda, el control del programa regresa a main

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.7 Atributo de clase Los atributos de clase están ubicados dentro de las clases. Solo existirá una copia de cada atributo de clase para todas las instancias de la clase que se creen.

class NombreClase { // variables de clase public static void main(String[] args){ double pi = Math.PI; } …. }

Para obtener el valor de un atributo de clase, digitar el nombre de la clase en la que fue declarado el atributo, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener. (Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.8 Atributo de Instancia

Los atributos de instancia están ubicadas dentro de los objetos. Cada objeto nuevo obtiene una copia nueva de las variables de instancia que la clase define.

class NombreClase { // Atributo de instancia tipoDato nombreVar; obj.promedio; }

Para poder obtener el valor de un atributo de instancia deberá colocar el nombre del objeto, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener. (Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.9 Método de clase

package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase { ... static tipoRetorno nombreMetodo (args) { LE.mostrarInformacion(“Bienvenido”); } }

Para usar un método de clase deberá colocar el nombre de la clase en el que está definido dicho método, luego el operador punto (.) y finalmente el nombre del método que desea invocar. (Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase) .

CAPITULO : TEORÍA DE OBJETOS Y MÉTODOS 2.10 Método de instancia

package dominioDeLaAplicacion ; import biblioteca.* ;

No devuelve resultado, no recibe dato(s)/par ámetros

class NombreClase { ... tipoRetorno nombreMetodo (args) { obj.ingresarDatos(); } }

Para usar un método de instancia deberá colocar el nombre del objeto en la que fue definido el método, luego el operador punto (.) y finalmente el nombre del método que desea ejecutar. (Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase) .

TEORÍA DE OBJETOS Y MÉTODOS 2.10 Método de instancia

public

No devuelve resultado, no recibe resultado nombre_del_metodo dato(s)/parámet ( datos ) { ros NO DEVUELVE NO RECIBE

void

}

DEVUELVE Tipo_de_dato String char double float boolean

Paréntesis vacíos () RECIBE Tipo_de_dato nom_variable (String alfa) (int edad, String nombre) (char sexo, int num, double d, …)

ENUNCIADO Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso.

Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres.

En la solución utilice métodos de instancia que no retornan valor y no recibe dato(s)/Parámetros.

package domApli; import biblioteca.*; public class PrgPromedio{ int n1,n2; double prom;

Variables globales

public static void main(String[] args){ PrgPromedio objP = new PrgPromedio(); objP.solicitarNotas(); objP.calcularPromedio(); } public void solicitarNotas( ){ do{ n1 = LE.leerInt("Ingrese nota 1"); } while((n1>20||n120||n2 10){ LE.mostrarInformacion("Aprobado con "+prom); }else{ LE.mostrarInformacion("Desaprobado con "+prom); }} }

TEORÍA DE OBJETOS Y MÉTODOS 2.11 Método de instancia

public

NO DEVUELVE RESULTADO, RECIBE resultado nombre_del_metodo ( datos ) { DATO(S)/PARÁME TROS NO DEVUELVE NO RECIBE

void

}

DEVUELVE Tipo_de_dato String char double float boolean

Paréntesis vacíos () RECIBE Tipo_de_dato nom_variable (String alfa) (int edad, String nombre) (char sexo, int num, double d, …)

ENUNCIADO Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso. Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres.

En la solución utilice métodos de instancia que no retornan valor y recibe datos.

package domApli; import biblioteca.*; public class PrgPromedio1{ public static void main(String[] args){ PrgPromedio1 objP = new PrgPromedio1(); objP.solicitarNotas(); } public void solicitarNotas(){ do{ int n1 = LE.leerInt("Ingrese nota 1"); solicitarNotas, llama } while((n1>20||n120||n2 10){ LE.mostrarInformacion("Aprobado con "+prom); }else{ LE.mostrarInformacion("Desaprobado con "+prom); }

ENUNCIADO Desarrollar una solución que permita calcular el promedio de dos números enteros positivos, dos notas y dos sueldos. En la solución utilice métodos de instancia que no retornan valor y no recibe dato(s)/Parámetros. public class PrgPromedio { int num1, num2,n1, n2; double promNum, sueldo1, sueldo2, promNotas, promSueldos; public static void main(String[] args) { PrgPromedio obj = new PrgPromedio(); obj.ingresarNumero(); obj.ingresarNotas(); obj.ingresarSueldos(); obj.mensaje(); }

ENUNCIADO Desarrollar una solución que permita calcular el promedio de dos números enteros positivos, dos notas y dos sueldos. En la solución utilice métodos de instancia que no retornan valor y recibe datos. utilizar los métodos sin variables globales

public class PrgPromedio { public static void main(String[] args) { PrgPromedio obj = new PrgPromedio(); obj.ingresoDatos(); }

TEORÍA DE OBJETOS Y MÉTODOS 2.12 Método de instancia

Retorna Resultado, No Recibe Dato(s) ¿Por que retornan resultado? Por que el método solamente se encarga de realizar un función especifica y no manipula el resultado.

¿A quienes retornan resultado? Retornan resultado a quienes lo llaman, por lo tanto debe ser recibida dicha información.

TEORÍA DE OBJETOS Y MÉTODOS 2.12 Método de instancia

Retorna Resultado, No Recibe Dato(s)

public resultado nombre_del_metodo ( datos ) { NO DEVUELVE

}

void DEVUELVE Tipo_de_dato String char double float boolean

NO RECIBE Paréntesis vacíos ()

RECIBE Tipo_de_dato nom_variable (String alfa) (int edad, String nombre) (char sexo, int num, double d, …)

Cuando se retorna resultado se debe usar la sentencia return mayormente como ultima línea dentro del método.

EJEMPLO package domApli; import biblioteca.*;

public class PrgDatos{ public static void main(String[ ] args){ PrgDatos objD = new PrgDatos(); String nom1 = objD.solicitarNombre(); }

public String solicitarNombre(){ String x = LE.leerString(“Ingrese su nombre”);

return x; } }

TEORÍA DE OBJETOS Y MÉTODOS 2.13 Método de instancia

Retorna Resultado, Recibe Dato(s)

public resultado nombre_del_metodo ( datos ) { NO DEVUELVE

void

}

DEVUELVE Tipo_de_dato String char double float boolean

NO RECIBE Paréntesis vacíos ()

RECIBE Tipo_de_dato nom_variable (String alfa) (int edad, String nombre) (char sexo, int num, double d, …)

package domApli;

import biblioteca.*; public class PrgDatos{

public static void main(String[ ] args){ PrgDatos objD = new PrgDatos();

int numero = LE.leerInt("Ingrese un numero entero"); String nom1 = objD.cuboDelNumero(numero); }

public double cuboDelNumero(int n){ return Math.pow(n,3);

} }

ENUNCIADO Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso.

Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres.

En la solución utilice métodos de instancia que si retornan valor

ENUNCIADO Desarrollar una solución que permita calcular el promedio de dos números enteros positivos, dos notas y dos sueldos.

En la solución utilice métodos de instancia que si retornan valor

ENUNCIADO Elaborar la codificación en Java de una solución que permita desarrollar el siguiente menú de opciones. MENU [ 1 ] Ingresar un número. [ 2 ] Calcular y mostrar el inverso del número. [ 3 ] Calcular y mostrar la suma de los dígitos (cifras) del número. [ 4 ] Calcular y mostrar si un número es primo o no. [ 5 ] Finalizar Nota: Para la codificación de su solución implemente la clase que se muestra a continuación (no puede utilizar otros nombres de métodos ni atributos. Tampoco puede utilizar atributos o métodos adicionales. Solo utilice lo especificado en la clase).

DIAGRAMA DE CLASE

ENUNCIADO Elaborar la codificación en Java de una solución que permita desarrollar el siguiente menú de opciones. MENU [ 1 ] Ingresar en una variable 2 nombres de una persona . [ 2 ] Calcular y mostrar las iniciales de los nombres en letra mayúscula. [ 3 ] Invertir el primer nombre con el segundo nombre y mostrar el nuevo nombre. [ 4 ] Finalizar

Nota: Utilizar métodos.

Ejercicio 1 Desarrollar una solución que permita realizar el cálculo del pago mensual del sueldo de un empleado de una empresa. Dicho cálculo se realiza de la siguiente manera: el sueldo básico se calcula en base al número total de horas trabajadas basadas en una tarifa horaria. Al sueldo básico se le aplica una bonificación del 35% obteniéndose el sueldo bruto. Al sueldo bruto se le aplica un descuento del 12% obteniéndose el sueldo neto. Mostrar el sueldo básico, el sueldo bruto y el sueldo neto de un trabajador. •

Nota: Utilizar métodos y consistencia el ingreso de datos.

Ejercicio 2

Desarrollar

una solución que permita calcular el sueldo neto de un vendedor. Dicho cálculo se realiza en base a un sueldo básico equivalente a S/.465.00 nuevos soles, más una comisión del 18.5% por cada venta que el vendedor realice. Mostrar el sueldo neto del vendedor sabiendo que hizo 5 ventas en el mes. Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 3

 Desarrollar

una solución que permita ingresar una cantidad entera de dinero. Mostrar el número de billetes de S/. 100, S/. 50, S/. 20, S/. 10, S/. 5, S/. 1, que existen en la cantidad de dinero ingresada. Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 4

 Desarrollar

una solución que permita ingresar el sueldo de un obrero de la empresa “La Poderosa S.A.”. Calcular su respectivo descuento del 14.75% por concepto de impuestos y el 3.12% por concepto de cafetería. Mostrar el total de descuentos y el sueldo a cobrar.

Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 5

 Desarrollar

una solución que permita ingresar el sueldo de un obrero. Calcular el aumento de sueldo del obrero por concepto de escolaridad (17%). Mostrar el sueldo a cobrar. Nota: Validar el ingreso de datos y Utilizar métodos.

Ejercicio 6

 Desarrollar

una solución que permita calcular la nota final que ha obtenido un alumno en el curso de Algoritmo y Estructura de Datos, sabiendo que se elimina la menor nota y se duplica la mayor nota. Ingresar las notas n1, n2, n3 y n4 a través del teclado.

Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 7

Desarrollar

una solución que permita calcular la nota final que ha obtenido un alumno en el curso de laboratorio de Programación Avanzada. Utilizar la siguiente fórmula: nf = (n1 + n2 + n3 + (n4 * 2)) / 5. Ingresar las notas n1, n2, n3 y n4 a través del teclado.

Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 8

 Desarrollar

una solución que permita ingresar 2 números a través del teclado. Calcular la suma, resta, multiplicación y división de dichos números. Mostrar el resultado de las operaciones. Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 9

Desarrollar

una solución que permita leer un número y calcular el resto de dividir el número entre 3. Mostrar el resto de la división. Nota: validad el ingreso de datos y Utilizar métodos.

Ejercicio 10



Desarrollar una solución que permita convertir y mostrar una cantidad de dinero, expresado en dólares, en un equivalente en nuevos soles. Ingresar la cantidad en dólares y el tipo de cambio.

Nota: validad el ingreso de datos y Utilizar métodos.

OPERACIONES CON VECTORES Y MÉTODOS 3.1 Ingreso y Visualización de Datos 1.- Diseñe un programa que me permita realizar las siguientes operaciones con un menú de opciones: [ 1 ]Ingresar el tamaño del vector [ 2 ]Ingresar las edades de las personas. [ 3 ]Determinar la suma de las edades. [ 4 ] Mostrar la edad máxima. [ 5 ] Mostrar la edad menor. [ 6 ]Calcular y mostrar la edad promedio. [ 7 ] Finalizar. 

Utilice métodos y vectores, consistencia el ingreso de datos.

Ejercicio 1



Elaborar la codificación en Java de una solución que permita desarrollar el siguiente menú de opciones.

MENU [ 1 ] Ingresar en un vector el nombre de “n ” personas. [ 2 ] Mostrar el primer carácter del nombre en mayúscula y el resto en minúscula. [ 3 ] Calcular y mostrar la cantidad de vocales que tienen cada nombre. [ 4 ] Mostrar el nombre mas largo. [ 5 ] Finalizar. Nota: Utilizar métodos y consistencia el ingreso de datos.

Ejercicio 2 



Desarrollar una solución que me permita ingresar y almacenar el nombre y el sueldo de “n” trabajadores de una empresa. Utilice un menú con las opciones siguientes: [ 1 ] Ingresar numero de trabajadores. [ 2 ] Ingresar datos. [ 3 ] Calcular y mostrar el aumento de sueldo de cada uno de los trabajadores redondeado a dos decimales, de acuerdo a la siguiente tabla mostrada. [ 4 ] Mostrar el nombre del trabajador con mayor aumento de sueldo. [ 5 ] Mostrar todos los trabajadores que su nombre inicie con una vocal, además se debe de mostrar la vocal en mayúscula y la ultima letra en minúscula. [ 6 ] Mostrar todos los trabajadores que su nombre finalice con la letra “m” ò “n”, adicionalmente mostrar la longitud de los nombres. [ 7 ] Finalizar.

Condición

Aumento

Sueldo< 410

20%

Sueldo >=410 y sueldo 1600

05%

Ejercicio 3 Desarrollar una solución que me permita ingresar y almacenar el sueldo de “n” trabajadores de una empresa. 

MENU [ 1 ] Ingresar en un vector el nombre de “n ” personas. [ 2 ] Calcular y mostrar el sueldo neto de cada trabajador, su aumento y su respectivo descuento en base a la tabla mostrada redondear dichas cantidades a dos decimales. [ 3 ] Mostrar el monto total que paga la empresa por concepto de sueldos [ 4 ] Finalizar. Nota: Utilizar métodos.

Condición

Aumento

Descuento

Sueldo=410 y sueldo 1600

05%

15%

Ejercicio 4 Desarrollar una solución que permita ingresar y almacenar las horas trabajadas y la tarifa horaria de “n” trabajadores de una empresa. 

MENU [ 1 ] Ingresar tamaño del vector . [ 2 ] Ingresar datos . [ 3 ] Calcular y mostrar el sueldo netos de a cada trabajador, sabiendo que se tiene que descontar el 10% por impuestos y el 5% por seguro. [ 4 ] Finalizar. Nota: Utilizar métodos, validar el ingreso de datos.

Ejercicio 5 Desarrollar una solución que permita ingresar y almacenar las horas trabajadas y la tarifa horaria de “n” trabajadores de una empresa. 

MENU [ 1 ] Ingresar tamaño del vector . [ 2 ] Ingresar datos . [ 3 ] Calcular y mostrar el sueldo de cada trabajador, sabiendo que hasta 48 horas trabajadas se paga una tarifa normal y sobre las 48 horas, se paga la tarifa con un recargo del 25%. Por otro lado, si el sueldo es superior a S/1600.00 nuevos soles, al trabajador se le descuenta el 10% y si el sueldo es superior a S/ 3500.00 nuevos soles, al trabajador se le descuenta el 15%. [ 4 ] Adicionalmente, se ha establecido un aumento a todos los trabajadores, equivalentes al 15% del sueldo . Mostrar el sueldo total (sueldo bruto) y el sueldo a cobrar (sueldo neto) de cada trabajador redondeado a dos decimales. [ 5 ] Finalizar.

Nota: Utilizar métodos, validar el ingreso de datos.

Ejercicio 6



Desarrollar una solución que permita ingresar y almacenar 20 números (numeros[]) enteros mayores que cero. Determinar y mostrar la cantidad de números múltiplos de 5 y la suma de todos los números pares. Consistenciar el ingreso de datos.

Nota: Utilizar métodos.