[Day21]C# 鸡础观念- 物件导向(oop)~类别(class)

万物皆有他的结构,
就如同世界上所有东西皆由元素所组成,
而定义这些结构在C#中称为class,
他是一切的蓝图

变数成员与方法成员/images/emoticon/emoticon07.gif

  • 结构:
    https://ithelp.ithome.com.tw/upload/images/20210920/20097001TE37hH4gKq.png

范例:我们来实作猫的类别 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            //使用类别前要先实例化
            Cat cat = new Cat();

            //填写变数成员
            Console.WriteLine("请输入姓名:");
            cat.name = Console.ReadLine();

            Console.WriteLine("请输入年龄:");
            cat.age =Convert.ToInt32(Console.ReadLine());

            //呼叫方法成员
            //喵喵叫
            cat.Meow();

            //抓到老鼠
            cat.CaseMice();

            Console.ReadKey();
        }
    }

    class Cat
    {
        //名称
        public string name;
        //年龄
        public int age;
        //老鼠数量
        public int miceCount = 0; //记录抓几只老鼠
        //方法成员
        //方法:打招呼
        public void Hello()
        {
            Console.WriteLine("嗨!我是{0} ", name);
        }
        //方法:喵喵叫
        public void Meow()
        {
            Hello();
            Console.WriteLine("喵~~~~~喵~~~");
        }
        //方法:捉老鼠
        public void CaseMice()
        {
            miceCount++;
            Hello();
            Console.WriteLine("我已经抓了 {0} 只老鼠", miceCount);
            Console.ReadKey();
        }
    }
}

输入:

孤独一只鸡
48

输出:

请输入姓名:
孤独一只鸡
请输入年龄:
48
嗨!我是孤独一只鸡
喵~~~~
嗨!我是孤独一只鸡
我已经抓了 1 只老鼠

  1. 在Cat这个类别之中,

    • 猫有三个属性:
        1. 名字
        2. 年龄
        3. 捉到老鼠数量
      分别使用 name 、age、 miceCount 来表示,
      他们称为类别的成员变数(Member Variable) 
      https://ithelp.ithome.com.tw/upload/images/20210920/20097001jyYIlCq1wD.png
  2. 公用和私用 (public/private)

  • public/private统称为"修饰词"
	public string name;
	public int age;            ⇒ 公有成员
	public void Meow()
	public void CaseMice()
	
	private int miceCount = 0; 
	private void Hello()        ⇒私有成员

    ※把变数或函数标记为private,可以确保这些数据不受到外界的影响

已宣告存取范围 意义
public 未限制存取。
protected 存取限於包含类别或衍生自包含类别的类型。
internal 存取限於目前组件。
protected internal 存取限於目前组件或衍生自包含类别的类型。
private 存取限於包含类型。
private protected 存取限於目前组件内包含类别或衍生自包含类别的类型。 自 C# 7.2 起可用。

学会了类别之後,会发现原来程序码,也可以这样做分类鸭!


<<:  从 JavaScript 角度学 Python(21) - Requests

>>:  Episode 7 - 四则运算

[Day20] Tableau 轻松学 - Calculated Field

前言 Tableau Desktop 让我们不用写到一行程序就能进行资料探索,但不代表我们不能撰写程...

【第二十天 - Graph 介绍】

Q1. Graph 是什麽 Graph 定义:一个 graph 由 数个点( vertex )与数个...

Day28-机器学习(2) KNN

KNN简单说明 为一种监督学习的方法,其原理就好像物以类聚一样,相同的东西会聚在一起 我们可以设定一...

RISC-V: R-type 位元运算指令

今天一样是简单的 AND、OR、XOR指令实作, 多出来的时间就来还摸索期留下来的债, 让整个专案变...

测试魔术

Blazor WebAssembly 新手入门会碰上的问题也讲得差不多了,最後的最後我们来讲讲如何在...