Вы находитесь на странице: 1из 4

Programacin Orientada a Objetos

Clase Rectngulo
Descripcin del problema

Escribe una clase llamada Rectngulo que posea dos atributos de tipo entero
llamados largo y ancho. La clase debe poseer los siguientes mtodos:
Un mtodo constructor que no reciba ningn parmetro y que inicialice las
dimensiones del rectngulo (largo y ancho) con dos enteros positivos por defecto.
Otro mtodo constructor que reciba el ancho y el largo como parmetros. Se debe
chequear que ambos valores sean positivos antes de asignrselos a los atributos
correspondientes. En caso contrario, se asignarn valores por defecto.
Mtodos selectores y modificadores para la clase. Los mtodos modificadores
deben chequear que las nuevas dimensiones efectivamente sean enteros
positivos.
Una funcin que calcule y retorne el rea del rectngulo. Esta funcin no necesita
recibir ningn parmetro.
Otra funcin que calcule y retorne el permetro del rectngulo. Esta funcin no
necesita recibir ningn parmetro.
Otra funcin que determine si el rectngulo es horizontal o vertical. Decimos que el
rectngulo es horizontal si el valor del largo es mayor que el del ancho. En caso
contrario, decimos que el rectngulo es vertical. Esta funcin no necesita recibir
ningn parmetro.
Un procedimiento que despliegue en pantalla los valores de las dimensiones (largo
y ancho) del rectngulo. Este procedimiento no necesita recibir ningn parmetro.
Otro procedimiento que dibuje en pantalla el rectngulo mediante asteriscos,
utilizando tantas columnas como valor tenga el largo y tantas filas como valor
tenga el ancho. Por ejemplo, si el ancho valiera 3 y el largo valiera 12, se debera
desplegar as:
************
************
************
Este procedimiento no necesita recibir ningn parmetro.

Cdigo fuente

package unidadIII;
public class Rectangulo {
int largo,ancho;
public Rectangulo(int largo, int ancho) {
if (largo>0 && ancho>0){
this.largo=largo;
this.ancho=ancho;
}
if (largo<0 && ancho<0){
this.largo=0;
this.ancho=0;
}
}
public Rectangulo() {
}
public int getLargo() {
return largo;
}
public int getAncho() {
return ancho;
}
public void setLargo(int largo) {
if(largo>0){
this.largo = largo;
}
}
public void setAncho(int ancho) {
if(ancho>0){
this.ancho = ancho;
}
}
public int calculaArea(){
return largo*ancho;
}
public int calculaPerimetro(){
return (2*largo)+(2*ancho);
}
public String direccionRectangulo(){

if(largo>ancho){
return "horizontal";
}
else if(largo<ancho){
return "vertical";
}
else if(largo==ancho){
return "No es rectangulo, es cuadrado";
}
return "";
}
public String toString(){
return "\nLargo: "+largo+"\nAncho: "+ancho;
}
public String dibujaRectangulo(){
for(int x=0;x<ancho;x++){
System.out.println();
for(int y=0;y<largo;y++){
System.out.print("*");
}
}
return "";
}
}
package unidadIII;
import java.util.Scanner;
public class ProyectoRectangulo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Rectangulo r1=new Rectangulo(5,5);
Rectangulo r2=new Rectangulo();
System.out.println("Dimensiones del rectangulo 1: "+r1);
System.out.println("\nDireccin del rectangulo: "+r1.direccionRectangulo());
System.out.println("\nSu perimetro es: "+r1.calculaPerimetro());
System.out.println("\nSu rea es: "+r1.calculaArea());
System.out.println("\nSu representacin en dibujo es la siguiente: ");
System.out.println(r1.dibujaRectangulo());
System.out.println("\nIntroduce las dimensiones para el rectangulo 2: ");
System.out.print("Largo: ");
r2.setLargo(in.nextInt());
System.out.print("Ancho: ");
r2.setAncho(in.nextInt());
System.out.println("\nDireccin del rectangulo: "+r2.direccionRectangulo());
System.out.println("\nSu perimetro es: "+r2.calculaPerimetro());
System.out.println("\nSu rea es: "+r2.calculaArea());
System.out.println("\nSu representacin en dibujo es la siguiente: ");
System.out.println(r2.dibujaRectangulo());
}
}

Ejecucin del programa