原代码是:public class jie2{
static void changint(int b){
b=80;
}
static void changperson(Person 某人){
某人.姓名="某某人";
某人.年龄=49;
某人.介绍自己();  }              //....
public static void main(String arg[]){
Person 张三=new Person();
张三.姓名="张三";
张三.年龄=30;

System.out.println("下面是张三的自我介绍");
张三.介绍自己(); changperson(张三); System.out.println("下面再请张三作自我介绍");
张三.介绍自己();
   
int a=500;
System.out.println("调用 changint函数前a="+a); //...
changint(a);
System.out.println("调用 changint函数后a="+a);//...
}
}

解决方案 »

  1.   

    a是a,b是b
    a是不会改变的
      

  2.   

    你去找人的jie1文件,这个文件里有个类Person,它定义的函数 介绍自己() 里面有你所说的“我叫”“今年”“岁”这些内容。
    因为你没有给jie1.java和jie2.java指定他们的包名,他们是在同一个文件下,java默认为他们是在同一个包内,所以jie2可以访问jie1中的Person类。
      

  3.   

    你能介绍一下包的概念吗,难道public可以延伸到一个包?谢谢!
      

  4.   

    包的意思是把几个类放在一起,它们之间public和默认的friendly的函数和变量可以互相访问。如果你在一个文件里没有明确定义package name,那么默认的是同一个文件夹下的类是在同一个包的中。
      

  5.   

    如果你在一个文件里没有明确定义package name,那么默认的是同一个文件夹下的类是在同一个包的中。
    ----------------------------------
    不一定
    如果没明确定义package的话,凡是CLASSPATH下的文件都默认一个包中
      

  6.   

    不信你可以作个试验讲一个类文件放在桌面另一个放在classpath下然后用桌面上的类文件进行调用
    注意,被调用的类必须是public的
      

  7.   

    对,你说的这种情况是可以访问。
    但并不是可以访问的类就是同一个package。
      

  8.   

    关于类内的函数的访问,你搞清楚public,friendly,protected,private这几种就会明白了。
      

  9.   


    我刚才的发言  “注意,被调用的类必须是public的”更正为   被调用的类可以是public的 也可以不是,因为既然默认在同一个包中,当然不存在
    外部调用关系。所以可以不是public的
      

  10.   

    同一个包的类,可以访问public和friendly的内容。
    如果你的类,函数或变量没有没有明确声明是public,protected或是private,就默认是friendly的。
    qazxsw1982103(c++) 说随便一个类可以访问classpath下的类的public函数,但它不能访问friendly的,很明显,说明这两者不是在同一个包中
      

  11.   

    我的例子在这里 class def   //放在lib或任意一个classpath的路径下
    {
    def(String x) //这不是friendly吗
    {
    System.out.println(x);
    }
    };class abc   //放在桌面上,并运行它
    {
    public static void main(String[] args) 
    {
    def x=new def("lalala");  //装载def类
    System.out.println("Hello World!"); }
    }
      

  12.   

    classpath   应该对应什么文件呢,它和 path 有什么区别呢?谢谢!!!
      

  13.   

    对, qazxsw1982103(c++) 说的是对的。
      

  14.   

    嘻嘻,我不是老大。
    回答问题是可以的:path是可执行文件的路径,比如java.exe,javac.exe等等
    classpath类和包的路径,当你引用一个类的时候,编译器会从classpath指定的目录下去搜索。
      

  15.   

    建议你先去通读一遍Bruce Eckel的《Thinking in Java》,读明白后你问的这些问题都会很容易理解了。
      

  16.   

    Bruce Eckel的《Thinking in Java》有电子版的,中文的吗?嘻嘻!!!