面向对象类的基础练习

namespace HomeWork
{
    class Firearms
    {
        private string type;//成员变量 品牌

        //属性 品牌
        public string Type
        {
            get
            {
                return type;
            }
            set
            {
                type = value;
            }
        }

        //属性 重量 没有对应的成员变量
        public string Weight
        {
            get;
            set;
        }

        private static string nature = "Kill People!";
        //静态属性 枪械的本质 属于所有枪械的属性 所有实例属性不可更改
        public static string Nature
        {
            get
            {
                return nature;
            }

         }
        //初始子弹数
        private int bulletNumber = 0;
        public int BulletNumber
        {
            get
            {
                return bulletNumber;
            }
            set
            {
                if (value < FullBulletNumber)
                    bulletNumber = value;
                else
                {
                    Console.WriteLine("初始子弹数量超弹夹容量;弹夹容量已满");
                    bulletNumber = FullBulletNumber;
                }
            }
        }

        //弹夹容量
        private int fullBulletNumber = 30;
        public int FullBulletNumber
        {
            get
            {
                return fullBulletNumber;
            }
            set
            {
                fullBulletNumber = value;
            }
        }

        /// <summary>
        /// 计算装弹后弹夹内子弹数目
        /// </summary>
        /// <param name="val">装弹数目</param>
        public void Load(int val)
        {
            int number = BulletNumber + val;

            if (number < FullBulletNumber)
                Console.WriteLine("此枪械弹夹容量为{0},您装入{1}发子弹,现在弹夹内子弹数为:{2}",FullBulletNumber, val, number);
            else
                Console.WriteLine("您装入{0}发子弹,此枪械弹夹容量已满为:{1}", val, FullBulletNumber);
        }
    }
}

  

namespace HomeWork
{
    class Gun : Firearms
    {
        /// <summary>
        /// 默认构造函数
        /// </summary>
        public Gun()
        {

        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="Type">枪械型号</param>
        /// <param name="FullBulletNumber">弹夹容量</param>
        /// <param name="BulletNumber">初始弹夹子弹数</param>
        public Gun(string Type, int FullBulletNumber, int BulletNumber)
        {
            this.Type = Type;
            this.FullBulletNumber = FullBulletNumber;
            this.BulletNumber = BulletNumber;
        }

    }
}

  

namespace HomeWork
{
    class Program
    {
        static void Main(string[] args)
        {
            Gun gun1 = new Gun();
            gun1.FullBulletNumber = 24;
            gun1.BulletNumber = 10;
            gun1.Load(13);
            Console.WriteLine(Firearms.Nature);

            Gun gun2 = new Gun("M1911", 7, 8);
            gun2.Load(3);
            Console.WriteLine("手。枪的本质是" + Gun.Nature);
            Console.ReadLine();
        }
    }
}

  

时间: 2024-11-19 23:20:04

面向对象类的基础练习的相关文章

图解Python 【第五篇】:面向对象-类-初级基础篇

由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节内容一览图: 今天只讲类的基础的面向对象的特性 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数,对象是一个类的实例 实例(instance):一个对象的实例化实现. 标识(identity):每个对象的实例都需要一个可

Java基础知识:面向对象&类图

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称.在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责.在定义类的时候,将类的职责分解成为类的属性和操作(即方法).类的属性即类的数据职责,类的操作即类的行为职责.设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分. 1.面向对象特性 1)抽象 2)继承 3)封装 4)多态 2.类图: 在软件系统

面向对象的核心基础

================ 面向对象的核心基础 ====================注意: 标识符    1.定义必须有意义    2.以字母,下划线,$符号开头,其他内容不能包含特征符号    3.类名首字母必须大写,方法名和属性名首字母必须小写,使用驼峰命名方式    4.常量所有字符都必须大写,如果多个单词之间使用下划线分割 一.什么是对象       现实:具有明确定义的行为和特征的一类事物       程序: 堆内存中分配内容空间       具体类的实例.二.什么类 类:

设计模式(Design Patterns——可复用面向对象软件的基础

    设 计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用 设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决 方案,这也是它能

JavaScript 面向对象开发知识基础总结

JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精要 JavaScript 启示录 如果对于 JavaScript 面向对象编程理解不够深的话,第一本书还是强烈推荐的.第二本书比较适合初中级的开发者阅读.对各种知识点都有代码示例.内容中规中矩. 1.JavaScript 中的变量类型和类型检测 C#和Java等编程语言用栈存储原始类型,用堆存储引用

Python全栈开发记录_第九篇(类的基础_封装_继承_多态)

有点时间没更新博客了,今天就开始学习类了,今天主要是类的基础篇,我们知道面向对象的三大特性,那就是封装,继承和多态.内容参考该博客https://www.cnblogs.com/wupeiqi/p/4493506.html 之前我们写的都是函数,可以说是面向过程的编程,需要啥功能就直接写啥,但是我们在编写程序的过程中会发现如果多个函数有共同的参数或数据时,我们也必须多次重复去写,此时如果用面向对象的编程方式就会好很多,这也是面向对象的适用场景. 面向对象三大特性: 一.封装(顾名思义就是将内容封

Php面向对象 – 类常量

类常量:类中,保存运行周期内,不变的数据. 定义: const关键字 const 常量名 = 常量值 例子: class Student { public  $stu_id; public  $stu_name; public  $stu_gender; const  GENDER_MALE = '男'; const  GENDER_FEMALE = '女'; } 类常量不受访问限定修饰符的限制 访问: 类::常量名 例子: class Student { public  $stu_id; pu

《转》面向对象类设计原则

面向对象类的设计原则 1                 SRP(单一职责原则) 这个原则看起来很简单,就是说一个类只能承担一个职责. 但这里有一个关键:"职责"是如何理解的? 按照汉语的理解,职责其实分为两部分:"职"和"责"."职"就是这个类是什么,而"责"就是这个类要干什么. 举个例子来说:Door是一个对象,那么它的"职"就是门,"责"就是"开门.关

php面向对象类中常用的魔术方法

php面向对象类中常用的魔术方法 1.__construct():构造方法,当类被实例化new $class时被自动调用的方法,在类的继承中可以继承与覆盖该方法,例: //__construct() class construct{ public function __construct(){ $this->var = "this is var"; } } class con2 extends construct{ public function __construct(){ $