Как мне пересмотреть этот Java-код, чтобы ввести 1, 2 или 3, чтобы он печатал низкий средний или высокий - PullRequest
0 голосов
/ 08 декабря 2018

Я написал код ниже, но у меня проблемы с настройкой громкости.Все остальное работает.Мне нужно использовать 1, 2 или 3, чтобы установить низкий, средний или высокий уровень громкости.Мой вывод продолжает отображаться как 0 или только число, которое я ввелВсе это должно быть сделано в одном и том же java-файле класса (НЕ с тестовым классом).Может кто-нибудь сказать мне, что мне не хватает, чтобы исправить проблему громкости?

пакет наушников;

import java.util.Scanner;

/ ** * Файл: Наушники.java * Назначение: класс наушников показывает, подключены ли наушники, * цвет, производителя, громкость, и дает пользователю возможность * изменить настройку громкости * / общедоступный класс Наушники {

// Define class variables
private boolean pluggedIn, wirelessBluetooth;
private String color;
private int volume = MEDIUM;
private String manufacturer;
private String model;
public static final int LOW = 1;
public static final int MEDIUM = 2;
public static final int HIGH = 3;
public int getVolume;


// New scanner to receive user inputs
Scanner scannerIn = new Scanner(System.in);

// Default Constructor
public Headphones() {
    this.pluggedIn = false;
    this.wirelessBluetooth = false;
    this.color = "black";
    this.manufacturer = "sony";
    this.model = "2.0";
    this.volume = MEDIUM;
}
    public int getVolume() {
    return volume;

} //End Default Constructor

// Method to prompt for user input values
public void inputValues(){    

    // Plugged in prompt
    System.out.print("Are the headphones plugged in [true or false]?  ");
    pluggedIn = scannerIn.nextBoolean(); 

    // wireless bluetooth prompt
    System.out.print("Are headphones wireless bluetooth [true or false]?  ");
    wirelessBluetooth = scannerIn.nextBoolean(); 

    // Color prompt
    System.out.print("What is the color of the headphones?  ");
    color = scannerIn.next();

    // Volume prompt
    System.out.print("What volume are the headphones set to [1,2, 3]?  ");
    getVolume = scannerIn.nextInt();

     // Manufacturer prompt
    System.out.print("Enter the manufacturer of the headphones:  ");
    manufacturer = scannerIn.next();

    // Model prompt
    System.out.print("Enter the model of the headphones:  ");
    model = scannerIn.next();

} //End inputValues method    

// Verification method - printing input values
public void dataVerification() {
    System.out.println("\n\t\u266F \u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \n \t Headphones plugged in:  " + pluggedIn + "\n \t Wireless Bluetooth:     " + wirelessBluetooth + "\n \t Color of headphones:    " + color 
            + "\n \t Volume:                " + getVolume + "\n \t Manufacturer:          " + manufacturer + "\n \t Model:                 " + model + " \n \t\u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F");
} //End dataVerification method

// Change volume of headphones
public void changeVolume() {
    int volumeChange;

    // Prompting user with option to change volume
    System.out.print("\nWould you like to change the volume"
            + "[y or n]?  ");
    volumeChange = scannerIn.next().charAt(0);

    // if yes, prompt for volume change level
    if (volumeChange == 'y') {
        System.out.print("\nWhat volume would you like to set the headphones [1, 2, or 3]"
                + " to?  ");
        volume = scannerIn.nextInt();

        System.out.println("\nThe volume is now set to:  " + getVolume //confirmation of volume change message
                + " ");


    } //End volumeChange If
} //End changeVolume method

public static void main(String[] args) {
    Headphones headphone = new Headphones();

    // New scanner to receive user inputs
    Scanner check = new Scanner(System.in);

    //variable to exit program
    int endProgram = 4;

    while (true) {

    headphone.inputValues();
    headphone.dataVerification();
    headphone.changeVolume();

        //Prompt user whether to loop program or exit
        System.out.println("Do you wish to enter data for an additional pair of headphones? [Enter 4 to continue or enter 0 to exit program.]");
        endProgram = check.nextInt();


        if (endProgram == 0) {
            break;

        }//End if endProgram == 0
     }//End if true

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018
public int getVolume;   //comment this line in your code. Use volume variable instead of getVolume in everywhere of your code

Необходимо выделить две точки, которые помогут вам улучшить

  1. Старайтесь избегать использования глаголов для переменных.Лучше всего при рассмотрении концепции ООП
  2. система должна иметь одну переменную, чтобы сохранить значение для одного свойства.Но здесь вы использовали две отдельные переменные для сохранения статуса тома.

import java.util.Scanner;

public class Headphones
{
    // Define class variables
    private boolean pluggedIn, wirelessBluetooth;
    private String color;
    private int volume = MEDIUM;
    private String manufacturer;
    private String model;
    public static final int LOW = 1;
    public static final int MEDIUM = 2;
    public static final int HIGH = 3
   //    public int getVolume;                //No need to use seperate variable for volume and changed value


   // New scanner to receive user inputs
    Scanner scannerIn = new Scanner(System.in);

    // Default Constructor
 public Headphones()
    {
        this.pluggedIn = false;
        this.wirelessBluetooth = false;
        this.color = "black";
        this.manufacturer = "sony";
        this.model = "2.0";
        this.volume = MEDIUM;
    }
    public int getVolume()
    {
        return volume;
    } //End Default Constructor

    // Method to prompt for user input values
    public void inputValues()
    {

        // Plugged in prompt
        System.out.print("Are the headphones plugged in [true or false]?  ");
        pluggedIn = scannerIn.nextBoolean();

        // wireless bluetooth prompt
        System.out.print("Are headphones wireless bluetooth [true or false]?  ");
        wirelessBluetooth = scannerIn.nextBoolean();

       // Color prompt
       System.out.print("What is the color of the headphones?  ");
       color = scannerIn.next();

        // Volume prompt
       System.out.print("What volume are the headphones set to [1,2, 3]?  ");
       volume = scannerIn.nextInt();

        // Manufacturer prompt
       System.out.print("Enter the manufacturer of the headphones:  ");
       manufacturer = scannerIn.next();

        // Model prompt
       System.out.print("Enter the model of the headphones:  ");
       model = scannerIn.next();

     } //End inputValues method

    // Verification method - printing input values
    public void dataVerification()
    {
        System.out.println("\n\t\u266F \u2669 \u266D \u266F \u2669 \u266D \u266F 
\u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \u266F \u2669 \u266D \n \t 
Headphones plugged in:  " + pluggedIn + "\n \t Wireless Bluetooth:     " + 
wirelessBluetooth + "\n \t Color of headphones:    " + color
            + "\n \t Volume:                " + volume + "\n \t Manufacturer:          " + manufacturer + "\n \t Model:                 " + model + " \n \t\u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F \u266D \u2669 \u266F");
    } //End dataVerification method

    // Change volume of headphones
    public void changeVolume()
    {
        int volumeChange;

        // Prompting user with option to change volume
        System.out.print("\nWould you like to change the volume"
                + "[y or n]?  ");
        volumeChange = scannerIn.next().charAt(0);

        // if yes, prompt for volume change level
        if (volumeChange == 'y') {
            System.out.print("\nWhat volume would you like to set the headphones [1, 2, or 3]"
                + " to?  ");
            volume = scannerIn.nextInt();

            System.out.println("\nThe volume is now set to:  " + volume //confirmation of volume change message
                + " ");


        } //End volumeChange If
    } //End changeVolume method

    public static void main(String[] args)
    {
        Headphones headphone = new Headphones();

        // New scanner to receive user inputs
        Scanner check = new Scanner(System.in);

       //variable to exit program
        int endProgram = 4;

        while (true) {

            headphone.inputValues();
            headphone.dataVerification();
            headphone.changeVolume();

            //Prompt user whether to loop program or exit
            System.out.println("Do you wish to enter data for an additional pair of headphones? [Enter 4 to continue or enter 0 to exit program.]");
            endProgram = check.nextInt();


            if (endProgram == 0) {
                break;

            }//End if endProgram == 0
        }//End if
    }
}
0 голосов
/ 08 декабря 2018

Попробуйте эту функцию changeVolume ().

// Change volume of headphones
    public void changeVolume() {
        char volumeChange;

        // Prompting user with option to change volume
        System.out.print("\nWould you like to change the volume"
                + "[y or n]?  ");
        volumeChange = scannerIn.next().charAt(0);

        // if yes, prompt for volume change level
        if (volumeChange == 'y') {
            System.out.print("\nWhat volume would you like to set the headphones [1, 2, or 3]"
                    + " to?  ");
            volume = scannerIn.nextInt();

            System.out.println("\nThe volume is now set to:  " + getVolume //confirmation of volume change message
                    + " ");


        } //End volumeChange If
    } //End changeVolume method
...