首页 > 编程语言 >C#学习笔记-类、对象、类成员

C#学习笔记-类、对象、类成员

时间:2024-01-23 20:59:01浏览次数:24  
标签:Form C# 成员 笔记 对象 实例 new fm

类(class)

  在类与名称空间简单学习了类的概念。程序世界中的类是对现实世界的事物进行抽象的结果,类定义了事物的特点、行为,在一定程度上反映现实事物的样子。但类又舍弃了一些不必要的内容(在程序中没有涉及),是现实事物的模型。建模是一个由表及里的过程,向外提供了易于使用的接口,但是隐藏封装了内部的逻辑。

类与对象

  类实例化过后得到的内存中的实体称为对象或实例对象和实例没有区别。实例化指的是根据类来创建对象。在程序中,通常使用 new 操作符创建类对象,为类对象分配内存空间。

using System;
using System.Windows.Forms;

namespace ClassAndInstance {
    class Program
    {
        static void Main(string[] args)
        {
            //根据 Form 类创建类对象 fm
            //Form() 后的 () 表示实例在内存中创建后,使用相关的构造函数初始化类对象
            Form fm = new Form();
            fm.ShowDialog();
        }
    }
}

引用变量和类对象

  在下面的代码中,第5、6行的代码分别在内存中创建了两个 Form() 类对象,但是都没有相应的变量指向它们。就像气球一样,没有绳子牵着。内存垃圾收集器很快就会收回分配给它们的内存。如果要连续的操作同一个类对象,需要使用引用变量。如第8行代码所示,将 new 出来的Form() 对象赋值给引用变量 fm。引用变量 fm 只是指向相应的内存空间,提供了一个访问 Form 对象的途径。也可以使用其他的引用变量指向 fm 指向的内存空间,就像气球可以有很多绳子,可以通过任意一根绳子牵住气球,但是这些绳子牵的都是同一个气球。

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         (new Form()).Text = "Title";
 6         (new Form()).ShowDialog();
 7             
 8         Form fm = new Form();
 9         fm.Text = "Title";
10         fm.ShowDialog();
11     }
12 }

 类的三大成员

  属性,用来存储数据,通过各种属性组合起来表示类或对象当前的状态。

  方法,由C语言中的函数进化而来,用来表示类或对象能做什么,属于逻辑成员,通过方法来对数据进行各种操作。

  事件,类或对象通知其他类或对象的机制,为C#持有(Java通过其他机制实现)。

  某些特殊的类或对象在成员方面侧重点不同:

    • 模型类或对象类重在属性,Entity Framwork
    • 工具类或对象重在方法,如Math、Console
    • 通知类或对象重在事件,如各种Timer

静态成员与实例成员

  静态成员语义上表示成员隶属于某个,不能隶属于某个对象。所有非静态的成员称为实例成员,表示成员属于某个对象,而不是某个类。例如人属于人类,人的身高是实例成员,而不是静态成员。人类的总数是静态成员,而不是实例成员。

static void Main(string[] args)
{
    //WriteLine()方法属于Console类的静态成员,因为此前并
    //没有实例化Console类。
    Console.WriteLine("Hello");
            
    //form对象的Text,ShowDialog()属于实例方法和实例属性
    Form form = new Form();
    form.Text = "Hello";
    form.ShowDialog();
}

 

 

标签:Form,C#,成员,笔记,对象,实例,new,fm
From: https://www.cnblogs.com/owmt/p/17982737

相关文章

  • ORACLE translate函数
     1.语法  2.用途   (1)translate的返回值,是将expr(源字符串)参数中,所有对应在from_string(源字符串中想要被替换的字符)参数中所出现的字符,均按from_string参数中在to_string(想要源字符串中被替换的对应目标字符)参数中对应的字符替换掉后的值。expre源字符串中有......
  • channel和select
    channelChannel是基于有锁队列实现数据在不同协程之间传输的通道,本质上是由buf循环队列、sendq待发送者队列、recvq待接收者队列三个FIFO队列组成的用于协程之间传输数据的协程安全的通道,sendq和recvq可以认为不限大小。使用声明一个通道类型的变量是需要使用make()函数初始化......
  • gRPC
    protoprotobuf是Google开源的一款支持跨平台、语言中立的结构化数据描述和高性能序列化协议,此协议完全基于二进制,所以性能要远远高于JSON/XML。由于出色的传输性能所以常见于微服务之间的通讯,其中最为著名的是Google开源的gRPC框架。proto文件格式syntax="proto3";......
  • 19_Java流程控制01-Scanner进阶使用
    Scanner进阶使用整数:hasNextInt()——nextInt()小数:hasNextFloat()——nextFloat()if:判断语句while:循环语句练习:循环输入,求和与平均数,回车确认,非数字结束指令并输出结果。Scannerscanner=newScanner(System.in);//开始doublesum=0;intm=0;System.out.println("请输......
  • MFC 基于对话框的程序如何屏蔽掉 ENTER 键和 ESC 键退出的情况
    重写PreTranslateMessage(MSG*pMsg)函数。protected: HICONm_hIcon; //生成的消息映射函数 virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon();afx_msgBOOLPreTra......
  • Binary tree traversal-- level-order traversal using queue【1月23日学习笔记】
    点击查看代码//Binarytreetraversal--level-ordertraversalusingqueue#include<iostream>#include<queue>//STLusingnamespacestd;structnode{intdata;node*left,*right;};node*getnewnode(intx){node*temp=newnode;t......
  • 【Azure Compute Gallery】使用 Python 代码从 Azure Compute Gallery 复制 Image-Ver
    问题描述AzureComputeGallery可以帮助围绕Azure资源(例如映像和应用程序)生成结构和组织,并且支持全局复制。如果想通过Python代码实现Image-Version从一个AzureComputeGallery复制到另一个中,如何实现呢? 问题解答示例Python代码:importosfrommsrestazure.azure_cl......
  • 无涯教程-CSS - 伪类
    CSS伪类是用来添加一些选择器的特殊效果。伪类的简单语法如下-selector:pseudo-class{property:value}CSS类也可以与伪类一起使用-selector.class:pseudo-class{property:value}最常用的伪类如下-Sr.No.Value&Remark1:linka:link 选择所有未访问链接2:visi......
  • static 和 self 区别
    1,在PHP中,我们可以使用newstatic()结合私有构造函数和一个静态方法来实现单例模式。以下是一个简单的例子classSingleton{//私有化构造函数,防止外部直接实例化privatefunction__construct(){}//静态变量用于存储单一实例privatestatic$instan......
  • 《人月神话》前十章阅读笔记
     首先,《人月神话》这本书从编程的乐趣入手认为这种快乐是一种创建事物的纯粹快乐,这种快乐来自于开发对他人有用的东西。,快乐来自于整个过程体现出的一股强大的魅力,这种快乐是持续学习的快乐,这种快乐还来自于在易于驾驭的介质上工作但同时没有一份职业仅仅包含乐趣,这份职业的苦恼......