A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王靖远 金牌黑马   /  2013-5-27 17:58  /  1754 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王靖远 于 2013-5-27 18:08 编辑
  1. class Chinese extends Person//定义一个Chinese类继承Person
  2. {
  3.         
  4.         private final String country = "cn";
  5.         Chinese(String name,int age,String country)
  6.         {
  7.                 super(name,age);
  8.                   this.coountry = country//这样写不行。final修饰的怎么构造啊?
  9.                
  10.         }
  11.         
  12.         
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 加油哥们

查看全部评分

6 个回复

倒序浏览
final修饰的东西给了初值"cn"就不能再重新赋值了。去掉“cn”,或者在静态代码块中给country赋值,另外,你那里的this.coountry = country没分号,单词也拼错了。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
写成final的以后,它有两种构造方式
1.在初始化的时候构造
就像你写的 private final String country = "cn";
2.在构造函数里构造。、
但是还有一点是,只要构造了以后,它就不能在改变了。
所以,你要么在初始化的时候构造,要么在构造函数里构造。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
被final修饰后的变量为常量,被赋值一次后,不可更改。

而且,既然定义的是Chinese类,国籍属性已经锁定,没有必要设定一个带有country属性的构造函数了(不知这部分代码的上下文,所以意图不明)

如果非要传入country的值 只能考虑把final修饰符去掉了

评分

参与人数 1技术分 +2 收起 理由
袁梦希 + 2 很给力!

查看全部评分

回复 使用道具 举报
王瀛 发表于 2013-5-27 18:24
被final修饰后的变量为常量,被赋值一次后,不可更改。

而且,既然定义的是Chinese类,国籍属性已经锁定, ...

嗯就是这意思。既然国籍固定了,就不需要传入构造器了。我想传入构造器是因为那里老是由个黄色感叹号提示我未使用这个变量。
回复 使用道具 举报
王靖远 发表于 2013-5-27 18:26
嗯就是这意思。既然国籍固定了,就不需要传入构造器了。我想传入构造器是因为那里老是由个黄色感叹号提示 ...

eclipse么,之前使用过一次,也是出来类似黄色叹号的东西,但是编译运行什么的都可以(不知算不算正常)

不过我刚开始学习,还在看毕老师的视频,就又用回Editplus了 =。=
回复 使用道具 举报
画饼 中级黑马 2013-5-27 18:52:32
7#
你先不要赋值。=nul;然后在构造函数里面赋值试试!这个问题没去试过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马