程序设计-ASP.NET基础知识(一)

基础知识

程序设计-ASP.NET基础知识(一)

什么是面向对象

面向对象 OO = 面向对象的分析 OOA + 面向对象的设计 OOD + 面向对象的编程 OOP ;

通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象 ( 单元 ) ,它们可以自己完成自己的功能,而不是像 C 那样分成一个个函数;

现在纯正的 OO 语言主要是 Java 和 C# , C++ 也支持 OO , C 是面向过程的。

阐述面向接口、面向对象、面向方面编程的区别

面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法

面向接口本身就是面向对象的 ,无所谓区别,只不过面向接口的好处是耦合性低

面向方面 Aspect-Oriented Programming (AOP) 就是大名鼎鼎的 AOP 。其实有点象 struts 里的拦截。

举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data Class ,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。

为了完成上述并发访问同一资源的功能,需要引入锁 Lock 的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁 Locked ,用完后就立即解锁 unLocked ,再供其它访问类访问。

面向对象的思想主要包括什么?

继承:子类拥有父类的所有数据和操作。

封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。

多态:一个程序中同名的不同方法共存的情况。有两种形式的多态– 重载与重写。

抽象类是否可以继承实体类 ?

抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。

当类 T 只声明了私有实例构造函数时,则在 T 的程序文本外部,是否可以从 T 派生出新的类,是否可以直接创建 T 的任何实例。

不可以,不可以

C# 中有没有静态构造函数,如果有是做什么用的?

有 . 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志 文件时,将使用这种构造函数向日志文件中写入项。

什么是 .net?

.net 是一种平台和框架, .net 不是单纯的语言也不是单纯的工具, 它是从底层平台开始构建起来的一个整体框架

请以图示方式解释 .net framework?

VB

 

C++

 

C#

 

Jscript

 

 

 

Common Language Specification

 

XML Web

services

 

Web Forms

 

Windows Forms

 

 

 

Data and XML

 

Base Class Library

 

CLR

 

CLI

 

 

 

 

 

Visual Studio .NET

 

程序集与命名空间有什么不同?

命名空间是用于避免命名冲突, 专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。

程序集是重用代码的一种方式 验证控件

不同 : 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中

 

命名空间程序集
逻辑编译 时机制物理编译 时机制
不是运行时实体是运行时实体
为源代码元素的名称提供逻辑结构为可执行文件的运行时提供物理结构

 

怎样理解静态变量?静态成员和非静态成员的区别?

静态变量属于类,而不属于对象;并对所有对象所享;静态成员在加类的时候就被加载

静态成员和非静态成员的区别?

静态变量使用 static 修饰符进行声明,静态成员在加类的时候就被加载(在类被实例化时创建,哪个对),通过类进行访问

不带有static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问

一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值

 

静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等

简述静态类和静态成员

静态类中的成员都必须是静态的。静态类无构造方法,并且是密封类无法被继承。

静态成员访问时只能通过类名来访问,不能通过对象访问(和 JAVA 有区别), this 也无法访问静态成员。

俊霖

发表评论

您必须