4. 属性

作者: silence_k | 来源:发表于2016-12-07 17:26 被阅读0次

1. 定义:

属性结合了字段和方法的多个方面。 对于对象的用户,属性显示为字段,访问该属性需要相同的语法。 对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。
当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。
不具有set访问器的属性被视为只读属性。
不具有 get访问器的属性被视为只写属性。 同时具有这两个访问器的属性是读写属性。

2. 用途

属性具有多种用法:

  • 它们可在允许更改前验证数据;
  • 当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。

3. 语法

 public class Date
    {
        private int month; 

        public int Month
        {
            get
            {
                return month;
            }
            set
            {
                if ((value > 0) && (value < 13))
                {
                    month = value;  //value是外界赋的值
                }
            }
        }
    }

4. 注意点

属性可以只写get块或set块。
如果只写get不写set,那么就不能再外面赋值了。 如果只写set不写get,那么就不能在外界读取了。

可以给set或者get设置访问修饰符,来限制调用范围。

5. 属性的简写方式

public class Date
    {
        public int Month{get;set;} // 编译器会自动加上一个month的字段。
    }

6 、 练习题

用面向对象的思维去完成下面的题

游戏中,有玩家,每个玩家有昵称,ID,游戏职业(法师、战士、射手。。。),血量,物攻,法伤,物抗,法抗,。

游戏中,还有装备,装备有物理防御、法术防御、物理攻击力,法术攻击力,血量。 玩家拥有装备后,可以提升自己的能力。


游戏中,还有多个怪物,怪物有血量,物攻,法伤,物抗,法抗,Boss的法伤,物攻和物抗,法抗,血量比较高,小兵的比较低。

玩家打怪物,怪物打玩家。 

血量减少的值等于被攻击的值减去自身的抗性。
如: 玩家1的物理攻击是800,法术攻击是300,怪物的物理防御是600,法术防御是500, 玩家打怪物一下,怪物的血量减少200.

玩家打怪物两下,怪物打玩家一下,可以多个玩家打一个怪物。

无论是玩家还是怪物,当血量为0的时候则 死亡。

要求游戏职业定义为枚举、还要用到构造函数。

相关文章

  • 4. 属性

    1. 定义: 属性结合了字段和方法的多个方面。 对于对象的用户,属性显示为字段,访问该属性需要相同的语法。 对于类...

  • 4.计算属性

    在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。在模板中放入太多的逻辑会让模板过重且难以维护。例如...

  • 4.会话属性 AbpSession

    一、概述 AbpSession提供获取用户ID,租户ID,身份类型的一些信息。AbpSession不是Sessio...

  • 4.文件属性

    Linux系统是多用户系统,不同的用户在系统中处于不同的地位,也需要配置不同的权限。为了保护系统的安全性,Linu...

  • 第一章:Android高级UI - UI原理与高级绘制(3)

    3.事件传递机制 4.属性动画

  • 元素and对象

    一.访问元素的属性 A.核心Dom1.获得属性值: 2.设置属性: 3.移除属性: 4.判断是否有属性: B.HT...

  • 4.属性注入--set方法

    1.属性注入有四种方式: 1)set方法注入(重点) 2)构造函数注入(重点) 3)p名称空间注入(了解) 4)s...

  • Swift中的计算机属性setter/ getter

    1. 仿照OC 来写set/get方法 2. 只读属性的写法 3. 存储型属性和计算型属性 4.计算型属性和懒加载...

  • 2.css盒模型

    1 盒子模型的概念 2.边框属性 3.边框属性—设置边框样式(border-style) 4.边框属性—设置边框样...

  • CABaseAnimation ----keyPath取值

    1.几何属性 2.背景属性 3.Layer内容(Layer Content) 4.子Layer内容(SubLaye...

网友评论

      本文标题:4. 属性

      本文链接:https://www.haomeiwen.com/subject/onadmttx.html