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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Demo{
      public static void main(String[]args){
                        Bear b1 = new Bear("小白" , '公');
          
          }
}          


class Bear{
        private String name;
        private char sex;
       
        public Bear(String name,char sex){
                this.name = name;
                this.sex = sex;
       
        }

        public void bite(){
                System.out.println("我是"+sex+"熊--"+name);
        }
}



360截图20131122065625625.jpg (47.35 KB, 下载次数: 21)

360截图20131122065625625.jpg

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

7 个回复

倒序浏览
应该是字符编码错误
回复 使用道具 举报
程序没有错,应该是编码表的问题。
回复 使用道具 举报
你的程序编译是没有错的。不过构造函数和主函数都没有调用到bite方法,这里帮你改了下
  1. public class Demo{
  2.     public static void main(String[]args){
  3.                      // @SuppressWarnings("unused")
  4.                                         Bear b1 = new Bear("小白" , '公');
  5.                     //  b1.bite();
  6.         
  7.         }
  8. }         


  9. class Bear{
  10.       private String name;
  11.       private char sex;
  12.       
  13.       public Bear(String name,char sex){
  14.               this.name = name;
  15.               this.sex = sex;
  16.               bite();
  17.       }

  18.       public void bite(){
  19.               System.out.println("我是"+sex+"熊--"+name);
  20.       }
  21. }
复制代码
回复 使用道具 举报
请问LZ用的什么文本编辑器?编辑或者保存的时候需要将编码设置为'GBK'!
回复 使用道具 举报
首先你这个问题特别好,但是刚接触计算机很难找出问题。
我谈谈我的看法:
你的Bear有两个属性:String name ;char sex;
String name 属性完全正确,没得说。
问题就在char sex;
因为char 类型的数据在内存中占据一个字节,也就是8个二进制。而你在初始化b1的时候给sex赋值为汉字'公',汉字在内存中是占两个字节的,也就是16个二进制表示一个汉字。
你的代码在我这运行时正常的,你修改一下试试,如果还不对乐意继续交流~
回复 使用道具 举报
徐君 中级黑马 2013-11-22 10:23:28
7#
代码没错。就是只new了对象而没有调用方法而已,至于你那问题应该是记事本编码问题..
回复 使用道具 举报
我也遇到过相同的问题,我是这样解决的:

如果editplus的话,到文档选项----》文件编码-------》更改文件编码方式--------》选择ANSI保存即可

如果是notepad++ 选着菜单中的    设置----》首选项-------》新建    就会看见编码栏选择ANSI保存即可

希望对你有帮助。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马