zoukankan      html  css  js  c++  java
  • 面向对象——封装和继承

    一、封装

    目的保护类,让类更加安全。

    做法:让类里面的成员变量变为私有(即访问修饰符)的,做相应的方法或者属性去间接的操作成员变量

    ※访问修饰符

    private 私有的              只能在该类中访问

    protected 受保护的       只能在该类和它的子类中访问

    public 公有的                在任何地方都可以访问

    internal 内部的、默认的    程序集中可以访问,程序集就是命名空间

    构造方法(函数):

    作用:造对象所要调用的方法,用来创建对象

          每一个类都有一个构造方法,不写也有只不过看不到而已

    特殊性:写法特殊 (方法名=类名;没有返回值)

          执行时间特殊(创建对象时执行)

    用途:可以对成员进行初始化

    封装:
    private 数据类型 _名字; --成员变量

    public 默认一致 名字 --属性
    {
      get{ return _名字; }
      set{ _名字 = value; }
    }

    属性可有多个,可以只放get或set

    例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 封装
    {
        class Program
        {
            static void Main(string[] args)
            {
                student s = new student();
                s.age = 25;
                s.name = "张三";
                Console.WriteLine(s.age+" "+s.name);
                Console.ReadLine();
            }
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 封装
    {
        class student
        {
            public student()
            {
    
            }
            /// <summary>
            /// 学号
            /// </summary>
            private string _code;
    
            public string code//属性
            {
                get { return _code; }
                set { _code = value; }
            }
            /// <summary>
            /// 姓名
            /// </summary>
            private string _name;
    
            public string name
            {
                get { return _name; }
                set { _name = value; }
            }
            /// <summary>
            /// 性别
            /// </summary>
            private string _sex;
    
            public string sex
            { 
                set 
                {
                    if (value == "")
                    { _sex = ""; }
                    else if (value == "")
                    { _sex = ""; }
                    else
                    { _sex = "错误"; }            
                }
                get { return _sex; }
    
            }
            /// <summary>
            /// 年龄
            /// </summary>
            private int _age;
    
            public int age
            {
                set
                {
                    if (value >= 18 && value <= 150)
                    {
                        _age = value;
                    }
                    else
                    {
                        _age = 0;
                    }
                }
                get { return _age; }
            }    
        }
    }
    View Code

    类中不仅可以有成员变量和属性,还可以有成员方法

    方法又分为,普通方法 静态方法

    普通方法使用: 需要实例化对象,用对象点出来
    静态方法使用: 直接用类名点出来,不需要实例化对象,只需声明时在访问修饰符后面加上static

     注:静态方法里面不能包含普通成员

           普通方法里面可以包含静态成员

    用处:1.为了简便,连接数据库的时候,造连接对象类,使用静态属性直接返回连接对象。

         2.两个类之间传递信息

         3.不允许创建对象的类(对创建对象的个数有限制)

    class Program
        {
            static void Main(string[] args)
            {
                ZuHe zh = new ZuHe();
    
                //zh.name="张三"; //调用普通成员
                //ZuHe.zname = "五月天"; //调用静态成员
                ZuHe.Sing();
    
                Console.WriteLine(zh.Run());
                Console.ReadLine();
            }
        }
    
    
        class ZuHe
        {
            public string name="李四"; //普通成员,组合里面某个人的名字
    
            public static string zname = "李四"; //静态成员,组合名字
    
            public static string Sing() //静态方法
            {
                return "正在唱歌";
            }
    
            public string Run() //普通成员
            {
                return zname+"正在奔跑"; 
            }
        }
    View Code

    二、继承

    子类可以继承父类的一切

    特点:单继承   一个子类只能有一个父类  一个父类可以有多个子类

    C#特殊点:所有类的祖先都是object

    base关键字:在子类中代表父类对象,用法和this关键字相同         

                       如果父类有构造方法,那么子类也要有构造方法,如果父类构造需要参数,那么子类构造也必须有相应的参数。         

                       子类构造后面可以通过base调用父类的构造方法         

                       public China(string m):base(m) {}

  • 相关阅读:
    windows 下安装securecrt 绿色版
    对Linux命令进一步学习vim(二)
    提高php编程效率的小结
    javaScript 的小技巧
    常用 Git 命令文档和命令
    你 get 了无数技能,为什么一事无成
    Ubuntu14.4下安装FTP
    对Linux命令进一步学习
    可以输入也可以下拉选择的select
    APP接口基础学习一
  • 原文地址:https://www.cnblogs.com/jiuban2391/p/6103786.html
Copyright © 2011-2022 走看看