• 面向对象 封装 、继承


    构造函数:

    构造函数 - 创建一个类的函数

    每一个类都有构造函数,访问修饰符必须是public的,并且不需要写任何返回值,方法名与类名一致

    自己写的类 - 用户自定义类型
    如果要使用自定义类型产生出来的  对象  必须有一个实例化的过程

    实例化格式:
    类型名  ss = new 构造函数();

    访问修饰符 -  4个

    public - 公共的,任何地方都可以访问,但是需要引用 命名空间

    private - 私有的,类的内部才可以访问

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

    protected - 被保护的,类的内部和类的父类和子类中可以访问

    封装:

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

    public 默认一致 名字      --属性

    {  

      get{ return _名字; }  

      set{ _名字 = value; }

    }

    可以单独只放get或者set

    封装可以保护数据的安全性

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace 面向对象封装
    {

    class xuesheng
    {
    public xuesheng()
    {

    }
    private string _code;//成员变量
    /// <summary>
    /// 学生学号
    /// </summary>
    public string code//属性
    {
    get { return _code; }//属性取值
    set { _code = value; }//属性赋值
    }

    private bool _xingbie;
    /// <summary>
    /// 学生性别
    /// </summary>
    public string xingbie
    {
    set
    {
    if (value == "男")
    _xingbie = true;
    else if (value == "女")
    _xingbie = false;
    else
    _xingbie =true;
    }
    }
    public string xingbie1
    {
    get
    {
    return _xingbie?"男":"女";
    }
    }


    private string _age;
    /// <summary>
    /// 学生年龄
    /// </summary>
    public string age
    {
    get { return _age; }
    set
    {
    if (int.Parse(value) > 16)
    _age = "成年人";
    else if (int.Parse(value) < 16)
    _age = "未成年";
    }
    }

    }
    }

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

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

    普通方法使用: 需要实例化对象,用对象点出来

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

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace aaaaa
    {
        public class jisuan
        {
            /// <summary>
            /// 计算两个数的加法,返回和
            /// </summary>
            /// <param name="a">要计算的第一个数</param>
            /// <param name="b">要计算的第二个数</param>
            /// <returns></returns>
            public int jiafa(int a, int b) //成员方法
            {
                return a + b;
            }
     
            public static int jianfa(int a, int b)
            {
                return a - b; 
            }
        }
    }

    继承:

    继承语法:  类名 : 父类名(在类名后面直接写冒号与想要继承的父类名)

    子类也叫做xxx的派生类,超类

    父类也叫做基类

    一个父类可以有无数个子类

    一个子类可以有1个父类

    子类并不是可以继承父类中所有的东西,而是可以继承父类中允许子类继承的内容,这个允许条件是依靠访问修饰符来做的权限

    fly.cs中:

    复制代码
    namespace 继承
    {
        public class Fly
        {
            public string Fling()
            {
                return "我会飞行!!!";
            }
    
    
        }
    }
    复制代码

    plane.cs中:

    namespace 继承
    {
        public class Plane : Fly
        {
        }
    }

    bird.cs中:

    namespace 继承
    {
        public class Bird : Fly
        {
        }
    }

    program.cs中:

    复制代码
    namespace 继承
    {
        class Program
        {
            static void Main(string[] args)
            {
                Plane pl = new Plane();
                Console.WriteLine(pl.Fling());
                Bird b = new Bird();
                Console.WriteLine(b.Fling());
    
                Console.ReadKey();
            }
        }
    }
    复制代码
  • 相关阅读:
    JAVA调用WCF
    写代码之前要做什么?
    漫谈界面和数据
    UIButton 简易的UI
    数据结构利器之私房STL(中)
    有趣的位运算
    基于TCP的C/S初级网络编程1
    数据结构利器之私房STL(上)
    Unix/Linux 那些系统启动后的进程
    【字符串匹配】KMP算法之道
  • 原文地址:https://www.cnblogs.com/1030351096zzz/p/6105328.html
Copyright © 2020-2023  润新知