3.5.5 汽车类的例子

  • 字段
    私有字段(int)。_百公里耗油,表示汽车行驶100公里消耗几升油(默认为10)。
    私有字段(int)。_油箱容积,表示油箱最大可以加几升油(默认为60)。
    私有字段(int)。_油表,表示当前油箱还剩余几升油。
    私有字段(int)。_公里数,表示汽车一共行驶了几公里。
  • 属性
    只读属性(int)。百公里耗油,封装_百公里耗油字段,百公里耗油对于一个汽车来说是一个固定参数,一般不会改变,因此不允许用户设置。
    只读属性(int)。油箱容积,封装_油箱容积字段,油箱容积对于一个汽车来说是一个固定参数,一般不会改变,因此不允许用户设置。
    读写属性(int)。油表,封装_油表字段。
    读写属性(int)。公里数,封装_公里数字段。
  • 构造方法
    不带参数。获得一个加满油的新车,里程数为0。
    带一个当前油表参数。获得一个新车,里程数为0,油表为传入的当前油表参数的值。
    带一个当前油表参数和一个当前里程参数。获得一个旧车,里程数为传入的当前里程参数的值,油表为传入的当前油表参数的值。
  • 私有方法
    计算油耗。根据传入的行驶公里参数计算油耗并返回。
  • 公有方法
    行驶。根据传入的行驶公里数参数行驶一段距离。如果油耗不足。给出行驶失败提示,否则给出行驶成功提示。
    加油。直接为汽车加满油。显示一共加了多少升的油。
    重载了油箱方法。根据传入的加油体积参数为汽车加一定的油。如果加入的油加上剩余的油超过了油箱最大容积,就给出加油失败提示,否则给出加油成功提示。
    获取汽车当前信息。输出汽车的当前油表数和当前里程数。
using System;
using System.Collections.Generic;
using System.Text;

namespace 汽车类
{
    
class Car
    
{
        
private int _百公里耗油 = 10;
        
private int _油箱容积 = 60;
        
private int _油表;
        
private int _公里数;

        
public int 百公里耗油
        
{
            
get return 百公里耗油; }
        }

        
public int 油箱容积
        
{
            
get return _油箱容积; }
        }

        
public int 油表
        
{
            
get return _油表; }
            
set { _油表 = value; }
        }

        
public int 公里数
        
{
            
get return _公里数; }
            
set { _公里数 = value; }
        }


        
public Car()
        
{
            _油表 
= _油箱容积;
            _公里数 
= 0;
        }

        
public Car(int 当前油表)
        
{
            _油表 
= 当前油表;
            _公里数 
= 0;
        }

        
public Car(int 当前油表, int 当前里程)
        
{
            _油表 
= 当前油表;
            _公里数 
= 当前里程;
        }


        
private int 计算耗油(int 行驶公里数)
        
{
            
return 行驶公里数 * _百公里耗油 / 100;
        }

        
public void 行驶(int 行驶公里数)
        
{
            Console.WriteLine(
"行驶{0}公里开始", 行驶公里数);
            
if (_油表 > 计算耗油(行驶公里数))
            
{
                _公里数 
+= 行驶公里数;
                _油表 
-= 计算耗油(行驶公里数);
                Console.WriteLine(
"行驶完毕");
            }

            
else
                Console.WriteLine(
"油耗不足,行驶失败");
        }

        
public void 加油()
        
{
            Console.WriteLine(
"加油开始");
            
int 需要加的油 = _油箱容积 - _油表;
            _油表 
+= 需要加的油;
            Console.WriteLine(
"加油完毕,一共加了 {0} 升", 需要加的油);
        }

        
public void 加油(int 加油体积)
        
{
            Console.WriteLine(
"加油{0}升开始", 加油体积);
            
if (加油体积 < _油箱容积)
            
{
                _油表 
+= 加油体积;
                Console.WriteLine(
"加油完毕");
            }

            
else
                Console.WriteLine(
"超过最大油箱容积,加油失败");
        }


        
public void 获取当前汽车信息()
        
{
            Console.WriteLine(
string.Format("当前油表:{0} 当前里程数:{1}", _油表, _公里数));
        }

    }


    
class Program
    
{
        
static void Main(string[] args)
        
{
            Car car 
= new Car();
            car.行驶(
100);
            car.获取当前汽车信息();
            car.行驶(
400);
            car.获取当前汽车信息();
            car.加油(
60);
            car.获取当前汽车信息();
            car.加油();
            car.获取当前汽车信息();
        }

    }

}
原文地址:https://www.cnblogs.com/0754ydj/p/1250880.html