已有101人关注
关于P127例7.1的成员变量。局部变量问题
发表在Java图书答疑 2016-05-31
是否精华
版块置顶:
书上写设置3个成员变量id。name和category,看看代码,我又看了一下书P130页,书上说如果在成员方法内定义一个变量,那么这个变量被称为局部变量,这里面是否有矛盾,我都看蒙逼了。
还有,请帮我梳理一下属性和方法体。谢谢
分享到:
精彩评论 4
西瓜_mrkj
学分:0 LV1
2016-05-31
沙发
成员变量指声明在类体中的变量,局部变量指声明在方法体中的变量,例如下面代码

public class Test{

String name;
int id;

public void setValue(String anotherName,int anotherId){
name=anotherName;
id=anotherId;
}

}

变量name,id就是成员变量,因为他声明在类体中(即类名后面的一对大括号里面)
变量anotherName,anotherId是局部变量,他是以参数的形式传进方法体中(你可以理解为是声明在方法体后面的一对大括号里面)

在看看下面代码

public class Test{

String name;
int id;

public void setValue(String name,int id){
this.name=name;
this.id=id;
}

}

是不是觉得成员变量和局部变量同名了,这时候在方法体内部怎么区分成员变量和局部变量呢,这就需要this了,当局部变量与成员变量同名时,在方法体内部使用this.name来表示成员变量name,而直接使用name则表示的是局部变量name。
西瓜_mrkj
学分:0 LV1
2016-06-01
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
成员变量指声明在类体中的变量,局部变量指声明在方法体中的变量,例如下面代码

public class Test{

String name;
int id;

public void setValue(String anotherName,int anotherId){
name=anotherName;
id=anotherId;
}

}

变量name,id就是成员变量,因为他声明在类体中(即类名后面的一对大括号里面)
变量anotherName,anotherId是局部变量,他是以参数的形式传进方法体中(你可以理解为是声明在方法体后面的一对大括号里面)

在看看下面代码

public class Test{

String name;
int id;

public void setValue(String name,int id){
this.name=name;
this.id=id;
}

}

是不是觉得成员变量和局部变量同名了,这时候在方法体内部怎么区分成员变量和局部变量呢,这就需要this了,当局部变量与成员变量同名时,在方法体内部使用this.name来表示成员变量name,而直接使用name则表示的是局部变量name。
[/FIELDSET]

回复:
  
成员变量(也叫作类的成员属性,对应于对象的属性)和成员方法(对应于对象的行为)统称为类的成员;成员方法里的变量叫局部变量

类体:类名后面一对大括号中的内容,里面包括成员变量和成员方法(通常情况下说方法指的就是成员方法)

方法体:方法名称后面一对大括号中的内容,里面包括局部变量和一些执行语句。
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2016-06-01
地板
按照这样理解,书本P127例7.1不就是错了吗?
书本说要在BOOK类中设置3个成员变量,分别为id ,name和category,书本给出了下面代码
public class Book{
    private String name;

    public String getName(){
      int id = 0;
      setName("java");
     return id + this.name
    }

    private void setName(srting name){
    this,.name=name;
     public  Book getBook(){
     return this;
}
}
这里面只有name是成员变量,id是局部变量,根本没出现caterory,是书本错了还是我理解错了?
西瓜_mrkj
学分:0 LV1
2016-06-01
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
按照这样理解,书本P127例7.1不就是错了吗?
书本说要在BOOK类中设置3个成员变量,分别为id ,name和category,书本给出了下面代码
public class Book{
    private String name;

    public String getName(){
      int id = 0;
      setName("java");
     return id + this.name
    }

    private void setName(srting name){
    this,.name=name;
     public  Book getBook(){
     return this;
}
}
这里面只有name是成员变量,id是局部变量,根本没出现caterory,是书本错了还是我理解错了?
[/FIELDSET]

回复:
  请以源代码为准,源代码确实没有category这个变量
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照