public interface IAdd{
public void AddNum(int srcNum);
}
public class MyAdd implements IAdd {public void AddNum(int srcNum){srcNum=srcNum+2;
System.out.println("srcNum+2="+srcNum);
}}public class MyAdd2 implements IAdd{
public void AddNum(int srcNum){
srcNum=srcNum+10;
System.out.println("srcNum+10="+srcNum);
}public static void main(String[] args){
MyAdd x=new MyAdd(3);
MyAdd2 y=new MyAdd2(3);
}}
public void AddNum(int srcNum);
}
public class MyAdd implements IAdd {public void AddNum(int srcNum){srcNum=srcNum+2;
System.out.println("srcNum+2="+srcNum);
}}public class MyAdd2 implements IAdd{
public void AddNum(int srcNum){
srcNum=srcNum+10;
System.out.println("srcNum+10="+srcNum);
}public static void main(String[] args){
MyAdd x=new MyAdd(3);
MyAdd2 y=new MyAdd2(3);
}}
G:\job\java\example\IAdd>javac interface.java
interface.java:26: 'class' or 'interface' expected
public static void main(String[] args){
^
1 error
void AddNum(int srcNum);
}
class MyAdd implements IAdd { public void AddNum(int srcNum){ srcNum = srcNum + 2;
System.out.println("srcNum+2="+srcNum);
}
}
public class MyAdd2 implements IAdd{
public void AddNum(int srcNum){
srcNum = srcNum + 10;
System.out.println("srcNum+10="+srcNum);
}
public static void main(String[] args){
MyAdd x = new MyAdd();
x.AddNum(3);
MyAdd2 y = new MyAdd2();
y.AddNum(3);
}
}
1. 一个文件里面只能有一个public 类
2. 你定义的类的构造方法都是无参数的,而你定义类的对象的时候
MyAdd x=new MyAdd(3);
MyAdd2 y=new MyAdd2(3);
都带有参数,错误。
3. 你把类的对象的定义和方法的调用搞错了。应该为:
MyAdd x = new MyAdd();
x.AddNum(3);
MyAdd2 y = new MyAdd2();
y.AddNum(3);
void AddNum(int srcNum);
}
class MyAdd implements IAdd { public void AddNum(int srcNum){ srcNum = srcNum + 2;
System.out.println("srcNum+2="+srcNum);
}
}
public class MyAdd2 implements IAdd{
public void AddNum(int srcNum){
srcNum = srcNum + 10;
System.out.println("srcNum+10="+srcNum);
}
public static void main(String[] args){
MyAdd x = new MyAdd();
x.AddNum(3);
MyAdd2 y = new MyAdd2();
y.AddNum(3);
}
}javac MyAdd2.java
java MyAdd2运行结果:
srcNum+2=5
srcNum+10=13
MyAdd x=new MyAdd(3);
MyAdd2 y=new MyAdd2(3);
}放在外面耷拉着像什么样子,赶紧收回去:D
HawaiiLeo(罗马数字) 给你指出的三个错误说得很好,你把错误改正后就不会出错了
再用编译器编译。
在public class MyAdd2 implements IAdd中
只能在MyAdd2类中用public?为什么要加这个public呢,好像也没有类访问他呀!
很菜,先谢谢大家了!
void AddNum(int srcNum);
}
class MyAdd2 implements IAdd{
private int i;
public MyAdd2(int i) {
i=i;
}
public void AddNum(int srcNum){
srcNum=srcNum+10;
System.out.println("srcNum+10="+srcNum);
}
}
public class MyAdd implements IAdd {
private int i;
public MyAdd(int i) {
i=i;
}
public void AddNum(int srcNum){ srcNum=srcNum+2;
System.out.println("srcNum+2="+srcNum);
}
public static void main(String[] args){
MyAdd x=new MyAdd(3);
x.AddNum(3);
MyAdd2 y=new MyAdd2(3);
y.AddNum(3);
}
}运行结果:
srcNum+2=5
srcNum+10=13
MyAdd x=new MyAdd(3);
MyAdd2 y=new MyAdd2(3);
}把这句话放在一个类里面就可以了
interface.java:26: 'class' or 'interface' expected
public static void main(String[] args){
^
1 error
这个错误提示是指 main函数需要属于一个class或者interface2 一个源程序文件里面最多只能有一个最Public 类,但是可以没有public类3 如果没有明确指出构造函数,那么就采用了默认的构造函数来new一个对象,这个时候默认的构造对象是没有参数的,所以new的时候就不能带参数4 青古兄的程序可以顺利执行,但是MyAdd x=new MyAdd(3) 和 x.AddNum(3)里面的3没有任何关系,把程序改成MyAdd x=new MyAdd(4);
x.AddNum(3);
MyAdd2 y=new MyAdd2(5);
y.AddNum(3);
也能够得出同样的结果
不知以上的观点是否则很正确,晚上回家编译试试看。我也是刚刚学习的,以后少不了要麻烦大家,还往不啬赐教!!!!谢谢
D:\javacode>javac *.java
MyAdd2.java:13: cannot resolve symbol
symbol : constructor MyAdd (int)
location: class MyAdd
MyAdd x = new MyAdd(3);
^
MyAdd2.java:15: cannot resolve symbol
symbol : constructor MyAdd2 (int)
location: class MyAdd2
MyAdd2 y = new MyAdd2(3);
^
2 errors把原程序中的
MyAdd x=new MyAdd(3);
x.AddNum(3);
MyAdd2 y=new MyAdd2(3);
y.AddNum(3);在新建对象的时候的参数3 去掉,就可以编译通过,不知道为什么?
我昨晚上之所以编译出错,是因为把青古兄的构造函数的存放顺序弄错了,但我认为这不是引起错误的原因,看上面的错误提示也不象,不过还是不知道到原因所在。btw 本来昨天晚上就因该贴这个帖子,但是社区又不允许连续3次发铁,郁闷。
interface IAdd{
void AddNum();
}
class MyAdd2 implements IAdd {
public int i;
public MyAdd2(int j) {
i=j;
}
public void AddNum(){
i=i+10;
System.out.println("srcNum+10="+i);
}
}
public class MyAdd implements IAdd {
public int i;
public MyAdd(int j) {
i=j;
}
public void AddNum(){ i=i+2;
System.out.println("srcNum+2="+i);
}
public static void main(String[] args){
MyAdd x=new MyAdd(3);
x.AddNum();
MyAdd2 y=new MyAdd2(3);
y.AddNum();
}
}