Me ajude em java, Questão e código abaixo

Crie uma classe Retangulo. A classe tem atributos comprimento e altura, cada uma dos quais é configurado com o padrão 1. A classe deve ter métodos que calculam o perímetro e a área. A classe tem métodos set e get para o comprimento e a largura. Os métodos set devem verificar se comprimento e altura são, cada um, números de ponto flutuante maiores que 0,0 e menores que 20,0. Escreva um programa para testar a classe Retangulo.
Veja o código abaixo, ta dando erro, pois não aparece o resultado

package Aula;

import java.util.Scanner;

public class Retangulo {

private static float largura;
private static float altura;

public float getLargura() {
	return largura;
}

public boolean setLargura(float largura) {

	if ((largura < 0.0) || (largura > 20.0)) {
		System.out.println("numero invalido");
		return false;
	} else {
		Retangulo.largura = largura;
		return true;
	}
}

public float getAltura() {
	return altura;
}

public boolean setAltura(float altura) {

	if ((altura < 0.0) || (altura > 20.0)) {
		System.out.println("numero invalido");
		return false;
		

	} else {
		Retangulo.altura = altura;
		return true;
	}
}

public float perimetro() {
	float p = 2 * (largura + altura);
	return p;
}

public float area() {
	float a = (largura * altura);
	return a;
}

}

package Aula;

import java.util.Scanner;

public class RetanguloTest {
public static void main(String args[]) {
Retangulo oj = new Retangulo();
Scanner entrada = new Scanner(System.in);
System.out.print(“altura:”);
float altura = entrada.nextFloat();
System.out.print(“largura:”);
float largura = entrada.nextFloat();
System.out.print(“perimetro : " + oj.perimetro() + " area :”
+ oj.area());

}

}

Você está lendo os dados e passando para variáveis locais (declaradas dentro de um método) e instanciadas nele. No entanto, não está modificando os valores das variáveis internas (atributos) da classe Retangulo com os métodos modificadores (os sets). Era esperado algo como isso:

import java.util.Scanner;

public class RetanguloTest {
	public static void main(String args[]) {
		Retangulo oj = new Retangulo();
		Scanner entrada = new Scanner(System.in);
		
		System.out.print(“altura:”);
		float altura = entrada.nextFloat();
		setAltura(altura);
		
		System.out.print(“largura:”);
		float largura = entrada.nextFloat();
		setLargura(largura);
		
		System.out.print(“perimetro : " + oj.perimetro() + " area :”
		+ oj.area());
	}
}

ou mesmo isso:

import java.util.Scanner;

public class RetanguloTest {
	public static void main(String args[]) {
		Retangulo oj = new Retangulo();
		Scanner entrada = new Scanner(System.in);
		
		System.out.print(“altura:”);
		setAltura(entrada.nextFloat());
		
		System.out.print(“largura:”);
		setLargura(entrada.nextFloat());
		
		System.out.print(“perimetro : " + oj.perimetro() + " area :”
		+ oj.area());
	}
}

Os métodos set devem ser escritos de tal forma que defina o valor de um atributo da classe, podendo, sem problema algum fazer validações. Por exemplo:

public void setLargura(float largura) {

	if ((largura < 0.0) || (largura > 20.0)) {
		System.out.println("numero inválido");

	}else{
		this.largura = largura;
	}
}

Esses dois atributos não devem ser estáticos.