java 中add 语句的疑问(此程序包含类定义)
求问这里的三个add(newFilledRect(0,0,stripe,height,Color.BLUE));为什么有问题。。应该怎么解决呢?因为这个题目是要求自己定义...
求问这里的三个add(new FilledRect(0,0,stripe,height,Color.BLUE)); 为什么有问题。。应该怎么解决呢?因为这个题目是要求自己定义一个FilledRect类,继承GRect 的基础上,可以实现填充矩形并带上color。可是为什么这里的add 就出现问题了?
这里的add (new....)括号中的new为什么不能省略。括号中的newFilledRect(0,0,stripe,height,Color.BLUE)是属于方法还是构造函数?
谢谢大神!!! 展开
这里的add (new....)括号中的new为什么不能省略。括号中的newFilledRect(0,0,stripe,height,Color.BLUE)是属于方法还是构造函数?
谢谢大神!!! 展开
4个回答
展开全部
首先你得确定 GRect 类有 public add(FilledRect filledRect){} 这个方法,如果没有,就在FilledRect 这个类下添加该方法并实现之。
如果括号里不用new ,代码可以改成下面例子:
FilledRect filledRect;
filledRect=new FilledRect(0,0,stripe,height,Color.BLUE);
add(filledRect);
filledRect=new FilledRect(0,0,stripe,height,Color.WHITE);
add(filledRect);
filledRect=new FilledRect(0,0,stripe,height,Color.RED);
add(filledRect);
---直接在括号中用new 只是为了精简代码,减少filledRect的每次赋值代码。
----发一下 GRect 这个类的代码吧 我看看
如果括号里不用new ,代码可以改成下面例子:
FilledRect filledRect;
filledRect=new FilledRect(0,0,stripe,height,Color.BLUE);
add(filledRect);
filledRect=new FilledRect(0,0,stripe,height,Color.WHITE);
add(filledRect);
filledRect=new FilledRect(0,0,stripe,height,Color.RED);
add(filledRect);
---直接在括号中用new 只是为了精简代码,减少filledRect的每次赋值代码。
----发一下 GRect 这个类的代码吧 我看看
更多追问追答
追问
这个project里面就是public class FilledRect extends GRect,我记得之前写的都是extends GraphicsProgram...但是这里把GRect 换成GraphicsProgram报错更多。请问这是什么原因呢?GraphicsProgram也是超类啊!应该比GRect更超类,那继承更不会错啊。还有,add 方法怎么添加呢
追答
很简单,GRect 继承GraphicsProgram的内容,同时它自身也会定义一部分GraphicsProgram没有的方法或者属性,而FilledRect 如果继承的是GraphicsProgram,那你肯定不能用GRect 自定义部分的方法或属性
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
add是个方法名字,你没有这个方法自然报错;
new是创建新对象必须的关键字,当然不能省略,new后面跟的是对象的构造函数,一般规范来说方法名称的首字母小写,构造函数的名称跟类名一样,首字母是大写的
new是创建新对象必须的关键字,当然不能省略,new后面跟的是对象的构造函数,一般规范来说方法名称的首字母小写,构造函数的名称跟类名一样,首字母是大写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参数类型一样,个数一样。所以报错
追问
参数类型一样,个数一样
能具体说下吗?因为我是小白,还是不大明白您的意思==
追答
哥们,我上面回答错了。这种类型是重载。
就是函数名字相同的函数。
你的三个函数add(),里面参数的类型都是一样的。所以出错。
重载实例:
public class overload{
public void m(int i){
System.out.println(i):
}
public void m(int i,int j){
System.out.println(i+j):
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要看你GRect类了,光这段代码不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询