Poo S4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Control semana 4

Jonattan Diaz Lopez

PROGRAMACIÓN ORIENTADA A OBJETOS I

Instituto IACC

31-05-2021
Se requiere crear una clase llamada persona que siga las siguientes condiciones:

Sus atributos son: nombre, apellido, edad, RUT, sexo (H hombre, M mujer), peso y altura.
No queremos que se accedan directamente a ellos. Piensa que modificador de acceso es
el más adecuado, también su tipo.

Por defecto, todos los atributos menos el RUT serán valores por defecto según su tipo (0
números, cadena vacía para String, etc.). Sexo será hombre por defecto, usa una
constante para ello

Se agrega la clase colocando primero los atributos, las variables con String son de texto,
las INT numéricas, char con un solo valor texto, double para decimales.
public class Persona {
//atributos
private String nombre="";
private String apellido="";
private int edad=0;
private String RUT=generRUT();
private char sexo;//H hombre - M mujer
private double peso=0;
private double altura=0;
private boolean mayorEdad = false;;
//constantes
public static final char sexoDefecto = 'H';
public static final int bajoPeso = -1;
public static final int pesoIdeal = 0;
public static final int sobrePeso = 1;
Se implantarán varios constructores:

Un constructor por defecto.


Un constructor con el nombre, edad y sexo, el resto por defecto.
Un constructor con todos los atributos como parámetro
//Se mostrarán los atributos por defecto
public Persona() {
esMayorDeEdad();//función para saber si persona es mayor de edad
sexo=comprobarSexo(sexoDefecto); // función para reconocer sexo
System.out.println(informacionPersona()); // mostrar informacion
}
// se mostrarán los atributos insertados nombre, edad y sexo los demás por defecto
public Persona(String nombre, int edad, char sexo) {
this.nombre = nombre;
this.edad = edad;
this.sexo=comprobarSexo(sexo); // función para reconocer sexo
esMayorDeEdad();//función para saber si persona es mayor de edad
System.out.println(informacionPersona());// mostrar informacion
}
//Estarán todos los atributos
public Persona(String nombre, String apellido, int edad, char sexo, double peso, double
altura) {
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
this.peso = peso;
this.altura = altura;
this.sexo=comprobarSexo(sexo); // función para reconocer sexo
esMayorDeEdad();//función para saber si persona es mayor de edad
System.out.println(informacionPersona());// mostrar informacion
}
calcularIMC(): calculará si la persona está en su peso ideal (peso en kg/(altura^2 en m)), si
esta fórmula devuelve un valor menor que 20, la función devuelve un -1, si devuelve un
número entre 20 y 25 (incluidos), significa que está por debajo de su peso ideal la función
devuelve un 0 y si devuelve un valor mayor que 25 significa que tiene sobrepeso, la función
devuelve un 1. Te recomiendo que uses constantes para devolver estos valores.

Para calcular un elevado se ocupará una función Math.pow(valor o variable a levar, valor
o variable de cuanto se eleva), luego el resultado lo ocuparemos en un if para retornar el
valor que necesitamos

public int calcularIMC() {

double IMC = peso / (Math.pow(altura, 2));

if (IMC<20) {
return bajoPeso;
}else if (IMC >= 20 && IMC <= 25) {
return pesoIdeal;
} else if (IMC > 25) {
return sobrePeso;
} else {
return 2;
}
}

esMayorDeEdad(): indica si es mayor de edad, devuelve un booleano:


para devolver un valor booleano el resultado tiene que ser o true o false, se ocupara la
variable edad que esta de forma private.

public boolean esMayorDeEdad() {

if (edad >= 18) {


mayorEdad = true;
}
return mayorEdad;
}
comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es
correcto, será H. No será visible al exterior.
La función para reconocer el sexo

private char comprobarSexo( char sexo) {


if (sexo == 'H' || sexo == 'M') {
return sexo;
}else{
return sexoDefecto;
}
}

generRUT (): genera un número aleatorio de 8 cifras más un digito verificador. Este
método será invocado cuando se construya el objeto. Puedes dividir el método para que te
sea más fácil. No será visible al exterior.

Para mostrar 8 cifras se ocupará la función Math.random()


Se obtendrá el numero del rut y el digito luego concatenamos ambos valores

private String generRUT() {


int numRut = ((int) Math.floor(Math.random() * 90000000 + 10000000));
int digito=((int) Math.floor(Math.random() * 9));
String rut=numRut + "-" + digito;
return rut;
}
Métodos set de cada parámetro, excepto de RUT.

public void setNombre(String nombre) {


this.nombre = nombre;
}

public void serApellido(String apellido) {


this.apellido = apellido;
}

public void setEdad(int edad) {


this.edad = edad;
}

public void setSexo(char sexo) {


this.sexo = sexo;
}

public void setPeso(double peso) {


this.peso = peso;
}

public void setAltura(double altura) {


this.altura = altura;
}

Para mostrar la información:

public String informacionPersona() {


String sexoPersona;
if (sexo == 'H') {
sexoPersona = "Hombre";
} else {
sexoPersona = "Mujer";
}
return "Informacion de la persona:\n"
+ "Nombre: " + nombre + "\n"
+ "Sexo: " + sexoPersona + "\n"
+ "Mayor de edad: " + mayorEdad + "\n"
+ "Edad: " + edad + " años\n"
+ "DNI: " + RUT + "\n"
+ "Peso: " + peso + " kg\n"
+ "Altura: " + altura + " metros\n"
+ "Caluclo"+calcularIMC();
Bibliografía

Contenido semana 4

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy