Я изучаю Java, и я просматриваю Deitel & Книга Дейтеля «Java: как программировать». Во время обучения я пытаюсь выполнять упражнения в спине. Конкретное упражнение, над которым я работаю, это:Создание класса, затем тестирование этого класса
Создайте прямоугольник класса с длиной и шириной атрибутов, каждый из которых по умолчанию равен 1. Предоставьте методы, которые вычисляют периметр и площадь прямоугольника. Используйте методы set и get для длины и ширины. Установленные методы будут проверять, что длина и ширина - это числа с плавающей запятой, превышающие 0,0 и менее 20,0. Напишите программу для проверки класса Rectangle.
Вот класс, я создал:
package rectangle;
public class Rectangle {
public float rectangle;
public float length;
public float width;
public float perimeter;
public float area;
public Rectangle(float length, float width){
if(length < 0.0 || length >= 20.0){
throw new IllegalArgumentException("Length must be between 0.0 and 20.0");
}
if(width < 0.0 || width >= 20.0){
throw new IllegalArgumentException("Width must be between 0.0 abnd 20.00");
}
this.length = length;
this.width = width;
}
public float getLength(){
return length;
}
public float getWidth(){
return width;
}
public void setPerimeter(float perimeter){
perimeter = ((getLength() *2) + (getWidth()*2));
}
public float getPerimeter(){
return perimeter;
}
public void setArea(float area){
area = getLength() * getWidth();
}
public float area(){
return area;
}
}
Вот тестовый класс или привод Класс:
package rectangle;
public class TestRectangle {
public static void main(String[] args){
Rectangle rectangle1 = new Rectangle (3.2, 3.3);
System.out.printf("The perimeter of rectangle1 is: %d%n", rectangle1.getPerimeter());
}
}
Как я бегу класс Test (в IDE) это предупреждение показывает :
«Несовместимые типы: возможное преобразование с потерями из double to float».
Я не понимаю, почему IDE подходит к этому предупреждению. Может ли кто-нибудь помочь?
Литералы с плавающей запятой в Java являются 'double', но ваш конструктор' Rectangle' принимает 'float'. Просто измените тип данных параметров в своем конструкторе на 'double', чтобы устранить возможные ошибки позже. – jdphenix
Что происходит с аксессуарами для публичных экземпляров vars? Сделайте их частными! И что такое 'public float rectangle'? –