这个教程太糟糕了。 它只告诉你一个标题。 至少把self和this这两个关键词解释清楚吧。 不然就算写出来也只能写。 这样的班级有什么意义呢? 最好写一些方法。
我学过好几种语言,概念基本都是一样的,但是对于初学者来说,这不是有害的吗?
方法就像工具一样,拿凿子把石头雕刻成佛像。
班级就像一台机器。 将原材料放入机器中。 你可以通过机器一开始设置的各种函数来观察里面的运行情况,或者调用它来导出输出。
当定义一个人时,这个人有胳膊和腿,还可以定义一个子类别,称为男人/女人。 其实没有问题,只是没有说明该类的根本用途。
那么我们就要介绍两个东西,静态和非静态。 如果只是想把一些工具放在一个类中,变成工具集合,则不需要实例化,直接调用即可,即:
namespace Tools { public class tools { public static void hello(string a_) //强制要求标注静态和非静态 { System.Console.WriteLine(a_); } } } namespace ConsoleApp2 { class A { static void Main() { Tools.tools.hello("hello"); // 这个时候整个类就是静态,不需要实例化 } } }
如果由于某种需求而导致需求变得非静态,即动态需求,那么就需要实例化。 这个需求稍后会解释:
namespace Tools { public class tools { public void init() { WriteLine("实例化"); } public static void hello(string a_) { System.Console.WriteLine(a_); } } } namespace ConsoleApp2 { class A { static void Main() { Tools.tools a = new Tools.tools(); // 如果不实例化,绝对无法调用 a.init(); Tools.tools.hello("hello"); // 但是不影响直接调用静态方法 } } }
什么时候需要使用动力学? 您需要在多个工具之间传输数据然后对其进行处理,而不是仅使用一种工具进行处理。 由于静态方法之间无法传递数据,此时需要使用动态方法:
namespace Tools { public class tools { int a, b; // 储存在类的内部 public void init(int a, int b) // 用于接收数值 { this.a = a; this.b = b; WriteLine("初始化构造"); } public int rectangle() // 用于计算数值和传递 { return this.a * this.b; } } } namespace ConsoleApp2 { class A { static void Main() { Tools.tools a = new Tools.tools(); a.init(1, 2); } } }
事实上,它可以比作一台生产不同口味糖果的机器。 制作好样机的设计图纸后,我需要使用不同的原材料来制作出我需要的口味的糖果。 这时候,我需要制造一台专门用于生产的机器,例如草莓。 调味糖,这是一个实例化,但是每台机器必须是独立的,因为它们不能有不同的口味,所以每台机器都需要单独创建。
只要明白了这一点,再了解里面的构造函数等概念,就可以理解了。
进唐求法笔记
xyi***