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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐荣权 中级黑马   /  2013-2-19 22:03  /  2474 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 徐荣权 于 2013-2-20 08:00 编辑



寻求高手帮下忙,哪里出现问题了。。。。。
输出的怎么还是233,而且调试的时候也没进类里面啊?

7 个回复

正序浏览
管冉 中级黑马 2013-2-20 19:32:29
8#
if (value判断  不是juli 方法
回复 使用道具 举报
十分感谢~ ~
回复 使用道具 举报
康晓璞 发表于 2013-2-20 08:35
class Ticket
        {
            private double juli;

多谢提醒,没注意:D
回复 使用道具 举报
王立 发表于 2013-2-20 07:53
if (value

  class Ticket
        {
            private double juli;

            public double Juli
            {
                get { return juli; }

                set
                {
                    if (value < 0)  //这里用value
                    {
                       // juli = value;
                      juli = 0;//在value小于0时,是不是将juli的值设为0合适?
                    }
                    else if (value < 100) //这里用value
                    {
                        juli = value;
                    }
                    else if (value >= 100 && value <= 500)
                    {
                        juli = value * 0.95;
                    }
                    else
                    {
                        juli = value * 0.85;
                    }
                }
            }

        }
回复 使用道具 举报
       if (value <0)
     if (juli<0)
这里应该是value,类的字段juli默认值是0的,如果用juli ,永远在   else if (value <100) 这里



class Program
    {
        static void Main(string[] args)
        {
            Ticket t = new Ticket();
            t.Juli = 233;
            Console.WriteLine(t.Juli);  //221.35

        }
    }
    class Ticket
    {
        private double juli;

        public double Juli
        {
            get { return juli; }

            set
            {
                if (value <0)  //这里用value
                {
                    juli = value;
                }
                else if (value <100) //这里用value
                {
                    juli = value;
                }
                else if (value >=100&&value <=500)
                {
                    juli =value *0.95;
                }
                else
                {
                    juli = value * 0.85;
                }
            }
        }
    }
回复 使用道具 举报
你的问题错在主函数l里t.JuLi=233;
你这里,把233的值给了ticket类中的JuLi,然后你误以为juli的值也直接是233了,所以才回导致这个错误。
你把233给JuLi以后,要juli=value以后才是把值传给了juli了,我写的代码里,就多加了一个Ticket(int diastance)方法,用来传参0.0这样的话,你的juli才方便判断和赋值。
可能我说的不是太清楚- -哪里不明白,再点回复,问我- -大家共同进步!
回复 使用道具 举报
本帖最后由 岳珅 于 2013-2-19 23:05 编辑

把我自己写的关于门票价格的代码给你看下吧0.0

题目要求是:
写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值)
不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元每公里)
0~~~100公里   票价不打折
101~200公里   总额大9.5折
201~300公里   总额打9折
300公里以上   总额打8折
有一个方法,可以显示这张票的信息
  1. namespace 构造函数
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             Console.WriteLine("请输入您的距离:");
  8.             Ticket littleTicket = new Ticket(Convert.ToInt32(Console.ReadLine()));//调用ticket方法,传递距离。
  9.             littleTicket.ShowInfo();
  10.             Console.ReadKey();
  11.         }
  12.     }
  13. }
复制代码
  1.     class Ticket
  2.     {
  3.         public Ticket(int diastance)
  4.         {
  5.             this.distance=diastance;//this.diastance说的是Ticket类中的distance,后面的distance就是一个传参。
  6.         }
  7.         private int distance;
  8.         public int Distance
  9.         {
  10.             get {
  11.                 if (distance < 0)//防止输入的距离小于零
  12.                     distance =0;
  13.                 return distance;
  14.             }
  15.         }
  16.         private double price;
  17.         public double Price
  18.         {
  19.             get
  20.             {
  21.                 if (distance < 100)//如果距离小于100,则~~
  22.                     price = distance;
  23.                 else if (distance >= 100 & distance < 200)
  24.                     price = distance * 0.95;
  25.                 else if (distance >= 200 && distance < 300)
  26.                     price = distance * 0.9;
  27.                 else
  28.                     price = distance * 0.85;
  29.                     return price;
  30.             }
  31.         }

  32.         public void ShowInfo()
  33.         {
  34.             Console.WriteLine("您的票的距离是{0}公里,价格是{1}",Distance,Price);
  35.         }
  36.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马