当前位置:首页 > C#学习 > 正文内容

成员访问级别和属性

小道7年前 (2018-08-20)C#学习4310

字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。

几个访问级别:public(任何地方都可以访问);private(默认级别。只能由本类中的成员访问)。还有internal、protected两个级别。

永远不要把字段设置成public。

快速定义属性方法:将光标定位到 字段名上,同时按下:CTRL+R+E。可以快速定义 字段的属性。


惯用法:属性开头字母大写,字段开头字母小写。

只用set或者只用get就可以定义只读或者只写属性(只写的不常见)。

可以为set、get设置访问级别。

允许外部访问的值一定要声明为属性。

字段和属性的区别是什么?属性看似字段、不是字段,可以进行非法值控制,可以设置只读。

    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            p.Age = 18;//将18传递给value
            p.Name("铁锤");//将字符串"铁锤"传递给string a。
            p.Say();
            Console.ReadKey();
        }
    }
    class Person
    {
        private int age;//字段,名称为小写。一般所有字段全部设置成private局部访问。
        private string name;
        public int Age//属性,名称首字母大写,一般所有属性设置成public全局访问。可以只有set或者get.
        {
            set//设置值
            {
                if (value <100)//判断传递过来的值是否小于100
                {
                    this.age = value;//this表示这个,可省略不写。value表示传递过来的值。
                }
            }
            get//返回值
            {
                return this.age;//返回去的值。
            }
        }
        public string Name(string a)//这个是有返回值的函数。
        {
            if (a != "王钢蛋")//判断传递过来的值是否为:王钢蛋。
            {
                name = a;//不为王钢蛋,则执行。
                return name;//返回名字。
            }
            return "我不叫:王钢蛋。";//否则执行这句。
        }
        public void Say()//函数(或叫方法)和函数用法相同。可以有返回值,也可以无返回值。
        {
            Console.WriteLine("你好!我叫:{0},我今年{1}岁了。", this.name, this.Age);
        }

    }

输出结果:


image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/36.html

分享给朋友:

“成员访问级别和属性” 的相关文章

机器人:具有模糊判断

机器人:具有模糊判断

自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“今天北京天气很好。”。        static void&nbs...

简单的加法计算器

简单的加法计算器

简单的加法计算器,用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。int.TryParse、MessageBox.Show。        pri...

登录系统

登录系统

登录界面。登录错误三次退出程序,假设用户名、密码是admin、888888,不区分大小写。(易错点:局部变量与类变量)退出程序this.Close()或者Application.Exit()    public partial class&...

StreamReader/StreamWriter与FileStream的区别

StreamReader/StreamWriter与FileStream的区别

一个很大的区别就是:StreamReader/StreamWriter操作的是字符数据(char),而FileStream操作的是字节数据(byte),FileStream与StreamXXXX类的默认编码都是UTF8,而一个中文字符占2个字符,所以StreamXXXX类常用于文本的打开与保存,而F...