面向对象小练习

//写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值)
//不能为负数,有一个价格属性,价格属性只读
//并且根据距离distace计算价格Price(1元、公里)
//0-100公里,票价不打折 101-200公里,总价打9.5折 201-300公里 总价打9折 300公里以上 总价打8折

using System;

namespace 面向对象小练习1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入公里数;");
            Ticket t = new Ticket();
            t.Distance = Convert.ToDouble(Console.ReadLine());
            t.ShowTicket();

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象小练习1
{
    class Ticket
    {
        //写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值)
        //不能为负数,有一个价格属性,价格属性只读
        //并且根据距离distace计算价格Price(1元、公里)
        //0-100公里,票价不打折 101-200公里,总价打9.5折 201-300公里 总价打9折 300公里以上 总价打8折
        private double _distance;
        private double _price;
        public double Distance
        {
            get { 
                if(_distance <0)
                {
                    _distance = 0;
                }
                return _distance; }
            set { _distance = value; }
        }
        //public Ticket(double distance)//这里如果不需要在外部自己输入参数,这里设定一个构造函数由外面直接传参进来
        //{
        //    if (distance < 0)
        //    {
        //        distance = 0;
        //    }
        //    this._distance = distance;
        //}
        public double Price
        {
            get
            {
                if (_distance > 0 && _distance <= 100)
                {
                    return _distance * 1.0;
                }
                else if (_distance > 101 && _distance <= 200)
                {
                    return _distance * 0.95;
                }
                else if (_distance > 200 && _distance <= 300)
                {
                    return _distance * 0.9;
                }
                else
                {
                    return _distance * 0.8;
                }
            }
            set { _price = value; }
        }
        public void ShowTicket()
        {
            Console.WriteLine("{0}公里需要{1}元", Distance, Price);
        }

    }
}

 

posted @ 2021-06-15 20:47  静态类  阅读(147)  评论(0编辑  收藏  举报