学习构造函数 - 无输出



我是新手,学习方法和构造函数。问题如下

  1. 当我在 Eclipse 中运行以下程序时,系统提示我一个错误,我可以将 main 方法声明为静态方法。
public class Mouse 
{
double version;
String model;
Mouse(double v, String m)
{
version = v;
model = m;
}
void display()
{
System.out.printf("Version is ", +version);
System.out.printf("Model is ",model);
}
}
class DemoMouse
{
public static void main(String[] args) {
{
Mouse m = new Mouse(5.1, "Logitech");
m.display();
}
}
  1. 当我被迫从主中删除静态并使 DemoMouse 为静态时,我没有得到完整的输出。我出去放的是版本是模型 是。我希望输出为
*Version is 2.4 
Model is Logitech*
package test;
public class Mouse
{
double version;
String model;
Mouse(double v, String m)
{
version = v;
model = m;
}
void display()
{
System.out.printf("Version is ", +version);
System.out.printf("Model is ",model);
}
}
static class DemoMouse
{
public void main(String[] args) {
{
Mouse m = new Mouse(5.1, "Logitech");
m.display();
}
}

使用System.out.println而不是System.out.printf

但是如果你想使用printf那么你必须为双精度添加%f,为字符串添加%s否则不会打印变量。在这种情况下

System.out.printf("Model is %.2f",version); //where %.2f restricts double to 2 decimal points
System.out.printf("model is %s", model);

1. 您需要将主方法声明为静态。原因是,您需要一个类的实例才能使用非静态方法。有关进一步的深入解释,请查看"howlger"给出的评论。

阿拉伯数字。 在你的构造函数和显示方法中,你应该使用"this.version"和"this.model"。这会导致将值分配分配给类的待构造实例。

3.您应该使用System.out.println来显示您的数据。"println"没有别的,只是打印你交出的字符串,并为整个事情(下一行(添加换行符。

printf 有点复杂。 解释为什么没有以您使用 printf 的方式打印任何内容,可以在参考中找到:

格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,可以为零。

所以基本上你尝试使用的printf方法通常会得到2个参数,你想要打印的格式,以及你想要打印的参数。由于您将格式定义为纯字符串(没有"%s"等(,因此不会放置任何参数,因此您为方法提供的任何参数都将被忽略,因为格式定义的数量<参数的数量。>

将具有 main 方法的类设为公共类。在您的第一个示例中进行以下更改。

公共类演示鼠标 { public static void main(String[] args( { { 鼠标 m = 新鼠标(5.1, "罗技"(; m.display((; } }

最新更新