Está en la página 1de 59

Facultad de Ingeniería de Sistemas

y Electronica

Programacion de Objetos
Clases y Objetos

Semana 1

Ing. Alberto Moreno C.


morenouni@gmail.com
CAPITULO : TEORÍA DE OBJETOS Y
MÉTODOS
2.1 Clase

NombreClase
(NombrePaquete al que pertenece)
¿Qué pueden hacer los objetos?.
Expresado en: Algoritmos.
Atributos
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.
nombrePaquete
• biblioteca.
EJEMPLO DE OBJETOS

celular1: Celular celular2: Celular

dueño: Ivan dueño: Belissa


marca: Sony marca: LG
modelo: W300i modelo: Zafiro

llamar() llamar()
mensajeTexto() mensajeTexto()
grabar() 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.
• tipeados que reciben parámetros.
• Método constructor.
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

Es “controlada” por
Usamos el método
sentencias de
main
repetición y de decisión

La programación es El programa se ejecuta


secuencial de principio a fin

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

COMO HEMOS VENIDO TRABAJANDO

Cuando el Cuando deseamos


programa es ejecutar un
grande es mas conjunto de
difícil de dar instrucciones cada
mantenimiento 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 NO RECIBE
void Paréntesis vacíos
()
} DEVUELVE
Tipo_de_dato RECIBE
Tipo_de_dato nom_variable
String
char (String alfa)
double (int edad, String nombre)
float (char sexo, int num, double d, …)
boolean
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 Nombre Método
la clase del objeto constructor
YA PODEMOS
COMUNICARNOS
package domApli;
import biblioteca.*;
public class PrgPrograma{
public static void main(String[ ] args){
PrgPrograma objP = new PrgPrograma();
main objP.saluda( );
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
No devuelve
resultado,
no recibe
package dominioDeLaAplicacion ;
dato(s)/par
import biblioteca.* ;
á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 No devuelve
resultado, no
recibe
public resultado nombre_del_metodo dato(s)/parámet
( datos ) {
NO DEVUELVE ros
NO RECIBE
void Paréntesis vacíos
()
} DEVUELVE
Tipo_de_dato RECIBE
Tipo_de_dato nom_variable
String
char (String alfa)
double (int edad, String nombre)
float (char sexo, int num, double d, …)
boolean
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; Variables globales Se declaran fuera de
double prom; cualquier método.
public static void main(String[] args){ Pueden ser usadas
PrgPromedio objP = new PrgPromedio(); por todos los métodos
objP.solicitarNotas(); excepto en el main.
objP.calcularPromedio();
}
public void solicitarNotas( ){
do{
n1 = LE.leerInt("Ingrese nota 1"); Métodos
} while((n1>20||n1<0));
do{ void – ( )
n2 = LE.leerInt("Ingrese nota 2");
} while((n2>20||n2<0));
}
public void calcularPromedio( ){
prom = (n1+n2+(Math.max(n1,n2)))/3.0;
prom = Math.round(prom);
if(prom > 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 NO DEVUELVE
RESULTADO,
RECIBE
public resultado nombre_del_metodo ( datos ) {
DATO(S)/PARÁME
NO DEVUELVE TROS
NO RECIBE
void Paréntesis vacíos
()
} DEVUELVE
Tipo_de_dato RECIBE
Tipo_de_dato nom_variable
String
char (String alfa)
double (int edad, String nombre)
float (char sexo, int num, double d, …)
boolean
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");
} while((n1>20||n1<0)); solicitarNotas, llama
a calcularPromedio y
do{ le envía los valores
int n2 = LE.leerInt("Ingrese nota 2");
calcularPromedio(n1, n2); de n1 y n2
} while((n2>20||n2<0));
}
public void calcularPromedio(int a, int b){
double prom=0;
prom = (a+b+(Math.max(a,b)))/3.0;
Son aquellas que prom = Math.round(prom);
han sido declaradas
dentro de un if(prom > 10){
método, y por lo LE.mostrarInformacion("Aprobado con "+prom);
tanto solo son }else{
reconocidas por LE.mostrarInformacion("Desaprobado con "+prom);
estos. }
}
}
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 NO RECIBE
void Paréntesis vacíos
} ()
DEVUELVE
Tipo_de_dato RECIBE
Tipo_de_dato nom_variable
String
char (String alfa)
double (int edad, String nombre)
float (char sexo, int num, double d, …)
boolean

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 NO RECIBE
void Paréntesis vacíos
()
} DEVUELVE
Tipo_de_dato RECIBE
Tipo_de_dato nom_variable
String
char (String alfa)
double (int edad, String nombre)
float (char sexo, int num, double d, …)
boolean
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 10%
sueldo <=1600
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 20% 00%
Sueldo>=410 y 10% 08%
sueldo <=160010%
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.

También podría gustarte