Java问题帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:25:07
public class Exa_4_8{
static void demoByValue(boolean boolVar){ //按值传递参数方法定义
boolVar=!boolVar; //将参数的逻辑值置反
System.out.println("方法运行中参数值为:"+boolVar);
}
static void demoByReference(Person obj){ //按引用传递参数方法定义
obj.name="You";
obj.age=18;
System.out.print("方法运行中参数对象内容为:");
System.out.println("name="+obj.name+";age="+obj.age);
}
public static void main(String args[]){
boolean flag=false; //定义逻辑变量作为按值传递的数据
Person me=new Person("Myself",30); //创建对象用作引用传递

System.out.println("方法调用前逻辑型实参值为:"+flag);
System.out.print("方法调用前引用对象的内容为:");
System.out.println("name="+me.name+";age="+me.age);
System.out.println();
demoByValue(flag); //调用值传递参数的方法
demoByReference(me); //调用引用传递参数的方法
System.out.println();
System.out.pr

很明显,你所说的这个两个方法需要分别传一个参数,所以按照你说的“为什么不能改成flag.demoByValue();me.demoByReference(); ”最起码里面应该传一个相对应的参数,这是其一,当然,光着一点你的说法还是成立不了,就拿你说的第一个来说吧

demoByValue(flag); 为什么不能改成flag.demoByValue();

方法是需要通过对象来调用的,你的flag很明显是一个布尔型的参数,它里面没有定义处这个demoByValue方法,那你肯定不可以通过这种方法调用,而这个demoByValue方法是你在这个类中自己写的,那么就可以直接调用,其实前面省略了一个:“this.”,这样调用之后再传入相应的参数才是正确的方式。

全是高级东西