我是靠谱客的博主 眼睛大自行车,最近开发中收集的这篇文章主要介绍2021-06-23-刘铁猛C#语言入门详解-学习笔记P23、24、25类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

P23、24、25类

一、P23、24、25内容总结

  1. 什么是类P23
  2. 构造器与析构器P23
  3. 类声明的全貌P24
  4. 最简单的类声明P24
  5. 类的继承P25
  6. 成员的继承与访问P25
  7. 面向对象的实现风格P25

二、什么是类–老师用例子将解释了一下

  1. 数据结构
  2. 数据类型(引用数据类型)
  3. 代表现实世界中的“种类”

三、构造器与析构器

  1. 实例
    1)构造器
    2)析构器
    3)如何不用new操作符创建实例:使用反射、dynamic编程,老师举例说明,我没有记录了
	//Student stu = new Student();
()调用默认构造器
class Program
{
static void Main(string[] args)
{
Student s1 = new Student(1, "Timothy");
s1.Report();
}
class Student
{
//Student 类的默认构造器
//很像一个方法,但是没有返回值类型
public Student(int id, string name)
{
this.ID = id;
this.Name = name;
}
//析构器:一般用于释放内存
//当程序完成时系统会自动调用析构器
//在Student类中声明一个析构器,模拟释放内存的操作
~Student()
{
Console.WriteLine("Bye!");
}
public int ID { get; set; }
public string Name { get; set; }
public void Report()
{
Console.WriteLine($"I'm {ID} student,my name is {Name}.");
}
}
}
  1. 静态:静态成员对类有意义
    1)构造器
	class Program
{
static void Main(string[] args)
{
Student s1 = new Student(1, "Timothy");
Student s2 = new Student(2, "Jacky");
Console.WriteLine(Student.Amount);
}
class Student
{
public static int Amount { get; set; }
//静态构造器:只能构造静态成员
static Student()
{
Amount = 100;
}
public Student(int id, string name)
{
this.ID = id;
this.Name = name;
Amount++;
}
~Student()
{
Amount--;
}
public int ID { get; set; }
public string Name { get; set; }
public void Report()
{
Console.WriteLine($"I'm {ID} student,my name is{Name}.");
}
}
}

四、类声明的全貌

  1. 一些术语:声明类;创建类实例/对象
  2. C#类声明的位置
    1)在名称空间内声明类–最常用
    2)在类体内声明类–成为了成员类
    例:在Program类内声明了一个Student类,Student类就成为了Program类的成员类
  3. 声明与定义
    1)C++中声明与定义是可合并也可分开的,定义:实现的功能
    2)C#中声明与定义无法分开,声明即定义

五、最简单的类声明

  1. class(关键字) identifier(类名,所有单词首字母大写) class-body(类体) 这三个部分在声明中不可省
  2. 类的访问控制:
    类的访问级别修饰符:public、internal
    1)public:不仅类所处项目中可以访问此类,在类所处项目外的项目也可以访问此类
    2)internal:只在类所处项目中可以访问此类,即internal这个类的访问级别为项目,默认为internal
//右键solution点击Add一个类库
//删除自动生成的class1
//右击MyLib项目Add一个Newfolder(新建文件夹)Mynamespace
//MynamespaceAdd一个Calculator类
//说明public修饰符例子
//Calculator.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyLib.Mynamespace
{
public class Calculator
{
public double Add(double a,double b)
{
return a + b;
}
}
}
//Program.cs
using System;
using MyLib.Mynamespace;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
Calculator calculator = new Calculator();
double res=calculator.Add(1.1, 2.2);
Console.WriteLine(res);
}
}
}

六、类的继承

  1. 继承的概念:子类在完整接收父类成员的基础上进行的横向或纵向的扩展
    横向扩展:对类成员个数扩充
    纵向扩展:对类成员的重写
  2. 一些术语:基类-派生类;父类-子类
  3. 实例:了解类继承的语法
	//Vehicle 是基类
class Vehicle
{
}
//Car 是派生类
//Car类是从Vehicle类派生而来的
class Car :Vehicle
{
}
  1. ”是一个“ 概念, is a操作符
    1)子类的一个实例,从语义上来说也是父类的一个实例;
    2)派生类的一个实例,从语义上说也是基类的一个实例;
    3)可以用is a 操作符对上述进行判断 结果为true
  2. 注意:
    1)我们可以用一个父类类型的变量引用一个子类类型的实例
    Vehicle vehicle = new Car();
    Object o1 = new Vehicle();
    2)一个类最多只能有一个基类
    3)子类的访问级别不能超过父类,只能低于或持平
    4)sealed类不能被继承

七、成员的继承与访问

  1. 实例:详细说明类成员的访问级别–40分开始
  2. 成员访问原则
    1)原则1:类成员的访问级别是基于类成员所在类的访问级别
    若类的访问级别是internal,就算成员的访问级别为public在别的assemby内也不能调用
    2) 原则2:private 将访问级别限制在类的类体里,默认成员的访问级别为private
    3)原则3:protected 把类成员的访问级别限制在继承类上,可跨程序集,通常使用在方法上
    即在父类当中有一个类成员使用protected修饰之后,所有的子类是可以访问这个成员,但是不在继承链上其他的类型是不能够访问这个级别的。

八、面向对象的实现风格

  1. C++ C# 基于类的 class-based
  2. Java prototype-based

最后

以上就是眼睛大自行车为你收集整理的2021-06-23-刘铁猛C#语言入门详解-学习笔记P23、24、25类的全部内容,希望文章能够帮你解决2021-06-23-刘铁猛C#语言入门详解-学习笔记P23、24、25类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部