| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 904 人关注过本帖
标题:输出乱码,请问应该如何改正?
只看楼主 加入收藏
tottibuffon
Rank: 2
等 级:论坛游民
帖 子:105
专家分:20
注 册:2009-6-5
结帖率:83.87%
收藏
已结贴  问题点数:20 回复次数:7 
输出乱码,请问应该如何改正?
public class Student
{
    public int Chn;
    public int Mat;
    public int Eng;
    public int avr=(Chn+Mat+Eng)/3;
    public int sum=Chn+Mat+Eng;


    public String ToStudent(){  

         return ("the average score is"+avr+"the sum score is"+sum);
    }
}

public class TestStudent
  {
    public static void main(String[] args)
    {
        Student KG=new Student();
        Student KB=new Student();

        KG.Chn=90;
        KG.Mat=85;
        KG.Eng=83;
        KB.Chn=73;
        KB.Mat=80;
        KB.Eng=82;

        System.out.println("KG:"+KG);
        System.out.println("KB:"+KB);
        }
}

结果如下:
KG:Student@c17164
KB:Student@1fb8ee3
本人意愿是输出KG和KB平均分和总分
搜索更多相关主题的帖子: 乱码 输出 
2009-09-10 17:54
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:10 
那不是乱码。。。。


你没有重写toStirng方法

你把
 public String ToStudent(){  

         return ("the average score is"+avr+"the sum score is"+sum);
    }

换成
 public String toString(){  

         return ("the average score is"+avr+"the sum score is"+sum);
    }

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2009-09-10 20:35
tottibuffon
Rank: 2
等 级:论坛游民
帖 子:105
专家分:20
注 册:2009-6-5
收藏
得分:0 
回复 2楼 freish
按照你的方法修改了,可是出来结果都是0
2009-09-10 21:31
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:0 
回复 3楼 tottibuffon
那就是程序里面的问题

java群
62635216
欢迎加入
2009-09-10 22:02
tottibuffon
Rank: 2
等 级:论坛游民
帖 子:105
专家分:20
注 册:2009-6-5
收藏
得分:0 
回复 4楼 pywepe
哪里有?怎么改?
2009-09-10 22:37
zhouqing318
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2008-7-3
收藏
得分:10 
修改函数名称为toString()是正确的;

由于域定义用的是public int avr=(Chn+Mat+Eng)/3;
                public int sum=Chn+Mat+Eng;

在这种情况下,类实例化之后avr和sum就已经被赋值(java在对于int型默认赋值为0,所以在实例化的时候avr和sum就已经是0了)

而此后修改Chn,Mat,Eng的值并不会重新计算avr和sum,所以打印出的值永远是0;

PS:域设置为public不是好的变成习惯哦^_^

建议修改如下:

class Student
{
    public int Chn;
    public int Mat;
    public int Eng;
    public int avr;
    public int sum;


    public String toString(){  
         avr=(Chn+Mat+Eng)/3;
         sum=Chn+Mat+Eng;
         return ("the average score is "+avr+" the sum score is "+sum);
    }
}

public class StudentTest
  {
    public static void main(String[] args)
    {
        Student KG=new Student();
        Student KB=new Student();

        KG.Chn=90;
        KG.Mat=85;
        KG.Eng=83;
        KB.Chn=73;
        KB.Mat=80;
        KB.Eng=82;

        System.out.println("KG:"+KG);
        System.out.println("KB:"+KB);
        }
}
2009-09-11 03:26
tottibuffon
Rank: 2
等 级:论坛游民
帖 子:105
专家分:20
注 册:2009-6-5
收藏
得分:0 
回复 6楼 zhouqing318
xiexielo
2009-09-11 06:53
sonwill
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-3-22
收藏
得分:0 
ToString()方法会自动调用么?
我觉得应该让对象调用该方法
KG.ToString();
KB.ToString();
再说        System.out.println("KG:"+KG);
        System.out.println("KB:"+KB);
也有问题,输出+KG是一个对象,里面全是INt型属性啊,输出肯定会错误。
2009-09-20 14:15
快速回复:输出乱码,请问应该如何改正?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022724 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved