C#---面向对象编程(OOP)

本文详细介绍了Unity3D中的面向对象编程概念,包括访问修饰符的使用、面向过程与面向对象的对比、字段与方法的声明与应用。通过实例展示了如何创建和使用类、对象,以及方法的实现。此外,还涉及了枚举类型的使用和程序员等级评估的方法。
摘要由CSDN通过智能技术生成

【千锋合集】史上最全Unity3D全套教程|匠心之作_哔哩哔哩_bilibili

访问修饰符

public:类型或成员所在大括号内和外都可以访问它

private:类型或成员所在的大括号内可以访问,大括号外不能访问

面向过程

重点关心解决问题步骤

优点:可以很清晰的看明白问题解决的步骤

代码行数要少一些,性能消耗低一些

缺点:不易维护、不易拓展、不易复用

面型对象

重点关系解决问题过程中参与的对象有哪些,分别由哪些特性和行为。面向对象是把构成问题事务分解成各个对象

优点:易维护、易拓展、易复用

缺点:代码是分散的、行数多一些

性能消耗要高一些

字段就是描述类的特性

[访问修饰符] Class 类名//大驼峰命名法

创建一个类的对象

类名 对象名;

一个对象在创建后,需要进行实例化(初始化)才能使用

类名 对象名=new 类名();

原理:对象在进行new操作后,才分配了内存

类类型是引用类型

using System;

namespace dOOP
{
    class Person {
        //在类内的字段是可以有初值的
        public string name;
        public int age;
        public char skinColor;
    }
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个人类对象
            Person xiaoming = new Person();
            xiaoming.age = 18;
            Person xiaogang = xiaoming;
            xiaogang.age = 20;
            Console.WriteLine("xiaoming.age" + xiaoming.age);

            #region
            //栈01          --->堆
            int[] array = new int[5];
            //栈02          --->堆
            Person xiaohong = new Person();
            #endregion
        }
    }
}

字段 Field

using System;

namespace dOOP
{
    class Person {
        //在类内的字段是可以有初值的
        public string name;
        public int age;
        public char skinColor;
    }
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个人类对象
            Person xiaoming = new Person();
            xiaoming.age = 18;
            Person xiaogang = xiaoming;
            xiaogang.age = 20;
            Console.WriteLine("xiaoming.age" + xiaoming.age);

            #region
            //栈01          --->堆
            int[] array = new int[5];
            //栈02          --->堆
            Person xiaohong = new Person();
            #endregion
            #region 字段的声明与使用
            Person xiaowang = new Person();
            xiaowang.name = "小王";
            xiaowang.age = 18;
            xiaowang.skinColor = 'Y';
            Console.WriteLine("姓名:{0},年龄{1},肤色{2}",xiaowang.name,xiaowang.age,xiaowang.skinColor);

            #endregion
        }
    }
}

方法

方法就是封装了一段有特定功能的代码段

方法就是用来描述一个类的行为

方法创建

访问修饰符 返回值类型 方法名(参数列表)

{

代码块

return值

}

方法的调用

返回值类型 变量名=对象名.方法名(实参列表);

using System;

namespace dOOP
{
    class Person {
        //在类内的字段是可以有初值的
        public string name;
        public int age;
        public char skinColor;
        public bool hasSharpen = false;
        public void GetWood() {
            Console.WriteLine("上山砍柴");
            if (hasSharpen) {
                Console.WriteLine("砍了10斤柴");
            }
            else{
                Console.WriteLine("砍了2斤柴");
            }
        }
        public void Sharpen() {
            hasSharpen = true;
            Console.WriteLine("磨刀中");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个人类对象
            Person xiaoming = new Person();
            xiaoming.age = 18;
            Person xiaogang = xiaoming;
            xiaogang.age = 20;
            Console.WriteLine("xiaoming.age" + xiaoming.age);

            #region
            //栈01          --->堆
            int[] array = new int[5];
            //栈02          --->堆
            Person xiaohong = new Person();
            #endregion
            #region 字段的声明与使用
            Person xiaowang = new Person();
            xiaowang.name = "小王";
            xiaowang.age = 18;
            xiaowang.skinColor = 'Y';
            Console.WriteLine("姓名:{0},年龄{1},肤色{2}",xiaowang.name,xiaowang.age,xiaowang.skinColor);
            #endregion
            xiaoming.GetWood();
            xiaohong.Sharpen();
            xiaohong.GetWood();
        }
    }
}

字段

描述类的特性

可以有初值

小驼峰命名法

方法

方法是描述一个类的行为

一个方法尽量就完成一件小的事情

如果要完成一件大事,先定义一些方法,完成这个大事拆分出来的小事,最后按照流程,在大事方法中调用这些小事的方法

使用大驼峰命名法命名 

无参无返回值的方法

public void IntroduceMe(){ }

this关键词

this表示当前对象,如无重名现象,可以省略

帮助注释

可以添加帮助注释的有:类 方法 字段 属性

帮助注释的优点:在使用类、方法、字段、属性的时候,可以在提示框中显示帮助注释的内容

无参有返回值方法

return关键词

返回结果

终止程序运行

using System;

namespace cMethod
{
    enum HairCount
    {
        Dense,
        Sparse,
        Mediterranean,
        Bareheader
    }
    enum ProgrmmerLever
    {
        Primary,
        Intermediate,
        ChiefInspector,
        CTO
    }
    /// <summary>
    /// 改变世界的程序员
    /// </summary>
    class Programmer {
        /// <summary>
        /// 发量
        /// </summary>
      
        public string name;
        /// <summary>
        /// 发量
        /// </summary>
        public HairCount hairCount;
        public int age;
        private string[] underbrag = { "钱多", "话少", "死的快", "发量小", "有程序员鼓励师" };
        /// <summary>
        /// 自我介绍
        /// </summary>
        public void IntroduceMyself() {
            Console.WriteLine($"我叫{name},今年{age}岁");
        }
        /// <summary>
        /// 获取程序员等级
        /// </summary>
        public ProgrmmerLever GetProgrammerLevel() {
            ProgrmmerLever result = ProgrmmerLever.Primary;
            switch (hairCount) {
                case HairCount.Dense:
                    return ProgrmmerLever.Primary;
                case HairCount.Sparse:
                    return ProgrmmerLever.Intermediate;
                case HairCount.Mediterranean:
                    return ProgrmmerLever.ChiefInspector;
                case HairCount.Bareheader:
                    return ProgrmmerLever.CTO;
                default:
                    return ProgrmmerLever.Primary;
            }
        }
        public string RandomUnderbrag() {
            //创建Random对象
            Random random = new Random();
            //随机一个数组下标[0,5)
            int num=random.Next(0, underbrag.Length);
            string words = underbrag[num];
            //返回结果
            return words;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Programmer xiaoming = new Programmer();
            xiaoming.name = "小明";
            xiaoming.age = 20;
            xiaoming.hairCount = HairCount.Mediterranean;
            //调用方法(执行方法内的代码)
            xiaoming.IntroduceMyself();
            //调用方法,接受结果
            ProgrmmerLever xiaomingLevel = xiaoming.GetProgrammerLevel();
            Console.WriteLine("xiaoming的程序员等级是" + xiaomingLevel);
            string words=xiaoming.RandomUnderbrag();
            Console.WriteLine("自黑时间到了:"+words);
        }
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值