首先,我要说我有一个名为 size 的变量,我在主要方法中声明我传递(或尝试无论如何)作为其他方法的参数(调用不同的类文件)。 Size是一个变量,它被输入到命令行参数中,如:C 10 l 5 s 6.我解析了每个参数并使用switch重定向它们。
长话短说我的编译器给了我这些错误,我一直在努力修复它们,但无法弄明白。
/home/miguel/School/project 3/driver.java:31: error: '.class' expected
mySquare( int size );
^
/home/miguel/School/project 3/driver.java:31: error: ';' expected
mySquare( int size );
^
/home/miguel/School/project 3/driver.java:46: error: '.class' expected
char2D( int size, int totSize)
^
/home/miguel/School/project 3/driver.java:46: error: ';' expected
char2D( int size, int totSize)
^
/home/miguel/School/project 3/driver.java:46: error: ';' expected
char2D( int size, int totSize)
这是代码:
public class driver {
public void main(String[] args){
String type = args[0];
int size;
switch (type.toLowerCase().charAt(0)) {
case 'l':
size = Integer.parseInt(args[1]);
myLine(size);
break;
case 's':
size = Integer.parseInt(args[1]);
mySquare(size);
break;
case 'c':
size = Integer.parseInt(args[1]);
myCube(size);
break;
}
}
public void myLine(int size) { //
myLine(size);
}
// System.out.print("*"); // don't need to print in here
//myLine(int size);
public int mySquare(int size) {
//for (i = 0; i < size ; i++)
mySquare(int size);
}
public void myCube(int size) { // z will be x but only have the length of it
//z = size + .5
// myCube(size)
}
public int char2D(int size) {
char[][] char2D = new char[1][1]; // figure out size of array later and replace 1 with variable totSize
int x1 = 1;
this.size = size;
char2D(int size, int totSize)
}
}
myLine类中的其他代码
public class myLine extends char2D {
public int myLine(int size) {
for (i = 0; i < size ; i++)
System.out.print("*");
}
}
答案 0 :(得分:3)
在此代码中:
public int mySquare( int size ) {
//for (i = 0; i < size ; i++)
mySquare( int size );
}
第三行mySquare(int size);
没有意义。如果它应该是函数调用,则类型声明int
不应该存在。然后该函数将递归调用自身,直到您的堆栈溢出并且程序崩溃。
您稍后会遇到类似的问题:
char2D( int size, int totSize)
如果它应该是一个函数调用,它之后需要一个分号,而不是在它的参数前面有int
。但它仍然不会匹配您的类中声明的任何函数,因为您声明为函数的char2D
只接受一个参数。
答案 1 :(得分:0)
让我们从第一个问题开始,你评论说你正在尝试使用继承。有几件事你必须要记住“父类”,通常是你构建一组set类型的方法,我会在继承中调用它们。
这是一个关于如何构建继承父类的小代码片段。
public abstract class Animal
{
//data member
private String animalType;
//getter
public String getAnimalType() {
return animalType;
}
//1-arg constructor
Animal(String animalType)
{
this.animalType = animalType;
}
public abstract String reproduce();
}
这是一个与Animal直接相关的子类
public class Mammle extends Animal
{
private String mammalType;
//1-arg constructor
Mammle(String mammalType)
{
//must do an explict call to supper
super("mammal");
this.mammalType = mammalType;
}
public String getMammalType()
{
return mammalType;
}
public String reproduce()
{
return("This " + this.getMammalType() + " gives live birth.");
}
}//end of class
//this is a subclass of mammle
public class Platypus extends Mammle implements layeggs
{
//data member
public String platypusName;
//1-arg
public Platypus(String platypusName)
{
super("platypus");
this.platypusName = platypusName;
}
public String getPlatypusName() {
return platypusName;
}
//implement the abstract method from interface
public String layAnEgg()
{
return("this " + this.getMammalType() + " Lays eggs to reproduce");
}
}//end of class
这是你如何设置一个正确的继承,然后这就是我如何使驱动程序类看起来像
public class pregotesr {
public static void main(String[] args)
{
//create a platypus pbject
Platypus platOne = new Platypus("Penelope");
System.out.println("The platOne object is a " + platOne.getAnimalType());
System.out.println("The platOne object is a " + platOne.getMammalType());
System.out.println("Platypus reproduction method: " + platOne.reproduce());
}
}
我通常总是在驱动程序类中为我想要调用的特定类创建一个Object,并插入我想要使用的方法。例如,您想要设置大小 Square
square.setSize();