第十一章 C# 基础

一 . 私有字段

不希望类中字段暴露给其他类 可以使用private描述字段 可以在构造函数重载中对其赋值

或者使用属性赋值

  //在入口调用
 MyClass myClass = new MyClass();
        
   myClass.Test(10);



 // 私有字段
        //不希望类中字段暴漏给其他类 可以使用private 描述字段  可以在构造函数重载中对其 赋值
        //或者使用属性赋值
        private int _age;
        //使用方法来限制和提供内部的私有字段的访问
        public void Test(int a) 
        {   if (a > 10)
            {
                _age = 10;

            }
            else {
                _age = a;
            }
        }

二.对象实例化

如何对象的实例化   使用new关键字  new 开辟内存空间为对应类的对象 (内存保存的时实例字段和实例方法和实例属性)

实例化一个对象语法是:
类名 对象名=new 类名()  

属性 和 字段的关系

 // 属性和字段的关系 
        //(1)字段是变量  属性是方法
        //(2)字段是为类的内部方法,或者方法之间传递数据使用,强调对内使用
        //属性是对外提供数据访问、本身不保存数据,强调对外使用
        // (3)字段一般用private修饰,很少用public
        // 属性都是public,从来不用private
        // 字段尽量定义成私有的  如果想访问使用属性
        //(4)属性可以为私有字段进行扩展 
        //(5)属性可以分别有一个set 和get 方法组成。(或者称为访问器)
        //(6)字段可以读写均可,也可以用readonly限制为只读,但是不能添加业务逻辑。
        //      属性可以轻松的实现单独读写控制,并且可以添加任意需要的业务逻辑。
 

 //调用的方法

//调用实例属性  属性的调用方式和字段一致  但是本质是方法

            //调用abc属性的set方法
            myClass.abc = 200;

            //调用abc属性的get方法
            Console.WriteLine(myClass.abc);


//属性是类中的成员   属性本质就是函数
        // 实例属性
        public  int abc
        {
            get
            {
                //return 的数据类型 和 abc的 类型一致
                return 10;
            }
            set
            {
                //value 是索引器(set 方法)中的关键字
                //value 代表属性在外部调用时 赋值的结果
                Console.WriteLine(value);
                Console.WriteLine("abc属性set方法被调用");
            }
        }

调用私有字段 

//调用方法  
 myClass.Height = 1000;
 Console.WriteLine(myClass.Height); 


//私有字段_height
        private int _height;
        //共有属性Height
        public int Height
        {
            get 
            { 
                return _height;
            } 
            
            set { 
                 _height = value;
            }
        }

属性对字段的扩展

 //调用方法
myClass.Number = 100;
Console.WriteLine(myClass.Number);


private int _number;
        //属性对字段的扩展
        public int Number { 
        
         set 
            {
                if (value > 10)
                {
                    _number = 10;
                    Console.WriteLine("赋值超过最大范围 默认给予最大值");
                }
                else { 
                    _number = value;
                }
            
            }
            get {
              
                return _number;
            }
        
        
        }

只写属性

//调用方法

            //只写属性
            myClass.NameNumber = 3000;
            //Console.WriteLine(myClass.NameNumber);



 private int _nameNumber;
        public int NameNumber
        {
            set { 
               
                _nameNumber =value;
            }
        
        }

只读属性

 //调用放法
//只读属性
            //  myClass.NameNumber1 = 100;
            Console.WriteLine(myClass.NameNumber1);


//只读属性
        private int _nameNumber1 =500;
        public int NameNumber1
        {
            get
            {
                return _nameNumber1;
            }

        }

        private string _name123444;

语法糖

 //调用方法
   myClass.Weight = 100;
            Console.WriteLine(myClass.Weight);


//语法糖 
        //可读可写
        public int Weight { get; set; }   
        //具有默认值的属性
        public string StrNumber { get; set; } = "属性直接初始化";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值