为什么我在Eclipse中运行Java程序时,当整个程序只是一个类时就能运行成功,但当有两个类时就无法运行了呢
成功运行的程序:publicclassfirst{publicclasssecond{publicinti;publicsecond(){this.i=0;}}/***@...
成功运行的程序:
public class first {
public class second
{
public int i;
public second()
{
this.i=0;
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
}
}
不能成功运行的程序:
public class first {
public class second
{
public int i;
public second()
{
this.i=0;
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s;
s.i =1;
}
}
问题:只要在main()中用到其他类的时候就会出错,谁能帮我解决这个问题呢?谢谢了 展开
public class first {
public class second
{
public int i;
public second()
{
this.i=0;
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
}
}
不能成功运行的程序:
public class first {
public class second
{
public int i;
public second()
{
this.i=0;
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s;
s.i =1;
}
}
问题:只要在main()中用到其他类的时候就会出错,谁能帮我解决这个问题呢?谢谢了 展开
展开全部
你把一个类放在另一个类的内部,second在first内,则second类为内部类
你可看看这样改:
public class first {
public static class second { //要在静态的main中调用,则要声明
//其为static
public int i;
public second() {
this.i = 0;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s = new second();
s.i = 1;
System.out.println(s.i);
}
}
如果你是想在first类中调用second类中方法,则应该将second放在first类的外面,如下:
public class first {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s = new second();
s.i = 1;
System.out.println(s.i);
}
}
class second { //不能声明为public
public int i;
public second() {
this.i = 0;
}
}
注意:一般类名首字母要大写
你可看看这样改:
public class first {
public static class second { //要在静态的main中调用,则要声明
//其为static
public int i;
public second() {
this.i = 0;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s = new second();
s.i = 1;
System.out.println(s.i);
}
}
如果你是想在first类中调用second类中方法,则应该将second放在first类的外面,如下:
public class first {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
second s = new second();
s.i = 1;
System.out.println(s.i);
}
}
class second { //不能声明为public
public int i;
public second() {
this.i = 0;
}
}
注意:一般类名首字母要大写
展开全部
second s;
改成second s=new second();
试试
改成second s=new second();
试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于second类,你没有创建对象,故在运行主函数时会出错,
你可以将second s; 改成 second=new second();
你可以将second s; 改成 second=new second();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于内部类的创建,首先要创建外部类:
Test t=new Test();
然后再创建内部类
Test.second s=t.new second();
Test t=new Test();
然后再创建内部类
Test.second s=t.new second();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是你没有导包啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询