当前位置:编程学习 > JAVA >>

java调用。Main方法调用

public class sa {
 public void ne(){
  int a=3;
  int b=4;
  int c;
  c=a+b;
 }

}
public class sd {

 /**
  * @param args
  */
 public static void main(String[] args) {
  sa k=new sa();
  k.ne(); 

  System.out.println(c);

 }

}打印C为什么C要报错、

追问:嗯。其实这个就是像我说的变量定义的问题。哪像楼上那位同学的说的撒子继承额、完全是忽悠人嘛、

答案:这位童鞋,看你的困惑貌似你对Java中属性的分类还不是很清楚、对方法的调用不是很犀利、变量的生命周期也不是很清楚!

 

依据你的上述问题简单针对介绍下

        Java中的变量分类如图所示请放弃C或者其他语言中的全局变量,这样会有助于你理解Java中变量前有无加“static” 的区别。根据图片的总结,下面分析下你的程序:

        你的程序中有2个类,sasd(很不规范的类标识符,类名最好大写)。首先sa类中有个ne( )方法,但是没有返回值,也就是说就算你使用sa.ne() 其实也得不到什么东西!原因有2:你在ne( )方法里没有写任何的打印语句; 你没有弄个返回值让调用者接收,充其量这个方法根本定义的没有意义。接着,你在sd类中创建了sa的对象,并调用了ne( ),然后想打印出c。 如果一个变量想直接使用的话,那么这个变量必须是类变量,此时类名可以省略。由此,你该总结出在Java中调用属性的格式对象.属性名。看下面代码:

public class  Sd{

    // 定义个静态变量,也就是类变量

    public static int c;

 

    // 程序测试 

    public static void main(String[] args){

        System.out.println(c);

    }

}

 

最后,更改下你的源代码,使其正常运行

class Sa{

    public int c;

    //  把传入的2值之和计算在c上

    public void ne(int a, int b){

        c = a + b;
    }

}

 

public class Sd{

    public static void main(String[] args){

        Sa k = new Sa();

        k.ne(2,3);

        System.out.println(k.c);

    }

}

 

注意:一个类里只能有一个public class.

 

        纠正下上面答友的错误,程序中没有出现“extends”关键字,何来继承之说!

 

如果对图片分类有异议的话,可以查看我的博客 http://949507869-qq-com.iteye.com/admin/blogs/1049257 关于变量的解释

 

 

很简单,因为你这个c在这个方法里面没有定义。

也就是无法解析。

你如果把最后输出的这句话放在上面那个方法就可以。

上一个:java的执行顺序是怎样的
下一个:怎么在电脑上运行java程序

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,