Конструктор без аргументов

Так что эта ситуация немного расстраивает меня, потому что мой онлайн-учитель предпочитает, чтобы мы самостоятельно самостоятельно изучали уроки онлайн, и везде, куда бы я ни посмотрел, я до сих пор не могу понять, как полностью использовать no-args

Ниже приведена программа, которую я создаю, однако, насколько я знаю, я не могу запустить ее без main, но всякий раз, когда я вхожу в main, она не запускает конструкцию no-args, и я просто в общем не знаю, где я портлю,

import java.util.Scanner;
public class Week07_Assignment {

    Scanner input = new Scanner(System.in);

    private double height = 1;
    private double width=1;
    private double h;
    private double w;


    public void createrectangle(){
        System.out.println("Give me both the height and width of this rectangle");
        height = heightgetter(height);
        width = heightgetter(width);
        area(height, width);
        perimeter(height, width);
    }

    public double heightgetter(double a){
        a = input.nextDouble();
        return a;

    }

    public double widthgetter(double a){
        a = input.nextDouble();
        return a;
    }

    public void area(double a, double b){
        double area = a * b;
        System.out.println("This is the area: " +area);

    }

    public void perimeter(double a, double b){
        double perimeter = 2 * (a + b);
        System.out.println("This is the area: " +perimeter);

    }
}

2 ответа

hoChay ответ правильный. В дополнение к его комментарию, вот один из способов разделить вашу логику на разные классы.


Начиная с нуля (и основываясь на вашем вопросе) вам нужно будет создать класс Rectangle которые должны иметь только методы, которые касаются всего, что связано с прямоугольником, например, вычисление периметра или площади.

Затем вы должны создать класс, который занимается чтением ввода пользователя (хотя это довольно излишне для вашего задания), а именно InputReader,

Не в последнюю очередь создайте свой Main класс, который будет служить отправной точкой при выполнении вашего кода.

Прямоугольник

package assignment_07;

public class Rectangle {
    private double height;
    private double width;

    private double area;
    private double perimeter;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public void create() {
        area(this.height, this.width);
        perimeter(this.height, this.width);
    }

    private double area(double width, double height) {
        this.area = width * height;
        return this.area;
    }

    private double perimeter(double width, double height) {
        this.perimeter = 2 * (width + height);
        return this.perimeter;
    }

    public double getPerimeter(){
        return this.perimeter;
    }

    public double getArea(){
        return this.area;
    }

    @Override
    public String toString() {
        return "Perimeter: " + this.perimeter + "\nArea: " + this.area;
    }
}

InputReader

package assignment_07;
import java.util.Scanner;

public class InputReader {
    private Scanner scanner;

    public InputReader() {
        scanner = new Scanner(System.in);
    }

    public double readDouble(){
        return scanner.nextDouble();
    }
}

Начальная точка (главная)

import assignment_07.InputReader;
import assignment_07.Rectangle;

public class Main {
    public static void main(String[] args) {
        InputReader inputReader = new InputReader();

        // Get measurements from user
        double width = inputReader.readDouble();
        double height = inputReader.readDouble();

        // Create rectangle
        Rectangle rectangle = new Rectangle(width, height);
        rectangle.create();

        // Print
        System.out.println(rectangle);
    }
}

Обратите внимание, что InputReader а также Rectangle класс находится в отдельном пакете, чтобы сохранить любое соглашение об именах, которое требуется для вашего назначения.

Привет, как упомянул @BackSlash, вы можете использовать код ниже.

public static void main (String[] args)
 {
     Week07_Assignment object = new Week07_Assignment();

    object.createrectangle(); 

 }
Другие вопросы по тегам