【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方法");
        }
    }
}

运行结果如下:

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

再见!

相关推荐
.YM.Z12 分钟前
C++ STL 容器深度剖析:vector 与 list 的模拟实现及对比
开发语言·c++·vector·list
lsylalalala36 分钟前
多线程(4)
java·开发语言·多线程
小白不想画工图37 分钟前
银河麒麟V10系统安装QT5.12
linux·开发语言·qt·银河麒麟
IT_Octopus1 小时前
JSON 日志里的 `{“$ref“:“$.xxx“}`:从 fastjson 兼容包到原生 fastjson2 的迁移实录
开发语言·python·json
geovindu1 小时前
python:HandWriting Recognition using paddlepaddle
开发语言·后端·python·paddlepaddle
wuyk5552 小时前
Python 零基础入门第九章:用户输入与 While 循环
开发语言·python
兮动人2 小时前
Python变量与常量
开发语言·python·机器学习·python变量与常量
风筝在晴天搁浅2 小时前
解题代码清爽版
java·开发语言
Java后端的Ai之路2 小时前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式
astronautyi2 小时前
Go 运行时内存分配与 GC 位图深度剖析
开发语言·后端·golang