关于c#基础的一些需要知道的题

1. 面向对象的特征有哪些方面?

答:

面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。

①封装:封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。

②抽象:抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类。

③继承:子类继承父类成员,实现代码复用,提高了软件的可重用性和可扩展性。

④多态:不同子类对同一个消息作出不同的反映,提高软件灵活性。

2.c#中标识(zhì)符定义?命名规则?

①标识符是一种字符串,用来命名如变量、方法、参数和其他程序结构。

②字母、下划线、可以用在任何位置,数字不能放在首位,@字符只能放在标识符的首位

注意:标识符不能和关键字重复

3.对象和类的区别是什么?

答:

“类”(Class)具有相同属性和方法的一组对象的集合 。

类是抽象的概念,仅仅是模板

对象是一个你能够看得到、摸得着的具体实体

4.什么是类的方法?

答:

类是由一组具有相同属性和共同行为的实体抽象而来,对象执行的操作通过编写类的方法来实现。

可见,类的方法是一个功能模块,作用是“做一件事”。

5. 什么是局部变量,什么是成员变量?

答:

局部变量是指一个方法中定义的变量;成员变量是指在类范围里定义的变量,也就是属性。

6. 静态成员和实例成员的区别?

答:

使用static修饰的成员称为静态成员,使用实例对象调用的成员称为实例成员


7. 什么是装箱和拆箱?

答:

装箱就是把值类型转成引用类型:装箱就是把值类型(包括int与结构这样的内置类型)转换为object类型,

拆箱就是把引用类型转换为值类型,装箱与拆箱实现了两种类型的互换;

8. 类成员有几种可访问形式?简述可访问形式修饰符的访问权限。

答:

可访问形式有 private、 protected、 public、 internal;

   public(公共的): 完全公开,访问不受限制。
   protected(保护的): 访问仅限于包含类或从包含类派生的类型。该类内部和继承类中可以访问。
   internal(内部的): 访问仅限于当前程序集。在同一命名空间内可以访问。
   protected internal(内部保护的): 访问仅限于从包含类派生的当前程序集或类型。

   private(私有的) :访问仅限于包含类型。在类的内部才可以访问。

9. 继承的特点有哪些?

答:

C# 继承通过 : 关键字来实现,实现继承的类被称为子类,被继承的类被称为父类.

有的也称为基类、超类。父类和子类的关系是is-a的关系,即子类is-a父类。

10. 如何在C#中实现继承?

答: 

在类名后加上一个冒号,再加上基类的名称。

11.const和readonly有什么区别?

答:

const可以用于类的成员常量和局部常量,必须在声明时赋值,之后不可以对常量进行赋值。

而readonly只能用于类的成员变量不能用于局部变量,在声明时可以不赋值,除了在构造函数中可以再次赋值外,其它的地方和const一样也不能赋值。

12.接口和抽象类具有什么区别?

答:

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。

含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。

abstract class类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法。

如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。

接口中的方法定义默认为public abstract类型

下面比较一下两者的语法区别:

1. 抽象类可以有构造方法,接口中不能有构造方法。

2. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

3. 抽象类中抽象方法可以指定为public,接口中抽象方法不能指定任何修饰符,默认就是public

4. 一个类可以实现多个接口,但只能继承一个抽象类。

13.什么是抽象类?

答:

抽象类不能创建实例,它只能作为父类被继承。

抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。

从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。

14.接口和抽象类两者在应用上的区别:

答:

接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。

而抽象类在代码实现方面发挥作用,可以实现代码的重用

15.如何区别重载方法? 

答:

不同的参数类型,不同的参数个数,不同的参数顺序。

16.堆和栈的区别?

答:

栈:由编译器自动分配、释放。值类型通常在栈上。

堆:一般由程序员分配释放。引用类型分配在堆上。

17.请简述值类型和引用类型的区别?

答:

值类型都是存在栈中;

引用类型存放在堆中,并会把地址存放在栈中。

如果为在另一个方法中调用值类型,并不会改变原方法中值类型的值;

如果在另一个方法中调用引用类型的值,则会将引用类型的值改变。

值类型:byte,int,short,long,char,float,double,bool,枚举:enum,结构体:struct

引用类型:类,接口,委托,object,string



 




数字不能放在首位数字不能放在首位


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值