C#语法与面向对象基础文档格式.docx
《C#语法与面向对象基础文档格式.docx》由会员分享,可在线阅读,更多相关《C#语法与面向对象基础文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
inta=45;
intb=5;
{0}\\{1}={2}"
a,b,a/b);
若想将转义符释放作用,只需要在\前加上@符号。
如:
strings=@"
123\4"
;
3.类型转换:
类型转换一般选用convert表达式。
(1)Convert.ToInt32():
转换成正整数
(2)Convert.ToString():
转换成字符串
请输入第一个数字"
stringa=Console.ReadLine();
intnum1=Convert.ToInt32(a);
请输入第二个数字"
stringb=Console.ReadLine();
intnum2=Convert.ToInt32(b);
num1,num2,num1+num2);
第二节面向对象-类
1.面向对象的三个特征:
(1)封装
(2)继承
(3)多态
2.类的简介:
(1)类的定义:
类是抽象的,对象是具体的。
类可以从其上一级或者同级的类中继承本身不具有的特性。
类中包含字段、方法和属性。
classPerson
publicstringName;
/*Name即是Person类的字段*/
publicintAge;
publicvoidSay()/*Say()即是Person类的方法*/
{0}您好"
Name);
/*使用了占位符,打印*/
(2)类的使用:
类的使用以new字段开始,在使用时要注意类中的字段或者方法是公共部分还是私有部分。
classProgram
staticvoidMain(string[]args)
Personzhenghao=newPerson();
/*新建一个zhenghao的类*/
zhenghao.Name="
郑昊"
/*Person类中的Name字段是公共的,因此可以使用*/
zhenghao.Age=26;
Console.WriteLine(zhenghao.Name);
Console.WriteLine(zhenghao.Age);
zhenghao.Say();
(3)类中成员的访问级别:
A、public:
任何地方都可以访问。
B、private:
只有所在的类自己能访问,字段一般都定义成私有private。
C、internal:
内部的文件可以使用。
(4)类中的属性:
类中的字段一般设立为私有(private),在需要对私有的字段进行修改时,则需要通过类中的属性来实现。
属性中通过set和get来进行操作,其中set是赋值,get为取值。
这样的好处主要是控制非法值。
classProgram
privateintage;
privatestringname;
publicstringName
set
if(value=="
zhenghao"
非法值!
"
return;
this.name=value;
get
returnthis.name;
判断
主调函数staticvoidMain(string[]args)在新建一个Person类后使用其中的Name属性,Name属性中则采用所在类的私有字段name。
name字段在主调函数中无法使用,但是主调函数可以使用Name属性。
3.构造函数:
构造函数用于创建对象,并对对象进行初始化。
类似于类,是类中的一种没有返回值的函数,函数名必须与类名一致。
如果在类中不写构造函数,则.framework默认为其已经有一个不需要参数的构造函数。
这就是我们在定义完类后,在新建对象是使用new类名()。
RobotR1=newRobot();
/*在新建Robot类时系统已经默认Robot中含有构造函数,该函数不需要任何参数*/
classRobot/*在Robot类中并没有构造函数*/
{
……………………………
RobotR2=newRobot("
RobotR3=newRobot("
26);
{0}{1}"
R1.Name,R1.Age);
R2.Name,R2.Age);
R3.Name,R3.Age);
classRobot
publicstringName{get;
set;
publicintAge{set;
get;
publicRobot()
this.Name="
未命名"
this.Age=0;
publicRobot(stringname)
this.Name=name;
publicRobot(stringname,intage)
this.Age=age;
4.值引用和对象引用:
值类型只是简单的赋值,赋值的时候是类似于传递“拷贝”;
对象的引用则类似于C语言中的指针,他们传递的是引用。
下面的R1和R2两个对象其实指的都是age=10。
staticvoidMain(string[]args)
--------------------------------------数值引用-----------------------------------------
inta=10;
intb=a;
a++;
/*a自增1后,b不会改变*/
a={0},b={1}"
a,b);
-------------------------------------对象引用------------------------------------------
RobotR1=newRobot(10);
RobotR2=R1;
R1.Age++;
/*R1.Age自增1后,R2.Age也会相应的自增1*/
Console.WriteLine(R2.Age);
5.继承:
子类可以继承其他类作为其父类,子类后面使用冒号连接父类。
子类能集成父类所有的字段和属性以及方法。
.NET平台中所有的类都继承于object类
ChineseC1=newChinese();
C1.Name="
C1.Age=26;
C1.Height=20.4M;
C1.Destination="
河南省新蔡县"
privatedecimalheight;
publicintAge{get;
publicdecimalHeight{get;
classChinese:
Person
privatestringdestination;
publicstringDestination{get;
6.异常:
使用try…catch语句来测试异常。
若想让系统显示自己定义的异常提示,只需要使用throw语句即可。
try
PersonP1=newPerson();
intC=P1.Sum(1,8);
Console.WriteLine(C);
catch(ExceptionErro)
数据错误"
+Erro.Message);
publicintSum(inta,intb)
intsum;
sum=a+b;
if(sum>
10)
{
thrownewException("
数字太小"
returnsum;
第三节变量和命名空间
1.常量:
常量以const开头,表示不会发生改变的量。
2.变量:
(1)全局变量:
使用关键字static,该变量无需新建对象,直接使用。
也可以在不同的命名空间中使用。
在static成员中只能使用static成员(包括字段、属性和方法),不能使用非static成员。
类也可以使用static修饰,该种类为静态类,他们不能被实例化(new方法),直接使用即可。
(2)局部变量:
public和private修饰。
3.命名空间:
在.NET中若要使用不在同一命名空间下的类则需要引用该命名空间,使用using关键词。
namespace第节__命名空间.Person_class
{
publicvoidSay()
欢迎您"
+Name);
}
---------------------------------------------------------------------------------------
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
using第八节__命名空间.Person_class;
namespace第八节__命名空间
P1.Name="
P1.Say();
4.索引器:
在.NET中可以使用索引来进行相关的操作。
int[]num={1,2,3,4};
inti=num[2];
Console.WriteLine(i);
P1[1]="
Console.WriteLine(P1[1]+P1[2]);
privatestringFirstName="
杨静"
privatestringSecondName="
刘亦菲"
publicstringthis[intindex]
set
if(index==1)
FirstName=value;
elseif(index==2)
SecondName=value;
else
传入的数据有误"
returnFirstName;
returnSecondName;
第四节类中属性和函数的比较
类中的属性和函数有所类似,由于属性中也有set和get,故也需要指定属性的类型。
函数指定的类型即为函数参数类型。
例如publicintAge{get;
}中属性Age后面直接为{},括号中则是取值和赋值的get和set,在使用时直接P1.Age=26。
例如publicvoidSay(stringNAME)中函数Say()后面也为{},括号中即是对参数NAME的操作过程,在使用时需要给Say()提供正确类型的参数。
P1.Say("
)。
P1.Age=26;
P1.SayHello();
P1.Say("
publicvoidSayHello()
您好,{0}"
publicvoidSay(stringNAME)
NAME);
第五节windowform开发实例
1.加法测试器:
简介:
简单的求取两个数的和,当其中一个数的格式错误时,程序自动跳出。
privatevoidbutton1_Click(objectsender,EventArgse)
strings1=textBox1.Text;
strings2=textBox2.Text;
inti1,i2,sum;
if(!
int.TryParse(s1,outi1))
MessageBox.Show("
第一个数格式有错误"
textBox1.Text="
textBox2.Text="
int.TryParse(s2,outi2))
第二个数格式有错误"
i1=Convert.ToInt32(s1);
i2=Convert.ToInt32(s2);
sum=i1+i2;
this.label4.Text=sum.ToString();
2.累加测试器:
简介:
分别输入两个大小不同的数字,然后从小数开始累加到大数。
inti1,i2,i,sum=0;
if(!
int.TryParse(s1,outi1))
第一个数格式有误"
int.TryParse(s2,outi2))
第二个数格式有误"
if(i1>
i2)
第一个数不能比第二个数大"
for(i=i1;
i<
=i2;
i++)
sum=sum+i;
label4.Text=sum.ToString();
3.累加测试器:
输入邮箱地址后,自动分离用户名和主机域名。
stringEmail=textBox1.Text;
string[]str=Email.Split('
@'
if(str.Length!
=2)
邮箱地址有误"
label3.Text=str[0];
label4.Text=str[1];
4.登陆器模拟:
新增错误次数提示,当错误次数达到3次以上时,程序自动退出。
publicpartialclassForm1:
Form
intErrotimes=0;
publicForm1()
InitializeComponent();
privatevoidbutton2_Click(objectsender,EventArgse)
txt_password.Text="
txt_username.Text="
privatevoidbutton1_Click(objectsender,EventArgse)
stringusername=txt_username.Text.Trim();
stringpassword=txt_password.Text.Trim();
if(username=="
&
&
password=="
zhenghao1987"
登录成功"
Errotimes++;
if(Errotimes>
=4)
错误次数已达上限"
this.Close();
用户名或密码错误"
基于C#的窗体播放器开发