-1

出力の印刷に問題があります。

クラスメソッド:

public class Account {
    private String name1;
    private String name2;
    private  double grade1;
    private  double grade2;
    private  double grade3;
    private  double average;
    public void setAccount(String a1 ,String a2 ,double b1,double b2,double b3) {

        a1=name1;
        a2=name2; 
        b1=grade1;
        b2=grade2;
        b3=grade3;
    }

    public void setaverage(double k1){
        k1=average;
    }

    public String getAccount(){
        return name1;
    }

    public String getAccount1(){
        return name2;
    }

    public double getAccount2(){
        return grade1;
    }

    public double getAccount3(){
        return grade2;
    }

    public double getAccount4(){
        return grade3;
    }

    public double getaverage(){
        return average=(grade1+grade2+grade3)/3;
    }
}

そして主な方法:

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

        Account account= new Account();

        System.out.println("Enter the  frist  and last name of student" );

        String na1=in.nextLine();

        account.getAccount(na1);

    } // end main

} // end class AccountTest

私は問題がありますaccount.getAccount(na1);

プログラムが機能するかどうかを知るために、1つの文字列を出力しようとしました。

では、出力を印刷する方法は?

getメソッドに引数がないので問題はわかっていますが、初めて使用するので印刷方法がわかりません。

4

4 に答える 4

1

getAccount値を返し、パラメータを取りません。したがって、次のように記述します。

na1 = account.getAccount();
于 2013-01-25T14:20:27.603 に答える
1

ここにはたくさんの問題がありますが、心配しないでください。自分や他の人がコードを理解しやすくするためにできることはたくさんあります。カプセル化は最初は混乱しているように見えますが、私が見つけたのはかなり早く意味をなし始めます。まず、コンストラクターで割り当てを逆方向に実行します。私はあなたの先生があなたにすべてのプライベート変数に「ゲッター」と「セッター」を使わせていると思いますか?

これらの署名を使用してメソッドを作成します。

public void setName1(string n1){...}//assigns n1 to name1

public void setName2(String n2){...} //assigns n2 to name2

public void setGrade1(double g1){...} //assigns g1 to grade1

public void setGrade2(double g2){...} //assigns g2 to grade2

public void setGrade3(double g3){...} //assigns gee I wonder.

そして、コンストラクターでそれらを使用します。

public void setAccount(String n1 ,String n2 ,double g1,double g2,double g3) {

    setName1(n1);
    setName2(n2);
    setGrade1(g1);
    setGrade2(g2);
    setGrade3(g3);


}

次に、同様の方法でget*メソッドに名前を付けることをお勧めします。

 public String getName1(){...}
 public String getName2(){...}
 public double getGrade1(){...} 

そして最後に、印刷用です。すべての設定が完了したら、コンソールへの印刷は非常に簡単です。

System.out.println(getName1()); //will print name1 to the console.

コードを読み、注釈を付けて、コードが何をしているのかを(自分自身に)説明します。進むにつれて、english/humanLanguageOfChoiceのように読み始めます。

私も学生なので、実際の開発者が掘り下げたいと思ったら。

于 2013-01-25T14:41:18.590 に答える
0

このメソッドgetAccount(String input)はコードに実装されていません。

これは:account.getAccount()

于 2013-01-25T14:22:31.250 に答える
0

だから...あなたが知って学ぶべきいくつかの用語...

  1. getメソッド、いわゆるゲッターには命名規則があります。最初の部分はget、2番目の部分はキャメルケースを使用した変数の名前です。したがって、この場合、ゲッターは次のようにgetName1() getName2(), getGrade1(), getGrade2(), getGrade3()なります。getAccount()ではなく、自分自身や他の開発者をだまします。この規則を使用しない場合...
  2. setメソッド、いわゆるセッターにも同じ命名規則があり、あなたの場合、セッターは同じようになりますsetName1(), setName2(), setGrade1(), setGrade2(), setGrade3()
  3. ゲッターはクラスから変数(値)を返すことになっているので、セッターはインスタンスメンバー(インスタンスまたはクラス変数)に何らかの値を「設定」する必要があります。
  4. 最後のポイントから、getterはpublic getVariable(引数なし)public String getName1()であり、setterはpublic setVariable(インスタンス変数に与えられる引数)であることが明確に示されています。public setName1(String name1)

あなたの場合、設定せず、変数に値を与えませんが、その値を取得したいのですが、明らかにnull値になります...それは明らかですか?

于 2013-01-25T14:43:59.997 に答える