面向对象....(概况)
Chapter 1
1_1 对象
客观世界中的事物都是对象,包括有形的物理对象,可感知的逻辑实体,以及 概念化的抽象实体。它有自己的属性,能够执行特定的操作。 类 具有相同属性和操作的一组对象的集合;它描述的不是单个对象,而是“一类” 对象的共同特征。其重要性在于它是面向对象技术中最重要的结构,它支持信息隐藏和封装,进而支持对抽象数据类型(ADT)的实现。
1_4 UML与面向对象
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语 言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
Chapter 2
2_1 程序的功能一般通过方法代码来实现。每个方法都是从其第一行代码开始执行,直至 最后一行代码结束,期间可以通过代码来调用其他的方法,从而完成各式各样的操作。C#程序的起点是由Main方法定义的,程序总是从Main方法的第一行代码开始执行,在Main方法结束时停止运行。
2_2 略(注:不同版本的Visual Studio的菜单项有所区别)
2_3 略(注:不同版本的Visual Studio引用的程序集有所区别)
2_4 C#源代码会被编译为一种通用的中间语言(IL)代码,该语言类似于低级语言,但 其代码与具体的硬件平台无关;之后CLR再针对特定的平台将IL程序翻译为机器指令,加载所需要的资源并管理执行。
2_5 //动态链接库程序
using System;
namespace p2_5
{
class Adder
{
public static int Add(int a, int b)
{
return a+b;
}
}
}
//控制台应用程序
using System;
using p2_5;
namespace P2_6
{
class Program
{
static void Main()
{
Console.WriteLine("请输入两个数:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", a, b, Adder.Add(a+b));
}
}
}
Chapter 3
3_1 略
3_2
第一:值类型的变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一 块区域;只有通过变量才能修改它所包含的数据。而引用类型的变量只存储对目标数据的引用,每创建一个变量,就增加一个指向目标数据的指针;有可能出现多个引用类型的变量指向同一份数据的情况,这时修改一个变量就会影响到其它所有的变量。
第二:作为方法参数时,值类型变量传递的是数值,引用类型变量传递的是地址,因 此如果方法的执行代码修改了变量,对值类型的变量不会有影响,但会改变引用类型的变量。
第三:装箱是将一个值类型转换为一个对象类型(object),而拆箱则是将一个对象类 型显式转换为一个值类型。
3_3 略
3_4 对整数为真,对实数不一定,因为实数受到计算机精度的影响。
3-5 四次执行的结果分别是:3,6,-6,-3
3-6 当两个操作数均为布尔类型时,与运算“&”和逻辑与运算“&&”的求值效果相同, 或运算“|”和逻辑或运算“||”的求值效果相同。但异或运算“^”不存在对应的条件逻辑运算。
3-7 不是。if-else可进行任意分支,而“?:”操作符要求第二和第三个操作数的类型必须一 致。
3-8
class Program
{
static void Main(string[] args)
{
Console.WriteLine("按任意键退出,其它键继续…");
while(Console.ReadKey().KeyChar!='Q')
{
Console.WriteLine("请输入本金:");
double x = double.Parse(Console.ReadLine());
Console.WriteLine("请输入利率:");
double y = double.Parse(Console.ReadLine());
Console.WriteLine("请输入存款年数:");
double z = double.Parse(Console.ReadLine());
Console.WriteLine("本息合计为:");
for (int i=0; i<z; i++)
{
x= x + x*y;
}
Console.WriteLine(x);
Console.WriteLin("按任意键退出,其它键继续…");
Console.ReadLine();
}
}
}
3-9
(1) class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int i = 1, x = 1;
while (i <= n)
{
x = x * i;
i++;
}
Console.WriteLine(x);
Console.ReadLine();
}
}
(2)
class Program
{
static void Main()
{
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int i = 1, x = 1;
do
{
x = x * i;
i++;
}
while (i <= n);
Console.WriteLine(x);
Console.ReadLine();
}
}
(3)
class Program
{
static void Main()
{
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int x = 1;
for (int i = 1; i <= n; i++)
{
x = x * i;
}
Console.WriteLine(x);
Console.ReadLine();
}
}
3-10 略
3-11
class Program
{
static void Main()
{
Console.WriteLine("请输入一个字符串:");
Console.WriteLine(Simp(Console.ReadLine()));
}
public static string Simp(string s)
{ StringBuilder sb1 = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
while (i < s.Length - 1 && s[i] == s[i + 1])
i++;
sb1.Append(s[i]);
}
return sb1.ToString();
}
}