C#基础+面向对象笔记

发布于:2023-01-18 ⋅ 阅读:(156) ⋅ 点赞:(0)

文章目录

  • 1.调试和错误处理
  • 2. 断点
  • 3.什么是面向对象编程?
  • 4.构造函数
  • 5. 接口
  • 6.This、base关键字
  • 7.字段、属性、方法
  • 8.方法的重载
  • 9.对象的创建和使用

1.调试和错误处理 
错误 (Bug):
变量名写错,导致编译器无法编译(语法错误),逻辑在某些方面有瑕疵,也会产生错误。这类错误称为语义错误(逻辑错误)
在程序出错之后。使用VS提供给我们的调试功能,找到错误的原因修改代码。(调试)
C语言中的错误处理技术,对可能发生错误的地方采取预防措施,并编写弹性代码来处理可能会发生的致命错误。(错误处理)
正常模式下的调试:指的是不会影响程序的正常运行。
1,.在VS中我们使用Console.Write(或者writeLine)方法向控制台输出变量的值,通过这个我们可以查看变量的值是否符合我们的预期来调试错误。

2.断点
  断点是什么?
代码是源代码中自动进入中断模式的一个标记,当遇到断点的时候,程序会自动进入中断模式。
如何插入断点?
1,右击代码行,选择breakpoint (断点)-〉Insert breakpoint(插入断点)
2,光标定位到代码行,选择菜单上的Debug(调试)-〉Toggle breakpoint(切断断点)
3,光标定位到代码行,按下F9键,在此按下F9是取消断点
4,在需要添加断点的行首位置,直接单击,再次单击取消断点

单步执行代码:
在中断模式下我们可以单步执行代码,单步执行带有有两种 逐过程和逐语句,他们两个都是一条语句一跳语句的执行,区别在于逐过程遇到函数,不会进入函数内部,而把函数当成一条语句去执行。
错误处理(异常处理)

 

3.什么是面向对象编程?
为什么使用面向对象编程?
为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且
每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会。
面向对象编程也叫做OOP编程
简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。
类创建的变量叫做对象,
类是什么东西?
类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。
类定义了类的每个对象(称为实例)可以包含什么数据和功能
类的定义

宇段的声明
访问修饰符 类型 字段名称;
方法的声明
访问修饰符 返回值类型 方法名称(参数)
定义一个类来表示一个顾客
 


4.构造函数
我们构造对象的时候,对象的初始化过程是自动完成的,但是在初始化对象的过程中有的时候需要做一些额外的工作,例如需要初始化对象存储的数据,构造函数就是用于初始化数据的函数
声明基本的函数构造函数的语法就是声明一个和所在类同名的方法,但是该方法没有返回类型。
public class Myclass{
public   Myclass (){
这个构造函数的函数体

}
程序内存区域:堆 栈 静态存储区
程序所有的数据,也就是所有的变量,都是存储在内存中的。
栈空间比较小,但是读取速度快。
栈空间比较大,但是读取速度慢。
栈的特征
数据只能从栈的顶端插入和删除
把数据放入栈顶称为入栈 (push)
从栈顶刪除数据称为出栈 (pop)
内存中的栈,是由系统管理 (.Net框架)
在数据结构中学习写一个自己的栈结构,保存数据

实例try{}、catch{}、Finnally{}

try——可能出现错误的代码

catch——出现异常后的执行的代码

Finnally——无论如何都会执行的代码

5.接口

接口:用于定义一组抽象操作的集合,通常为一些抽象的方法和属性——更加抽象的东西

子接口也可以继承父接口的所有属性——也可以使用new修饰符屏蔽父类元素

一个类只能继承一个类,但是可以"实现"多个接口

注意:

  • 接口的方法都是默认为public,类在实现接口的方法的时候也需要用public
  • 不会实现任何东西,没有字段,只有属性和方法
  • 没有构造函数、析构函数

6.This、base关键字

this——当前的对象

base——指向基类

base的作在派生类中实现对基类成员的访问——base.age

调用基类中已被其他方法重写的方法——base.method

创建派生类实例时调用基类构造方法——(xx):base(xx)

注意点可以引用父类的字段、属性等等,但是不能访问父类修饰符为private的字段等。

this的作用

限定被相似名称隐藏的成员

将对象作为参数传到其他的方法

声明索引器

注意点:this 不能引用静态变量

在static方法中,不能使用this关键字

7.字段、属性、方法

字段:表示事物的性质,例如agename等等

属性:指定执行和声明对相关成员的读/

方法:类所具有的方法,对内部变量的操作,小括号是方法的标志

构造方法和析构方法

构造方法:是一种特殊的方法、与类同名的方法,专门用于创建对象——初始化(

可以有一个或者多个构造方法

方法名与类名相同

没有返回值

可以带着参数

具有修饰符,如果是private,则用于单例设计模式

不能直接调用,必须通过new运算符

析构方法:释放对象所用到的方法——看后门/推土机没有返回值也没有修饰符

不带参数

与类同名

需要~作为开头

不能显式调用

最多就一个析构函数

8.方法的重载

可以对普通方法、构造方法的重载

两同两不同:1.相同的类名

                   2.相同的方法名

1.不同的参数类型

2.不同的参数个数

注意点:

int类型可以去找double类型进行重载,因为int转换成double不会丢失数据——向上查找(不丢失信息)

也被称为静态多态,编译器根据签名的不同而进行不同的操作

方法重载的返回类型可以不一样

9.对象的创建和使用

先声明 再对其实例化 使用

注意点

对象是引用类型,所以不同的对象(在同一个类声明出来的)也会存在不同的地址上(完全独立)

只能通过对象变量进行访问

修饰符

访问控制符

分为public、protected internal、protected、internal、private

基于逻辑——protected表示子类可以访问

基于物理——internal表示同一个程序集可以访问

public 无限制访问

protected internal 同一个程序集或子类可以访问

protected 同类及其子类可以访问

internal 同一个程序集可以访问,但是非子类的也还是不可以的

private 仅在同类里可以访问

   


本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到