黑马程序员技术交流社区
标题:
关于函数调用的方法总结
[打印本页]
作者:
liurongzhi1991
时间:
2015-4-16 20:08
标题:
关于函数调用的方法总结
<p>/*对于一些0基础的学员来说,关于函数的多种调用形式,往往会迷糊,可能会混淆,今日在下将自己的一些总结发出来供大家参考,其中亦包括各种情况下括号内的含义的备注,希望对大家有所帮助,我也是个0基础的家伙,不对的地方希望大家指出。谢谢,么么哒*/</p><p>//此文本为实验静态与非静态之间的调用而创建
/*
1.同一个类中,静态函数不可以调用非静态的,不同类中则可以调用,调用方式:函数名()
2.不同类之间的函数调用要先new一个被调用类的对象才可以调用
3.不同类间函数的调用,静态函数多了一种调用方式,类名.函数名称,直接调用,无需建立对象。
*/
class Zhu
{
public static void main(String[] args)
{
print1(8);//括号内是用于给函数内的局部变量赋值。即int 类型的a
Print2 p2=new Print2(20,"构造函数");
p2.print2(6);//括号内,给局部变量赋值,
Print2.print3();
}
public static void print1(int a)//纠错:加上static
{
a=a;
System.out.println("静态"+"a="+a);//错误提示:无法从静态上下文中引用非静态方法
//原因:静态函数在类建立的时候就已经存在在方法区的静态区,
此时还没有生成其他非静态函数,所以静态无法引用非静态方法。
}
}
class Print2
{
private int c;
private String name;
Print2(int c,String name)
{
this.c=c;
this.name=name;//编译报错:找不到符号,符号:变量c··········
} //原因:在类中没有定义变量,构造函数中定义的是没有意义的,不可以被使用
public void print2(int b)
{
b=b;//b前不用加this,只在构造函数中才用到,用于区分同名变量。
System.out.println("不同类"+"b="+b+"c="+c);
System.out.println("name="+this.name+ "c="+this.c);
}
public static void print3()
{
System.out.println("静态类名调用");
}
}
</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)
下载附件
2015-4-16 20:37 上传
作者:
liurongzhi1991
时间:
2015-4-16 22:33
18561271203 发表于 2015-4-16 20:36
31行 ,没错啊,已验证,如图
这是我改完的,当然没错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2