Ejercicios de Programación Orientada a Objetos
Ahora que conocemos la programación orientada a Objetos en JAVA ahora realizaremos unos ejercicios.
1. Construir un programa que dada una serie de vehículos caracterizados por su marca, modelo y precio, imprima las propiedades del vehículo mas barato. Para ello, se deberán leer por teclado las características de cada vehículo y crear una clase que represente a casa uno de ellos.
package POOejercicio01;
import java.util.Scanner;
public class Vehiculo {
public static int indiceCochesMBarato(Vehiculo coches[]){
float precio;
int indice = 0;
precio = coches[0].getPrecio();
for (int i = 1; i < coches.length; i++) {
if(coches[i].getPrecio() < precio){
precio = coches[i].getPrecio();
indice = i;
}
}
return indice;
}
private String marca;
private String modelo;
private float precio;
//Constructor
public Vehiculo(String marca, String modelo, float precio) {
this.marca = marca;
this.modelo = modelo;
this.precio = precio;
}
public float getPrecio() {
return precio;
}
public String mostrarDatos(){
return "Marca: "+marca+"\nModelo: "
+modelo+"\nPrecio: $"+precio+"\n";
}
public static void main (String[] args){
String marca,modelo;
float precio;
int Nvehiculos, indiceBarato;
Scanner leer = new Scanner(System.in);
System.out.print("Ingrese la cantidad de vehiculos: ");
Nvehiculos = leer.nextInt();
//Crear objetos para los coches
Vehiculo coches[] = new Vehiculo[Nvehiculos];
for (int i = 0; i < coches.length; i++) {
leer.nextLine();
System.out.println("\nIngrese las carateristicas del"
+ " coche "+(i+1)+":");
System.out.print("Ingrese MARCA: ");
marca = leer.nextLine();
System.out.print("Ingrese MODELO: ");
modelo = leer.nextLine();
System.out.print("Ingrese PRECIO: ");
precio = leer.nextFloat();
coches[i] = new Vehiculo(marca, modelo, precio);
}
indiceBarato = indiceCochesMBarato(coches);
System.out.println("\nEl coche mas barato es: ");
System.out.println(coches[indiceBarato].mostrarDatos());
}
}
Al ejecutar el programa:
2. Construir un programa que calcule el area y el perimetro de un
cuadrilátero dada la longitud de sus 2 lados. Los Valores de la longitud deberán introducirse por lineas de ordenes. Si es un cuadrado, solo se proporcionara la longitud de uno de sus lados al constructor.
package POOejercicio01;
import javax.swing.JOptionPane;
public class Cuadrilatero {
private float lado1;
private float lado2;
//Metodos
//Met.Constuctor1
public Cuadrilatero(float lado1, float lado2) {
this.lado1 = lado1;
this.lado2 = lado2;
}
//MEt. COnstruc 2 si es cuadrado
public Cuadrilatero(float lado1) {
this.lado1 = this.lado2 = lado1;
}
public float getPerimetro(){
float perimetro = 2 * (lado1 + lado2);
return perimetro;
}
public float getArea(){
float area = (lado1 * lado2);
return area;
}
public static void main (String[] args){
Cuadrilatero c1;
float lado1,lado2;
lado1=Float.parseFloat(JOptionPane.showInputDialog("Ingrese el lado 1: ")); //que esté en una linea
lado2=Float.parseFloat(JOptionPane.showInputDialog("Ingrese el lado 2: "));// que esté en una linea
if(lado1 == lado2){//Es un cuadrado
c1 = new Cuadrilatero(lado1);
}else{//Cuadrilatero
c1 = new Cuadrilatero(lado1, lado2);
}
System.out.println("El perimetro es: "+c1.getPerimetro()+" m");
System.out.println("El area es: "+c1.getArea()+" m2");
}
}
Al ejecutar ingresemos, 23 y 41:
3. Calcular el perímetro y el área de N triángulos isósceles; realizar un arreglo para determinar cual de los triangulos tiene mayor superficie:
package POOejercicio01;
import java.util.Scanner;
public class TrianguloIsosceles {
public static float areaMayor(TrianguloIsosceles triangulos[]){
float area;
area = triangulos[0].getArea();
for (int i = 1; i < triangulos.length; i++) {
if(triangulos[i].getArea() > area){
area = triangulos[i].getArea();
}
}
return area;
}
private float base;
private float lado;
public TrianguloIsosceles(float base, float lado) {
this.base = base;
this.lado = lado;
}
public float getPerimetro(){
float perimetro = 2*(lado)+base;
return perimetro;
}
public float getArea(){
float area = (float) (base *
Math.sqrt((lado * lado)-((base * base)/4))/2);
return area;
}
public static void main (String[] args){
float base, lado;
int Ntriangulos;
Scanner leer = new Scanner(System.in);
System.out.print("Ingrese el Numero de Triangulos: ");
Ntriangulos = leer.nextInt();
TrianguloIsosceles triangulos[] = new TrianguloIsosceles[Ntriangulos]; //una sola linea
for (int i = 0; i < triangulos.length; i++) {
System.out.println("\nIngrese los Valores para el triangulo "
+(i+1)+":");
System.out.print("Ingrese la Base: ");
base = leer.nextFloat();
System.out.print("Ingrese el lado: ");
lado = leer.nextFloat();
triangulos[i] = new TrianguloIsosceles(base, lado);
System.out.println("\nEl perimetro del triangulo "
+(i+1)+" es: "
+triangulos[i].getPerimetro()+" m2");
System.out.println("El Area del Triangulo "+(i+1)+" es: "
+triangulos[i].getArea()+" m2");
}
System.out.println("\nEl area de Mayor Superficie es: "
+areaMayor(triangulos));
}
}
Al ejecutar la aplicación:
Esto seria todo