zoukankan      html  css  js  c++  java
  • C#类

    //类头
    public class People       //一般来说C#中定义类时,它的首字母是大写
    {
    //类体
    //定义变量
    public string name;
    public int age;
    }
    
    //实例化对象
    People peo=new peo();
    //变量赋值
    peo.age=21;
    
    
    //////类的构造函数
    //在创建一个类的时候,系统会自动给分配一个无参的构造函数
    
    //有参构造函数
    public People(string _name,int _age)
    {
        //可以用this指针
        name=_name;
        age=_age;
    }
    
    //类中定义方法注意前面加上public,其他的和C++类同
    
    
    //C++中的引用是用"&",而C#中"ref","out"为引用参数声明符,效果同C++的引用
    "ref":当实参没有初始化,传给形参时,会报错,其他的效果同C++的引用
    "out":当实参没有初始化,传给形参时,不会报错,其他的效果同C++的引用
    即使用"ref"的变量必须初始化!
    
    
    //"params"数组型参数
    public void show(params int[] showages)     //当传进来的数组元素个数不确定时,声明params关键字为可变数组
    {
    }
    //main
    int[] myages={11,12,13};
    peo.show(myages);
    
    
    
    //////静态
    //类中声明为静态变量:public static string name
    访问方法可以直接通过类名调用
    //类中声明为静态方法:public static void show(){}
    访问方法可以直接通过类名调用
    非静态方法可以访问静态变量
    
    //静态类
    public static class student
    {
    }
    //!静态类中不允许出现实例化的字段或方法
    
    
    
    //////访问私有字段(封装字段)
    当类中字段声明为私有时
    private string name;
    此时类外部无法直接访问该字段
    访问方法:
    在类中定义属性:
    public string Name
    {
        get        //表示在访问属性的时候,所对应访问的字段 
        {
            return name;
        }
        set        //隐式参数value,表示即将赋值的数据
        {
            name=value;
        }
    }
    //main
    People peo=new People();
    peo.Name;
    peo.Name="lin";
    //也可以选中行,右键【重构】->【封装字段】
    
    
    
    //////类的继承
    //继承People
    public class doctor:People
    {
    }
    //base关键字
    //子类新属性private string addr;进行封装
    //如果基类有有参构造函数,则在子类中的构造函数需要这样写:
    public doctor(string name,int age,string addr):base(name,age)
    {
        this.addr=addr;
    }
    
    //new关键字
    如果在基类中:
    public void show()
    {
        Console.WriteLine(this.Name+this.Age);
    }
    子类中:
    public new void show()               //声明为new覆盖基类的方法
    {
    Console.WriteLine(this.Name+this.Age+this.Addr);
    }
    也可以先调用基类的方法,再输出子类自己的方法
    public new void show()               
    {
    base.show();
    Console.WriteLine(this.Addr);
    }
    
    //override关键字是针对父类中已经定义好的虚方法(virtual)可以进行重写(即父类中的方法应该声明为virtual)
    public override void show()               
    {
    Console.WriteLine(this.Addr);
    }
  • 相关阅读:
    集合容器概述
    enum枚举类型
    this关键字、this()、super()
    重载与重写
    nginx报404的可能错误
    nginx常用命令
    vbs系统监控
    VBS windows监控
    Oracle SQL优化[转]
    shell /bin/bash^M: bad interpreter错误解决
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11445060.html
Copyright © 2011-2022 走看看