-2

私のプログラムは、オブジェクトを使用する単純なプログラムです。エラーはありません。唯一の問題は、プログラムがジャンクを出力していることです。ユーザーに名前、年齢、性別を尋ねた後。

以下は、2 つのプログラムのセットです。最初のものはオブジェクトまたは人の骨格です。2つ目は、ユーザー名・年齢・性別を聞いてプリントアウトするプリントです。

public class Person 
{
    private String name;
    private int age,personality,appearance;
    private String gender;

    //constructor method. only use it once
    public Person(String nm, int ag,String gend) {
        name=nm;
        age=ag;
        gend=gender;
        personality=1+(int)(Math.random()*10);
        appearance=1+(int)(Math.random()*10);
    }

    //accessor created
    public String getName() {
        return name;
    }

    public String getGend() {
        return gender;
    }     

    public int getInt() {
        return age;
    }


    //mutator method. When using "void" NO RETURN TYPE
    public void setName (String nm) {
        name=nm;
    }

    public void setAge (int ag) {
        age=ag;
    }

    public void setGender (String gend)
    {
        gender=gend;
    }

    //helper method (kind of like print but not really printing
    public String toString () {
        String orange ="";
        orange ="Name "+name+"/n";
        orange +="age"+age+"/n";
        orange +="Gender: "+gender"/n";
        orange +="Personality "+personality+"/n";
        orange +="Apperance "+appearance+"/n";

        return orange;
    }
}

2)

import java .util.Scanner;
public class PersonTester {
    public static void main (String []args){

    // calling person 
    Person person;
    String name="", gender ="";
    int age =0;

    Scanner input =new Scanner(System.in);
    System.out.println ("What is your name");
    name =input.nextLine();

    System.out.println("What your age?");
    age=input.nextInt();

    input.nextLine();
    System.out.println ("What is your gender");
    gender =input.nextLine();

    person=new Person (name,age,gender);

    System.out.println(person);
}

基本的なオブジェクトについて学習しています。たとえば、プライベート変数、コンストラクター、アクセサー、ミューテーター、およびヘルパー メソッドについてのみ学習しました。

4

2 に答える 2

2

toString() には 2 つのエラーがあります。+betweenを使用する必要があり、改行が必要な場合gender"/n"は使用する必要があります。\n

public String toString () {
    return "Name " + name + "\n" +
           "Age" + age + "\n" +
           "Gender: " + gender + "\n" +
           "Personality " + personality + "\n" +
           "Appearance " + appearance + "\n";
}
于 2016-04-19T02:44:30.810 に答える
0

性別が正しく出力されないことが問題である場合、問題はコンストラクタにあります。を渡していますがgend、保存していません。gender代わりに、引数をメンバー変数で上書きします。

public Person(String nm, int ag,String gend)
{
    name=nm;
    age=ag;
    gend=gender;

あなたが欲しかった:

    gender = gend;
于 2016-04-19T02:43:44.313 に答える