首页 > 编程语言 >(二十六)C#编程基础复习——Class类

(二十六)C#编程基础复习——Class类

时间:2023-11-27 10:22:21浏览次数:33  
标签:复习 C# 成员 public 对象 Object2 Student new Class

在C#中,类是引用类型的,其中包括状态(成员属性)和操作(成员方法和其他函数成员),我们可以动态创建类的实例(instance),这个实例也称为对象(object),我们可以通过类和对象来设计程序。

一、类的定义

类的定义需要使用class关键字,语法说明:

  1. 访问修饰符用来指定类或类中成员的访问规则,可以忽略不写,如果没有指定,则使用默认的访问权限修饰符,类的默认访问权限修饰符是internal,类中成员的默认访问权限修饰符是private;
  2. 类中的数据类型,用来指定成员属性的数据类型;

二、对象

类和对象是不同的概念,类决定了对象的类型,但不是对象本身。另外,类是在开发阶段创建的,而对象则是程序运行期间创建的。我们可以将对象看作是基于类创建的实体,所以对象也可以成为类的实例。

想要创建一个类的实例需要使用new关键字,假如我们创建了一个名为Student的类,若要创建这个类的对象,语法格式如下:

Student Object=new Student();

上面的实例中,前面的Student是我们要创建的对象类型,而Object则是一个变量,它引用了Student类实例(Student类的对象)的内存地址。new关键字在这里的作用主要是在程序运行时为类的实例分配内存。

除此之外,我们还可以像创建普通变量那样只创建一个Student类型的变量,而不使用new关键字实例化Student这个类,例如:

Student Object2;

不过不建议使用这样的写法,因为此时的Object2只是一个Student类型的普通变量,它并没有被赋值,所以不能使用Object2来访问对象中的属性和方法。如果非要使用Object2的话,则可以将一个已经创建的对象赋值给它,例如:

Student Object3=new Student();
Student Object2=Object3;

上面示例中的Object2和Object3指向同一个Student对象,因此使用Object3对Student对象的任何操作也会影响Object2。

对象创建完成后如果要通过对象来访问类中的成员,则需要使用.运算符连接对象的名称和成员的名称,如下:

Student Object=new Student();
Object.method();//访问成员函数
Object.variable;//访问成员属性

三、类和对象的使用

下面通过示例演示一下类和对象的具体使用方法。创建一个公共的学生类,类中包括一些成员属性和成员方法,然后实例化这个类,并通过类对象调用类中的成员属性和成员方法。

 

namespace _015
{
    internal class Program
    {
        public class Student
        {
            public int id;
            public string name;
            public string sex;
            public int age;
            public void insert(int i,string n,string s,int a)
            {
                id = i;
                name = n;
                sex = s;
                age = a;
            }
            public void display()
            {
                Console.WriteLine("编号:{0} 姓名:{1} 性别:{2} 年龄:{3}",id,name,sex,age);
            }
        }
        static void Main(string[] args)
        {
            Student stu1 = new Student();
            Student stu2 = new Student();
            stu1.insert(101, "张三", "男", 18);
            stu1.display();
            stu2.insert(102, "李四", "女", 16);
            stu2.display();
            Console.ReadKey();
        }
    }
}

运行结果:

 

标签:复习,C#,成员,public,对象,Object2,Student,new,Class
From: https://www.cnblogs.com/daihaoliulingyi601/p/17858653.html

相关文章

  • springBoot项目启动卡在Root WebApplicationContext: initialization completed... (非
    通过源码启动排查发现,初始化连接池时创建了200次,通过配置文件中将initialSize值改为10,启动时间从1分钟变为了3秒。 ......
  • 实验4 现代C++标准库与类模板
    实验任务5TextCoder.hpp源码1#include<iostream>2#include<string>34usingstd::string;56classTextCoder{7private:8stringtext;9voidencoder();10voiddecoder();11public:12TextCod......
  • SecureCRT解决中文显示乱码
    解决步骤:一、点击Option-->GlobalOption-->Defaultsession-->EditDefaultsession-->参考下图设置。、 二、点击上图Font,参考下图设置(选其他英文字体不一定能正常显示中文) 三、如果还不行,重新打开一个新窗口。翻译搜索复制......
  • lock锁
    从jdk5.0开始,Java提供了更为强大的的线程同步机制----通过显示定义同步锁对象来实现同步。同步锁使用lock对象充当Java.util.concurrent.locks.lock接口是控制多线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对lock对象加锁,线程开始访问共享资源......
  • c语言
    /**@Author:[email protected]*@Date:2023-11-1013:51:34*@LastEditors:[email protected]*@LastEditTime:2023-11-2709:19:51*@FilePath:\c-learn\zhizhen.c*@Description:这是默认设置,请设置`customMade`,打开k......
  • foreach语句
    foreach语句是for语句的简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字。foreach语句中的元素变量不必进行初始化publicclassForDemo04{publicstaticvoidmain(String[]args){//在主方法中定义一维数组,并用fo......
  • CRM智能招标功能好用吗?
     如今CRM系统的生态系统越来越壮大,这些工具的集成极大地丰富了CRM系统的应用场景,例如CRM系统集成企业微信等社交媒体为获客提供便利;再比如CRM集成ChatGPT提高邮件内容质量,对于经常接触招投标项目的业务人员来说,在CRM系统融入相关功能可以显著提升工作效率,那么CRM系统集成智能招......
  • Object类
    Object类是比较特殊的类,它是所有类的父类是java类层中的最高层类,所有的类都直接或间接继承了Object类当创建一个类时,总是在继承,除非某个类已经指定要从其他类继承,否则它就是从Object类继承而来的。由于所有类都是Object类子类,所以在定义类时,还省略了Object关键字:classa{}等价于cl......
  • CRM集成招投标信息有必要吗?
    对于B2B企业来说获客难、获客成本高是共识。做大客户的企业通过招投标获取商机是一个重要获客途径,然而传统方式管理招投标信息问题很多,例如资料丢失、手工录入出错、信息分散、信息查找费时费力。为了解决这些难题小编推荐CRM系统,CRM系统需要融入招投标信息吗?CRM融入招投标信息的......
  • Sb7:关于.net使用WCF过程中遇到的坑
    最近写了一个类似QQ升级的功能。使用wcf编写了一个服务端。 做了四个接口服务,可以根据软件编号查询所有版本号,可以根据版本查询所有待升级文件,远程获取升级文件。在做服务的时候原计划GetFile方法中采用异步同时传输,将大文件切割成多个模块进行传输,在客户端接收完后重新组包再......