C#基础——类、对象和属性

2023-12-15 20:36:37

C# 属于 面向对象 的编程,“万物皆对象”

面向对象编程的三大特性:封装、继承、多态。

通过类能过较好的体现该语言的特点

类:是具有相同属性和行为特征的集合

类的语法格式:
访问修饰符 class关键字 类名

两种创建类的方式
第一种方式就是在类的下面再创建一个类
第二种方式是在文件中添加一个类

第一种创建类的方法,在 internal class Program{} 类的下面创建

  // 创建一个汽车类
  public class Car {}

第二种创建类的方法

右击当前项目文件 —> 选择添加 —> 添加一个类名
选择 类 —> 输入类名 —> 添加

在这里插入图片描述
在这里插入图片描述

类中的成员

类中的成员包含: 1.字段、2.属性、3.方法 还应该为每个类成员设置指定的访问修饰符
类中的成员访问修饰符主要有4个:
public:成员可以被任何代码访问
private:只能在当前类种访问(默认的)
nternal:一个项目种的代码可以访问
protected:成员自己或者是派生类能够访问

// 定义类中的成员变量
  // 成员变量属于全局变量,当前类种都可以通用,全局变量本质上属于私有变量
  private int b;
  // 定义一个公有字段
  public int c;
  // 定义公有静态成员变量
  public static int d; //默认值是0
  public static string f; //默认值是null
  public static int[] Arr; //默认值是null
  // 如果是静态的数组,那么一定要初始化,因为不属于某个对象,而是属于当前类
  public static string[] stringArr = new string[3];
  // 如果在类中实现了函数,那么这个函数就叫做该类的方法
  public void PenpleMethod1() {
    // a属于局部变量,作用域是当前方法,超出这个范围就无法访问到了
    int a = 1;
    //方法内部可以访问外部的全局变量
    b = 20;
    Console.WriteLine(a);
    Console.WriteLine(b);
  }
  //除了上述的变量类型以外,也可以把类,当作数据类型
  //注意:如果属性是引用类型,那么一定要在使用的时候进行实例化(重新new一个新的对象)
  public Car car;
  public string myName;

  //方法的传参参数也可以定义为引用类型
  public bool getCar(Car aCar) {
    //aCar代表的是Car类型的对象
    if (aCar.carName == "保时捷") {
      return true;
    } else {
      return false;
    }
  }

类的调用

// 使用类名调用类当前中的static修饰的变量
People.f = "100";
People.stringArr[0] = "测试";
Console.WriteLine(People.stringArr[0]); //测试

// 如果没有static修饰的变量,则代表属于实例对象调用的变量,
// 需要先创建该类对于的实例对象
// 类名 对象名 = new 构造函数();
People p1 = new People();
// 注意:对象可以创建多个,一个对象代表一个当前类的实例(会占用一块内存)
// c在这里面就叫做p1这个对象的属性
p1.c = 666; //赋值
Console.WriteLine(p1.c); //666  取值
p1.PenpleMethod1(); //打点 . 调用对象的方法

使用类中的对象属性

//new 代表分配一块内存
People p2 = new People();
//使用类中的对象属性
p2.car = new Car();
p2.car.carName = "保时捷";
p2.car.carColor = "白色";
p2.myName = "郭贝贝同学";
Console.WriteLine("myName is:{0},正在驾驶一辆{1}的{2}全速前进",p2.myName, p2.car.carColor, p2.car.carName);

属性

属性(Properties)是一种用于封装类成员的特殊成员。属性可以通过使用get和set访问器来实现对私有字段的读取和写入操作,从而提供对类的数据的安全访问。

public class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }
}

public class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();
        person.Name = "John";
        person.Age = 25;

        Console.WriteLine("Name: " + person.Name);
        Console.WriteLine("Age: " + person.Age);
    }
}

在定义属性的时候,可以通过不同的属性描述关键字,定义属性的使用要求

//const 表示常量,本质上也是静态变量,不能跟static写在一起,定义之后不能修改
public const string tempStr1 = "abc";
//readonly 可以在定义的时候赋值,表示只读
public readonly string tempStr2 = "123";
//static 静态的,可以读写
public static string tempStr3;

文章来源:https://blog.csdn.net/qq_51810680/article/details/135022147
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。