黑马程序员技术交流社区

标题: 关于函数调用的方法总结 [打印本页]

作者: liurongzhi1991    时间: 2015-4-16 20:08
标题: 关于函数调用的方法总结
  1. <p>/*对于一些0基础的学员来说,关于函数的多种调用形式,往往会迷糊,可能会混淆,今日在下将自己的一些总结发出来供大家参考,其中亦包括各种情况下括号内的含义的备注,希望对大家有所帮助,我也是个0基础的家伙,不对的地方希望大家指出。谢谢,么么哒*/</p><p>//此文本为实验静态与非静态之间的调用而创建
  2. /*
  3. 1.同一个类中,静态函数不可以调用非静态的,不同类中则可以调用,调用方式:函数名()
  4. 2.不同类之间的函数调用要先new一个被调用类的对象才可以调用
  5. 3.不同类间函数的调用,静态函数多了一种调用方式,类名.函数名称,直接调用,无需建立对象。
  6. */
  7. class Zhu
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 print1(8);//括号内是用于给函数内的局部变量赋值。即int 类型的a
  12.                 Print2 p2=new Print2(20,"构造函数");
  13.                 p2.print2(6);//括号内,给局部变量赋值,
  14.                 Print2.print3();
  15.         }
  16.         public static void print1(int a)//纠错:加上static
  17.         {
  18.                 a=a;
  19.                 System.out.println("静态"+"a="+a);//错误提示:无法从静态上下文中引用非静态方法
  20.                                                 //原因:静态函数在类建立的时候就已经存在在方法区的静态区,
  21.                                                         此时还没有生成其他非静态函数,所以静态无法引用非静态方法。
  22.         }
  23. }
  24. class Print2
  25. {
  26.         private int c;
  27.         private String name;
  28.         Print2(int c,String name)
  29.         {
  30.                 this.c=c;
  31.                 this.name=name;//编译报错:找不到符号,符号:变量c··········
  32.         }                                        //原因:在类中没有定义变量,构造函数中定义的是没有意义的,不可以被使用
  33.        
  34.         public void print2(int b)
  35.         {
  36.                 b=b;//b前不用加this,只在构造函数中才用到,用于区分同名变量。
  37.                 System.out.println("不同类"+"b="+b+"c="+c);
  38.                 System.out.println("name="+this.name+ "c="+this.c);
  39.         }
  40.         public static void print3()
  41.         {
  42.                 System.out.println("静态类名调用");
  43.         }
  44. }
  45. </p>
复制代码


作者: liurongzhi1991    时间: 2015-4-16 20:12
我是个新手,各位打赏点黑马币吧,跪求
作者: 18561271203    时间: 2015-4-16 20:36
本帖最后由 18561271203 于 2015-4-16 20:38 编辑

31行 ,没错啊,已验证,如图

2.png (99.67 KB, 下载次数: 3)

2.png

作者: liurongzhi1991    时间: 2015-4-16 22:33
18561271203 发表于 2015-4-16 20:36
31行 ,没错啊,已验证,如图

这是我改完的,当然没错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2