构造函数 匿名类 一个类分开写
今天是开学第一天,好多过去学的知识都忘了 T_T。
今天复习了构造函数。
构造函数必须要记住的几点: 1. 构造函数名要与类名完全相同;2.构造函数木有返回值(可以根据他的结构看出来 权限+类名(){ } 木有返回值类型ing。。);3.构造函数不能被直接调用,必须使用new 初始化初始化一个对象;4.默认的构造函数是没有参数的,但当你自己创建了公有的构造函数后,默认的构造函数就没有作用了。
今天的作业:
问题是让求两个点之间的距离,其中一个点是固定点(-1,-1),另一个要自己输入。
program类里的
/* 方法一 面向对象的写法
/*方法一 面向对象的写法
Console.WriteLine("请输入横坐标:");
int h = int.Parse(Console.ReadLine());
Console.WriteLine("请输入纵坐标:");
int z = int.Parse(Console.ReadLine());
jisuan a = new jisuan();
jisuan b = new jisuan(h, z);
double d=a.suanshu(b);
Console.WriteLine(d);
Console.ReadKey();
*/
/*方法三 面向过程的写法
int x1 = -1;
int y1 = -1;
Console.WriteLine("请输入横坐标:");
int x2 = int.Parse(Console.ReadLine());
Console.WriteLine("请输入纵坐标:");
int y2 = int.Parse(Console.ReadLine());
double juli =Math.Sqrt( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
Console.WriteLine(juli);
Console.ReadKey(); */
/* 方法三
jisuan a = new jisuan();
double b=a.suanshu();
Console.WriteLine(b);
Console.ReadKey();*/
jisuan类里的
//方法一
// int x1;
// int y1;
// public jisuan() {
// x1 = -1;
// y1 = -1;
// }
///*重载的另一个构造方法*/ public jisuan(int h,int z) {
// x1 = h;
// y1 = z;
// }
// public double suanshu(jisuan b) {
// return Math.Sqrt((b.x1 - x1) * (b.x1 - x1) + (b.y1 - y1) * (b.y1 - y1));
//}
/*方法三
int x1 = -1;
int y1 = -1;
int x2 = int.Parse(Console.ReadLine());
int y2 = int.Parse(Console.ReadLine());
public double suanshu() {
return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1)*(y2 - y1));
}
*/
这个方法三应该应该算是面向对象吧。。。因为它也用到了创建的 jisuan 类。。。
匿名类 用 Var 定义 格式为:var 匿名类的名 = new {内容};
作用:用它来写一些只用一次货两次的类可以避免为了这些不常用的而重新建一个类;
用法:
var niming1 = new { Name="Michael",Age=4}; //定义了一个含有两个参数(Name,Age)的匿名类;
Console.WriteLine("name:{0},age:{1}", niming1.Name, niming1.Age); //显示匿名类里被赋值的参数;
var niming2 = new { Name="Tom",Age=45}; //定义了另一个含有两个参数的匿名类;
niming1= niming2; //因为参数个数和类型相同所以是同一类,可以相互赋值如这个 是将niming2的值赋给niming1;
Console.WriteLine("name:{0},age:{1}", niming1.Name, niming1.Age);
同一个类分开写 格式: Partial class 类名
作用 :这个我也不知道有什么用。。。知道的卸载留言里。。多谢。。。
用法:
第一个类 Cricle.cs
partial class circle{
public Circle()
{
this.radius = 0;
}
public Circle(int initialRadius)
{
this.radius = initialRadius;
}
}
第二个类 Cricle2.cs
partial class Circle
{
private int radius;
public double Area()
{
return Math.PI * radius * radius;
}
}
pargram 类
{
Circle c = new Circle(); //Cricle中就包括了Cricle1和Cricle2中的定义的
double area1=c.Area();
Console.WriteLine(area1);
Circle c2 = new Circle(5);
double area2 = c2.Area();
Console.WriteLine(area2);
Console.ReadKey();
}
这个我也有点不太懂唉。。知道的大神解释下为啥哈。。
嗯。今天就写这么多吧。。真累。。。