前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

C#自学——面对对象(OOP)(c#面向对象的编程)

qiguaw 2024-09-18 23:17:56 资源文章 15 ℃ 0 评论

直接用上代码展示

// 定义一个类 -- 人,这个类就是一个对象
class Persions
{
  
  // 人有名字、年龄、身高、体重,这些是类的属性
	string name;
  int age;
  double height;
  double weight;
  
  // 人可以吃饭、走路、说话、睡觉,这些是类的方法
  public void Eats()
  {
    Console.WriteLine("吃饭");
  }
  
  public void Walk()
  {
  	Console.WriteLine("走路");
  }
  
  public void Speak()
  {
  	Console.WriteLine("说话");
  }
  
  public void Sleep()
  {
  	Console.WriteLine("睡觉");
  }
}

面向对象编程就是把一个类看作是一个对象,万物皆对象,比如书,动物,树,石头等

面向对象有三大特性,分别是封装、继承、多态

封装

把所有不需要展现出来的属性都隐藏起来,让外面的类无法直接调用属性,只能通过将属性封装到方法内,然后调用方法,可以在方法里面作出限制

class Dog
{
  string name;
  int age;
  double height;
  double weight;
  // readonly 只读属性
  readonly bool isLove;
  readonly string food;
  readonly string friend;

  // 只读属性的赋值
  public Dog(string food)
  {
    // 属性 和 传入的参数 名称一样的时候需要用this关键词指向成员变量(属性)
    this.food = food;
  }
  /*	和上面一样的效果
  	public Dog(string _food)
    {
    	food = _food;
    }
  */

  // 只写 get用于获取值,set用于设置值
  public string Name { get; } = "馒头";

	// 展开之后可以设置约束
  public int Age
  {
    get
    {
      return age;
    }
    set
    {
      if (value <= -1)
        age = 0;
      else
        age = value;
    }
  }

	// 可以不设置约束
  public double Height
  {
    get
    {
      return height;
    }
    set
    {
      height = value;
    }
  }

	// 只写只读
  public double Weight { get; set; }

	// 只写
	public string Food
  {
    get
    {
    	return food;
    }
  }
	/*
  可以这样写,不会报错,但是外面类调用无法获取到food的值
  public string Food{get;}
  */

	// readonly 属性的读写
  public bool IsLove { get; set; }

	// readonly 属性的写
  public string Friend { get; } = "Cat";

	/*
  	直接在类自定义输出
  */
	public void Print()
  {
    Console.WriteLine("食物: {0}", food);
  }
}

class Print
{
  static void Main()
  {
    // 实例化对象并赋值
    Dog dog = new Dog("狗粮")
    {
      	Age = -1,
        Height = 50,
        Weight = 20,
        IsLove = true
    };
    
    /*	和上面是一样的效果
    	Dog dog = new Dog("狗粮");
      dog.Age = -1;
      dog.Height = 50;
      dog.Weight = 20;
      dog.IsLove = true;
    */
    Console.WriteLine(
      "姓名: " + dog.Name +
      "\n年龄: " + dog.Age +
      "\n身高: " + dog.Height +
      "\n体重: " + dog.Weight +
      "\nFood: " + dog.Food +
      "\nIsLove: " + dog.IsLove +
      "\nFriend: " + dog.Friend
    );
    dog.Print();
  }
}

输出:

年龄: 0
身高: 50
体重: 20
Food: 狗粮
IsLove: True
Friend: Cat
食物: 狗粮

继承

继承主要是为了解决代码重用的问题

继承

多态

多态是通过继承或者接口来实现的,每个人都是独一无二的(这种独一无二就是多态),但是都存在走路,吃饭,睡觉等一系列相同的行为

接口

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表