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 因为我写的打印需要一个字符串,而 b 和 c 只能是 double 和 int,所以这不起作用。有什么方法可以更改打印(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();

作为旁注,我强烈建议您不要一开始就这样做。即使你想要一个方便的类,也请给方法起合理的名称 -writeIntreadInt。使用这样的缩写会使代码很难阅读。

于 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 回答