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

运行结果如下:

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

再见!

相关推荐
Boilermaker19921 天前
[Java 并发编程] Synchronized 锁升级
java·开发语言
MM_MS1 天前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
玩泥巴的1 天前
飞书 .NET SDK 事件处理的幂等性与去重机制
c#·.net·二次开发·飞书
꧁Q༒ོγ꧂1 天前
LaTeX 语法入门指南
开发语言·latex
njsgcs1 天前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_991 天前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
在路上看风景1 天前
3.2 FileStream
c#
zwm2698888151 天前
6号楼 部分声光24v电压达不到,显示11v
c#
古城小栈1 天前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90901 天前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab