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

运行结果如下:

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

再见!

相关推荐
深蓝电商API1 分钟前
异步爬虫中代理池的并发管理
开发语言·爬虫·python
hhy_smile2 分钟前
Special method in class
java·开发语言
沐知全栈开发5 分钟前
Bootstrap5 轮播
开发语言
༾冬瓜大侠༿11 分钟前
C++string
c语言·开发语言·c++·算法
雨季66611 分钟前
Flutter 三端应用实战:OpenHarmony “极简文本字符计数器”——量化表达的尺度
开发语言·flutter·ui·交互·dart
skywalker_1114 分钟前
多线程&JUC
java·开发语言·jvm·线程池
黎雁·泠崖15 分钟前
Java基础核心能力总结:从语法到API的完整知识体系
java·开发语言
雨季66622 分钟前
Flutter 三端应用实战:OpenHarmony “呼吸灯”——在焦虑时代守护每一次呼吸的数字禅修
开发语言·前端·flutter·ui·交互
初恋叫萱萱1 小时前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
cyforkk2 小时前
12、Java 基础硬核复习:集合框架(数据容器)的核心逻辑与面试考点
java·开发语言·面试