c#复习体会

开学第一天,才发现好多东西都模糊不清了!幸好是复习,通过求两点之间距离的练习复习了面向对象和面向过程,再次带我们回顾了面向对象和面向过程的本质:面向过程的程

序就是数据的储存形式与算法的结合;面向对象则要对命题进行分析,分析元素,从而写出相应的字段和方法,(例如一个点,字段就会有横纵坐标;求距离就会有对应方法);

static void Main(string[] args)
{
//面向对象
Console.WriteLine("请输入一个点的横坐标");
int x = int.Parse(Console.ReadLine());
Console.WriteLine("请输入一个点的纵坐标");
int y = int.Parse(Console.ReadLine());
//实例化构造函数的两个点
Class1 p1 = new Class1();
Class1 p2 = new Class1(x, y);//传参给类中定义构造函数传值

double Distance = p1.Distance(p2);
Console.WriteLine(Distance);
Console.ReadKey();
////面向过程

//int x1 = -1; int y1 = -1;
//Console.WriteLine("请输入一个点的横坐标");
//int x2=int.Parse(Console.ReadLine());
//Console.WriteLine("请输入一个点的纵坐标");
//int y2=int.Parse(Console.ReadLine());
//int xdiff=x2-x1;
//int ydiff=y2-y1;
//double distance = Math.Sqrt(xdiff * xdiff + ydiff * ydiff);
//Console.WriteLine(distance);
//Console.ReadKey();
}

//类

class Class1
{
private int x, y;
public Class1()//重写系统构造函数,改变默认值
{
x = -1;
y = -1;
}
public Class1(int h,int z)//输入的点
{
x = h;
y = z;

}
public double Distance(Class1 p)
{
int xdiff = x - p.x;
int ydiff = y - p.y;
return Math.Sqrt(xdiff*xdiff + ydiff*ydiff);
}

还复习了构造方法:首先构造方法名要与类名相同;构造方法没有返回值,所以构造方法没有return;系统本身会有个默认的构造方法,如果自己重新定义了构造方法或是重写了

构造方法都将覆盖系统默认的构造方法;

重载:重载的本质在于不同的方法中有不同的参数;

静态类方法:不用实例化可以直接用;构造函数是用来实例化对象的,因为静态方法不涉及到对象所以构造函数前不能加static;

class person
{
public int shu;
int age;
string name;
public void sleep()

{
Console.WriteLine("I'm sleeping.....");
}
private static int num;
public static int geshu()
{
return num;
}
public person(string name)
{
name = "sten";
num++;
}

class Program
{
static void Main(string[] args)
{
while(true)
{
Console.WriteLine("请输入姓名");
string name=Console.ReadLine();
person a = new person(name);
Console.WriteLine(person.geshu());
a.sleep();
};

Console.ReadKey();
}

匿名类:例如var myanonymouseobject=new{字段};(声明)

调用:console.writeline("{0},{1}",myanonymouseobject.字段名)

第一篇,多提宝贵意见,谢谢!

你可能感兴趣的:(c#复习体会)