继承第一堂课
public class LargeMapDriver
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int value1;
ThyPoint p1 = new ThyPoint(132, 734);
ThyPoint p2 = new ThyPoint(56, 998);
ThyPoint p3 = new ThyPoint(100, 105);
System.out.println("Enter value: ");
order = keyboard.nextInt();
LargeMap myMap = new LargeMap(value1, p1, p2, p3);
其次,指针类。
public class ThyPoint
{
private int a;
private int b;
//constructor
public ThyPoint(int x, int y)
{
a = x;
b = y;
}
//...
//set and get methods for a and b... not shown
//...
public String toString()
{
return "a: " + getValueA() + " b: " + getValueA();
}
}
最后一个类,显示构造函数错误。
public class LargeMap
{
//GETTING CONSTRUCTOR(s) ERROR
public static void goodMethod(int value1, ThyPoint p1, ThyPoint p2, ThyPoint p3)
{
if ( value1 == 0 )
System.out.println( p1.toString() + p2.toString() + p3.toString());
else
System.out.println( p2.toString() + p3.toString() + p1.toString());
}
}
好的,所以问题就出现了:
**constructor LargeMap in class LargeMap cannot be applied to given types;
LargeMap myMap = new LargeMap(value1, p1, p2, p3);
^
required: no arguments
found int,ThyPoint,ThyPoint,ThyPoint
reason: actual and formal arguments differ in length**
所以,我正在尝试为LargeMap类创建一个构造函数,但是失败了,我试图将p1,p2,p3对象中的那些值传递给构造函数来接受。并初始化它们中的值,我该怎么做?我想在其中初始化的值是:
ThyPoint p1 = new ThyPoint(132, 734);
ThyPoint p2 = new ThyPoint(56, 998);
ThyPoint p3 = new ThyPoint(100, 105);
类LargeMap也必须保持无效。但它不一定是静态的或公开的。
答案 0 :(得分:0)
LargeMap类没有完全接受四个参数的构造函数。在没有构造函数的情况下,只有默认的构造函数没有参数,这由Java本身加起来。
答案 1 :(得分:0)
也许发布构造函数的代码可能会有所帮助..
尝试
public LargeMap (int value1, ThyPoint p1, ThyPoint p2, ThyPoint p3) {
//do whatever you want
}
答案 2 :(得分:0)
您正在尝试使用未在“LargeMap”类中声明的构造函数 声明像这样的构造函数而不是“LargeMap”类
中的goodMethod()方法 public LargeMap(int value1, ThyPoint p1, ThyPoint p2, ThyPoint p3)
{
if ( value1 == 0 )
System.out.println( p1.toString() + p2.toString() + p3.toString());
else
System.out.println( p2.toString() + p3.toString() + p1.toString());
}
在您的情况下,您只能访问java编译器提供的默认构造函数(无参数构造函数) 所以编写自己的构造函数,如上所述 或者你可以直接调用静态方法
LargeMap.goodMethod(value1, p1, p2, p3);
而不是代码创建。而不是代码中的下一行
LargeMap myMap = new LargeMap(value1, p1, p2, p3);