【C#补全计划:类和对象(一)】

一、创建类

cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {

    }
}

二、添加成员变量

cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        string name;
        char sex;
        int age;
    }
}

三、访问修饰符

cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问
    }
}

四、构造函数

  1. 一般构造方法
cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }
    }
}
  1. 特殊构造方法
cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }

        // 特殊构造方法
        public Person(string name, char sex, int age) : this(name)
        {
            Console.WriteLine(this.name + "调用特殊构造方法");
            this.sex = sex;
            this.age = age;
        }
    }
}

五、析构方法

  1. 析构方法
cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }

        // 特殊构造方法
        public Person(string name, char sex, int age) : this(name)
        {
            Console.WriteLine(this.name + "调用特殊构造方法");
            this.sex = sex;
            this.age = age;
        }

        // 析构方法:在进行垃圾回收时调用
        // 语法:~ + 类名相同的函数名 + () + {}
        ~Person()
        {
            Console.WriteLine("调用析构方法");
        }
    }
}
  1. 手动触发垃圾回收
cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }

        // 特殊构造方法
        public Person(string name, char sex, int age) : this(name)
        {
            Console.WriteLine(this.name + "调用特殊构造方法");
            this.sex = sex;
            this.age = age;
        }

        // 析构方法:在进行垃圾回收时调用
        // 语法:~ + 类名相同的函数名 + () + {}
        ~Person()
        {
            Console.WriteLine("调用析构方法");
        }

        // 手动触发垃圾回收
        public void startGC()
        {
            Console.WriteLine("调用垃圾回收方法");
            GC.Collect();
        }
    }
}

六、成员方法

cs 复制代码
using System;

namespace ClassAndObject
{
    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }

        // 特殊构造方法
        public Person(string name, char sex, int age) : this(name)
        {
            Console.WriteLine(this.name + "调用特殊构造方法");
            this.sex = sex;
            this.age = age;
        }

        // 析构方法:在进行垃圾回收时调用
        // 语法:~ + 类名相同的函数名 + () + {}
        ~Person()
        {
            Console.WriteLine("调用析构方法");
        }

        // 手动触发垃圾回收
        public void startGC()
        {
            Console.WriteLine("调用垃圾回收方法");
            GC.Collect();
        }

        // 成员方法
        // 上面的startGC()也是成员方法
        public void speak()
        {
            Console.WriteLine(this.name + "说:我调用了speak方法");
        }
    }
}

七、使用对象

cs 复制代码
using System;

namespace ClassAndObject
{
    class Program
    {
        static void Main(string[] args)
        {
            // 使用无参构造方法创建对象
            Person p1 = new Person();
            // 使用有参构造方法创建对象
            Person p2 = new Person("张三", '男', 18);
            // 调用垃圾回收方法
            p1.startGC();
            // 调用speak()成员方法
            p2.speak();
        }
    }

    // 创建类
    class Person
    {
        // 创建类的成员变量
        public string name; // public(公共的):内部和外部都能访问
        protected char sex; // protected(保护的):内部和子类可以访问,外部不能访问
        private int age;    // private(私有的):只有内部才能访问,外部和子类都不能访问

        // 无参构造方法
        public Person()
        {
            Console.WriteLine("调用无参构造方法");
        }

        // 有参构造方法
        public Person(string name)
        {
            this.name = name;
            Console.WriteLine(this.name + "调用有参构造方法");
        }

        // 特殊构造方法
        public Person(string name, char sex, int age) : this(name)
        {
            Console.WriteLine(this.name + "调用特殊构造方法");
            this.sex = sex;
            this.age = age;
        }

        // 析构方法:在进行垃圾回收时调用
        // 语法:~ + 类名相同的函数名 + () + {}
        ~Person()
        {
            Console.WriteLine("调用析构方法");
        }

        // 手动触发垃圾回收
        public void startGC()
        {
            Console.WriteLine("调用垃圾回收方法");
            GC.Collect();
        }

        // 成员方法
        // 上面的startGC()也是成员方法
        public void speak()
        {
            Console.WriteLine(this.name + "说:我调用了speak方法");
        }
    }
}

运行结果如下:

今天的学习就到这里了。感谢阅读。

再见!

相关推荐
油丶酸萝卜别吃4 小时前
utils.js 说明文档
开发语言·javascript·ecmascript
leisoo80977 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴7 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝8 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
椒颜皮皮虾྅9 小时前
OpenVINO C# API 3.3.1:支持OpenVINO 2026.3及GenAI增强
人工智能·c#·openvino
coder!mq10 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding10 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ10 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大11 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS11 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式