Java Parrot程序简介

Java Parrot程序简介,java,Java,我们有一个任务,我要学习的java类的介绍,需要我们编写一个parrot 基本上我们有一个输出 “你想说什么 用户在他的输入中输入 “废话废话” 然后鹦鹉应该重复 “废话废话” 我已经做到了这一点 package parrot; import java.util.Scanner; public class Parrot { public static void main(String[] args) { System.out.print(" What do yo

我们有一个任务,我要学习的java类的介绍,需要我们编写一个parrot

基本上我们有一个输出 “你想说什么

用户在他的输入中输入 “废话废话”

然后鹦鹉应该重复

“废话废话”

我已经做到了这一点

package parrot;

import java.util.Scanner;


public class Parrot {


    public static void main(String[] args) {
        System.out.print(" What do you want to say? ");


        Scanner input = new Scanner(System.in);
        String Parrot = input.nextLine();

        System.out.println("Paulie Says: " + Parrot);



    }
}
这给了我确切的结果,我需要,但我在实验室的指示,它希望我们这样做,在2个文件

 Add 2 files to the project: Parrot.java and ParrotTest.java
 In Parrot.java do the following:
 Create a public class called Parrot
 Inside the class create a public method called speak. The method speak has one String          parameter named word and no return value (i.e. return type void) The method header looks     like this: public void speak(String word)
 The parrot repeats anything he is told. We implement this behavior by printing the   word passed as an argument

我想我被要求做的是从另一个文件调用它。有人能给我解释一下怎么做吗,因为我不太清楚发生了什么事?

是的,你的程序执行给定的任务,但不是按照要求的方式。你的主方法应该在parrotest.java文件中执行。在这个文件中(parrotest.java),您将需要通过调用构造函数来创建类的实例(您可以称之为Parrot)

在Parrot.java中,您将创建一个名为“speak”的方法,该方法接受字符串单词


回到main方法:在这里,您将请求用户输入,捕获字符串“word”中的输入,并将其作为参数传递给您创建的speak方法。一旦您的方法具有此参数,您就可以将其内容打印到控制台。

Parrot将具有以下内容

public class Parrot
{
   public void speak( String word )
  {
     System.out.printf("%s", word);
  }
}
import java.util.Scanner;

public class ParrotTest
{

   public static void main(String[] args)
      {
   Scanner input = new Scanner(System.in);

   System.out.print("What would you like to say to the parrot?: ");

   String words = input.nextLine();

   Parrot myParrot = new Parrot();
   myParrot.speak(words);
      }     
}
Parrot测试将有以下内容

public class Parrot
{
   public void speak( String word )
  {
     System.out.printf("%s", word);
  }
}
import java.util.Scanner;

public class ParrotTest
{

   public static void main(String[] args)
      {
   Scanner input = new Scanner(System.in);

   System.out.print("What would you like to say to the parrot?: ");

   String words = input.nextLine();

   Parrot myParrot = new Parrot();
   myParrot.speak(words);
      }     
}

我不知道您是否必须使用scanner,但我会这样做

public static void main(String[] args) {
String say = IO.getString("Say something") // This is asking the user to say something

System.out.print(name);
}


If you want it to loop 10 times then
then do this




public static void main(String[] args) {
String say = IO.getString("Say something"); // This is asking the user to say something
int count = 10; // it will loop 10 times
while (count >= 10) {
System.out.print(name);
say = IO.getString("Say something");
count++;
}

顺便说一句,如果你没有IO类,你可以这样做。只要把这段代码复制到jcreator中,并在保存代码的地方说出来

/**
 * @(#)IO.java
 * This file is designed to allow HCRHS students to collect information from the
 * user during Computer Science 1 and Computer Science 2.
 * @author Mr. Twisler, Mr. Gaylord
 * @version 2.01 2014/12/21
 *      *Updated fix to let \t work for all input/output
 *      *Added input methods to allow for console input
 *      *Allowed all get methods to work with all objects
 *      *Updated format methods to use String.format()
 */

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import java.util.Scanner;
import java.util.InputMismatchException;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;

public class IO {

    // Shows a message in a popup window
    public static void showMsg(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        JOptionPane.showMessageDialog(null, text, "HCRHS", 
            JOptionPane.PLAIN_MESSAGE);
    }

/*********************************User Input Methods***************************
 * All user input methods get the data type mentioned in their name and return
 * a default value if the user enters an incorrect responce.
 ******************************************************************************/

    // Returns String typed by user, default value is ""
    public static String getString(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        String ans = JOptionPane.showInputDialog(null, text, "HCRHS",
                        JOptionPane.QUESTION_MESSAGE);
        if(ans == null) {
             return "";
        }
        return ans;
    }

    public static String nextString() {
        Scanner scan = new Scanner(System.in);
        String ans = scan.nextLine();
        scan.close();
        if(ans == null) {
             return "";
        }
        return ans;
    }

    // Returns int typed by the user, default value is 0
    public static int getInt(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return Integer.parseInt(JOptionPane.showInputDialog(null, text, 
                    "HCRHS", JOptionPane.QUESTION_MESSAGE));
        } catch (NumberFormatException e) {
            //System.out.println("Not a valid int");    
            return 0;
        }
    }

    public static int nextInt() {
        Scanner scan = new Scanner(System.in);
        int ans;
        try {
            ans = Integer.parseInt(scan.nextLine());
        } catch (NumberFormatException e) {
            //System.out.println("Not a valid int");    
            ans = 0;
        }
        scan.close();
        return ans;
    }  

    // Returns double typed by the user, default value is 0.0
    public static double getDouble(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return Double.parseDouble(JOptionPane.showInputDialog(null, text, 
                        "HCRHS", JOptionPane.QUESTION_MESSAGE));
        } catch (NumberFormatException|NullPointerException e) {
            //System.out.println("Not a valid double");
            return 0;
        }
    }

    public static double nextDouble() {
        Scanner scan = new Scanner(System.in);
        double ans;
        try {
            ans = Double.parseDouble(scan.nextLine());
        } catch (NumberFormatException|NullPointerException e) {
            //System.out.println("Not a valid double");
            ans = 0;
        }
        scan.close();
        return ans; 
    }

    // Returns char typed by the user, default value is ' '
    public static char getChar(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return JOptionPane.showInputDialog(null, text, "HCRHS", 
                        JOptionPane.QUESTION_MESSAGE).charAt(0);
        } catch (NullPointerException|StringIndexOutOfBoundsException e) {
            //System.out.println("Not a valid char");
            return ' ';
        }
    }

    public static char nextChar() {
        Scanner scan = new Scanner(System.in);
        char ans;
        try {
            ans = scan.nextLine().charAt(0);
        } catch (NullPointerException|StringIndexOutOfBoundsException e) {
            //System.out.println("Not a valid char");
            ans = ' ';
        }
        scan.close();
        return ans;
    }

    // Returns boolean typed by the user, default value is false
    public static boolean getBoolean(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        int n = JOptionPane.showOptionDialog(null, text, "HCRHS", 
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, 
                    null, new Object[]{"True", "False"}, 1);
        return (n == 0);
    }

    public static boolean nextBoolean() {
        Scanner scan = new Scanner(System.in);
        String bool = scan.nextLine().toLowerCase();
        scan.close();
        if (bool.equals("true") || bool.equals("t") || bool.equals("1")) {
            return true;
        } else {
            return false;
        }
    }

/******************************Formatting Methods******************************
 * Format is overloaded to accept Strings/int/double/char/boolean
 ******************************************************************************/

    public static String format(char just, int maxWidth, String s)  {
        if (just == 'l' || just == 'L') {
            return String.format("%-" + maxWidth + "." + maxWidth + "s", s);
        } else if (just == 'r' || just == 'R') {
            return String.format("%" + maxWidth + "." + maxWidth + "s", s);
        } else if (just == 'c' || just == 'C') {
            return format('l', maxWidth, format('r', 
                            (((maxWidth - s.length()) / 2) + s.length()), s));
        } else {
            return s;
        }
    }

    public static String format(char just, int maxWidth, int i) {
        return format(just, maxWidth, String.format("%d", i));
    }

    public static String format(char just, int maxWidth, double d, int dec) {
        return format(just, maxWidth, String.format("%,." + dec + "f", d));
    }   

    public static String format(char just, int maxWidth, char c) {
        return format(just, maxWidth, String.format("%c", c));
    }

    public static String format(char just, int maxWidth, boolean b) {
        return format(just, maxWidth, String.format("%b", b));
    }

/*********************************Fancy Expirmental Methods********************/

    public static String choice(String... options) {
        String s = (String)JOptionPane.showInputDialog(null, 
                        "Pick one of the following", "HCRHS", 
                        JOptionPane.PLAIN_MESSAGE, null, options, null);
        //If a string was returned, say so.
        if ((s != null) && (s.length() > 0)) {
            return s;
        }
        return "";   
    } 

    public static String readFile(String fileName) {
        String ans ="";
        try {
            Scanner scanner = new Scanner(new File(fileName));
            scanner.useDelimiter(System.getProperty("line.separator")); 
            while (scanner.hasNext()) {
                ans += scanner.next()+"\n";
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return ans;
    }

    public static void writeFile(String fileName, String data) {
        try {
            FileWriter fw = new FileWriter(fileName, true);
            fw.write(data);
            fw.close();
        } catch(java.io.IOException e) {
            e.printStackTrace();
        }
    }
}

将类
Parrot
的成员和方法放在一个文件中(类名必须与文件名相同),将
main()
方法单独放在类
parrotest
中。您的类名和字符串同名!将字符串名更改为“Parrot!”“我创建了主方法,并设置了扫描仪来提示用户输入信息,如何将用户输入的信息传递给创建的其他方法?Parrot Parrot=new Parrot(用户参数变量);