首页 > 编程语言 >C#随记04

C#随记04

时间:2023-03-07 18:58:14浏览次数:21  
标签:set 04 get C# value 访问 对象 随记 属性

面向对象程序设计

将数据和对数据的操作看作是一个不可分割的整体,力求将现实问题简单化。尽量复合人们的思维习惯,提高软件的开发效率,并方便后期的维护。

  • 对象具有唯一性
  • 对象之间各不相同,每一个对象都有自己的运动规律和内部状态
  • 对象与对象之间又是可以相互联系,相互作用的
    面向对象技术是一种从组织结构上模拟客观世界的方法

对象

对象是事物存在的实体。

  • 静态部分
    不能动的部分,属性。
  • 动态部分
    所具备的行为。
  • 特征:
  1. 每一个对象必须有一个名字以区别其他对象
  2. 用属性来描述对象的某些特征
  3. 有一组操作,每一个操作决定对象的一种行为
  4. 对象的操作可以分为两类,一类是自身所承受的操作,一类是施加于其他对象的操作。
  • 属性
  • 行为

同一事物的统称,创建对象时所依赖的规范
封装对象属性和行为的载体

三大基本特征

封装

将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。

  • 采用封装思想保证了类内部数据结构的完整性,使用该类的用户不能直接看到类中的数据结构,而只能执行类中允许公开的数据。这样就避免了外部对内部数据的影响,提高了程序的可维护性。

继承

实现重复利用的重要手段,子类通过继承复用了父类的属性和行为的同时,又添加了子类特有的属性和行为。

多态

将父类对象应用于子类的特征就是多态。
龙生九子,九子都有龙的特征,同时又有自己的独特特征。

  • 类时一种数据结构,它可以包含数据成员(常量和变量)、函数成员(方法、属性、构造函数和解构造函数等)和嵌套类型。

类的声明

class 类名{
}

类的成员

字段、属性、方法、构造函数等

字段

常量或变量

属性

  • 属性是对现实实体特征的抽象,提供对类或对象的访问。
  • 类的属性描述是状态信息,在类的实例中,属性的值表达对象的状态值。
  • 属性具有访问器,这些访问器指定在它们的值被读取或写入时需要执行的语句,因此属性提供一种机制,把读取和写入对象的某些特征与一些操作关联起来,开发人员可以像使用公共数据成员一样舒勇属性。
[权限修饰符][类型][属性名]{
	get{get访问器体}
	set{set访问器体}
}
  • 修饰符:指定属性的访问级别
  • 类型:指定属性的类型,可以是任何预定义或自定义类型
  • 属性名:一种标识符,首字母通常大写
  • get访问器:相当于一个具有属性类型返回值的无参数方法,它除了作为赋值的目标外,当表达式中引用属性时,将调用该属性的get访问器获取属性的值,get访问器需要用return语句来返回,并且所有的return语句都必须返回一个可隐式转换为属性类型的表达式。
  • set访问器:相当于一个具有单个属性类型值参数和void返回类型的方法。set访问器的隐式参数始终命名为value,当一个属性作为赋值的目标被引用时,就会调用set访问器,所传递的参数将提供新值。由于set访问器存在隐式的参数value,因此,在set访问器中不能自定义名称为value的局部变量或常量。
    根据是否存在get和set访问器,可以将属性分为:
  • 可读可写属性:包含get和set
  • 只读属性:只包含get
  • 只写属性:只包含set
    属性的主要用途是弦值外部类对类中成员的访问权限,定义在类级别上。
自定义一个类,要求该属性为可读写属性,并设置其访问级别为public
private string tradecode="";
public sting tradcode{
	get{return tradecode;}
	set{tradecode=value;}
}

由于属性的set访问器中可以包含大量的语句,因此可以对赋予的值进行检查,如果值不安全或不符合要求,就可以进行处理操作,这样可以避免因为给属性设置了错误的值而导致的异常。

通过属性控制年龄的输入范围
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace studyDaily
{
    class Program
    {

        private int age;//定义字段
        public int Age  //定义属性
        {
            get
            {
                return age;
            }
            set
            {
                if (value > 0 && value < 70)
                {
                    age = value;
                }
                else
                {
                    Console.WriteLine("输入的数据不合理!");
                }
            }
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            while (true)
            {
                Console.Write("请输入年龄:");
                p.Age = Convert.ToInt16(Console.ReadLine());//为年龄赋值
            }
        }
    }
}

标签:set,04,get,C#,value,访问,对象,随记,属性
From: https://www.cnblogs.com/flyall/p/17189158.html

相关文章

  • Ubuntu安装docker详细教程
    1.安装sudoapt-getupdate&&sudoapt-getinstall-yapt-transport-httpsca-certificatescurlsoftware-properties-common&&curl-fsSLhttps://download.dock......
  • ifconfig:网卡and ip
     ifconfig:       eth0:网线以太网接口卡【有线网卡】 网卡:网阔接口控制器,让计算机可以通信的硬件,其拥有MAC地址配置网卡ip:ifconfi......
  • C# Thread开启线程的几种方式
    C#Thread开启线程的几种方式2023-01-2308:20·opendotnet概述无论学习那门编程语言,多线程都是逃不掉的一个坎。为了提升程序整体的运行效率,我们一般都会把比较耗时......
  • 一篇搞懂cookie和session
    一篇搞懂cookie和sessioncookie、session和token存在的意义是什么?http是无状态的,每次请求是独立的,服务端不保存会话信息,所以他的好处也就是快,但缺点也显而易见,就是无法......
  • Block3Dv1.0发布!多年以后会开启多少人的编程之路?
    Block3Dv1.0发布!多年以后会开启多少人的编程之路?原创2023-02-1013:19·宅家呗自从2022年6月2日发布第一个测试版,已经过去了整整8个月。软件的开发过程很顺利,没有遇到特......
  • 2002年,我在台资企业搞信息化,才正式学习编程软件,当时用的delphi5,操作简单,编译速度快,拖
    2002年,我在台资企业搞信息化,才正式学习编程软件,当时用的delphi5,操作简单,编译速度快,拖拉控件,上手很快,这样陆陆续续使用到现在,出了不少作品,至今还在用delphi搞PC端软件......
  • golang 结构体(struct)
    1.结构体定义Golang没有类(class),Go语言的结构体(struct)和其它编程语言的类(class)有同等的地位,你可以理解Gelang是基于struct来实现OOP特性的。结构体由一系列命名的......
  • 【.NET Core 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比
    前言唠嗑一下。都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区。例如,去O,狭义上讲,是去Oracle数据库。但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断......
  • 转载:Oracle 中 rac asm管理
     原文:https://www.5axxw.com/wenku/sa/1020944e.html1.创建advm卷alterdiskgroupdataaddvolumevolume1size100m;alterdiskgroupdataresizevolumevolu......
  • Scala-Option使用
    最近进行代码ShowCode,发现不少null值处理的场景,比如赋初始值或者判断非空。还在使用Java中方式,没有使用更简便的Scala-Option进行包装。Option可以理解为类型容器,通过安全......