1

print、println、およびスキャナーへの「ショートカット」を作成しようとしました。そこで、別のクラスを作成しました。それがその中にありました:

import java.util.*;
public class ShortCutClass {
    Scanner input = new Scanner(System.in);
    public void p (String text){
        System.out.print (text);
    }
    public void pl (String text){
        System.out.println (text);
    }
    public String is (){
        String a= input.nextLine();
        return a;
    }
    public double id (){
        double b= input.nextDouble();
        return b;
    }
    public int ii (){
        int c= input.nextInt();
        return c;
    }
}

だから、私はそれが動作するかどうかを確認しようとしました-これを使用して:

import java.util.*;
class ShortcutTest{
    Scanner input = new Scanner(System.in);
    public static void main(String args[]){
        ShortCutClass scc = new ShortCutClass();
        scc.pl("So ummmm... How ya doin?");
        scc.p("Connected1 ");
        scc.p("Connected2 ");
        String a=scc.is;
        double b=scc.id;
        int c=scc.ii;
        scc.pl (a);
        scc.pl (b);
        scc.pl (c);        
    }
}

そして、次のエラーが表示されます:「シンボルが見つかりません-変数は

私は何を間違っていますか?どうすればこれを修正できますか?

*** 編集:

私はそれを修正し、別の問題に遭遇しました...私が書いた印刷には文字列が必要であり、bとcはdoubleとintしかできないため、bまたはcを印刷できません。任意の種類のパラメーターを受け取ることができるように、印刷 (scc.p および scc.pr) を変更する方法はありますか?

4

3 に答える 3

3

ここ:

String a=scc.is;
double b=scc.id;
int c=scc.ii;

...メソッド変数のように参照しようとしています。メソッドを呼び出す必要があります。

String a=scc.is();
double b=scc.id();
int c=scc.ii();

補足として、最初からこれらすべてを行うことは強くお勧めしません。便利なクラスが必要な場合でも、メソッドに適切な名前を付けてください -writeIntなどreadInt。このような省略形を使用すると、コードが非常に読みにくくなります。

于 2012-11-27T18:51:01.113 に答える
1

これは、「is」がメソッドであり、パブリック変数としてアクセスしようとしているためです。

試す:

String a = scc.is();
于 2012-11-27T18:51:13.197 に答える
0

列をなして

String a=scc.is;
double b=scc.id;

() がありません:

正しいのは次のとおりです。

String a=scc.is();
double b=scc.id();

さらにヒント: ショートカットを削除してください。コードが読みにくくなります。

于 2012-11-27T18:52:11.573 に答える