日期:2014-05-17 浏览次数:21033 次
C#学习9:类与对象
类与构造函数的使用,建一个圆形类,半径默认为0,count统计有几个圆
//Circle.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cambridge { class Circle { public int radius; public static int count=0; //只有类名可以使用count public Circle() //构造函数 { radius = 0; count++; } public Circle(int t) //重载构造函数 { radius = t; count++; } public double Area() { return Math.PI * radius * radius; } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cambridge { class Program { static void Main(string[] args) { Circle c1,c2; c1 = new Circle(); double area1 = c1.Area(); Console.WriteLine(area1); c2 = new Circle(10); double area2 = c2.Area(); Console.WriteLine(area2); Console.WriteLine("圆的数量为"+Circle.count); } } }
//Point.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cambridge { class Point { private int x; private int y; public Point() { x=0; y=0; } public Point(int a,int b) { x=a; y=b; } public double Dis(Point p) //参数为对象 { int xdif = x - p.x; int ydif = y - p.y; return Math.Sqrt(xdif * xdif + ydif * ydif); } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cambridge { class Program { static void Main(string[] args) { int x1 = int.Parse(Console.ReadLine()); int y1 = int.Parse(Console.ReadLine()); Point p1 = new Point(); Point p2 = new Point(x1, y1); double ans = p2.Dis(p1); Console.WriteLine("该点与原点的距离为" + ans); } } }
部分类
部分类定义,简言之,就是使用部分类定义,使类的定义横跨多个文件。
例如:可以把字段、属性和构造函数放在一个文件中,而把方法放在另一个文件中。
为此,只需在每个包含部分类定义的文件中对类使用partial关键字即可。
在一个项目中新建两个类,Circle1.cs,Circle2.cs,Program.cs可以调用者这两个类
//Circle1.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace cam { partial class Circle { public Circle() { this.radius=0; } public Circle(int t) { this.radius=t; } } } //Circle2.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace cam { partial class Circle { public int radius; public double Area() { return Math.PI * this.radius * this.radius; } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace cam { class Program { static void Main(string[] args) { Circle c1 = new Circle(); double area1 = c1.Area(); Console.WriteLine(area1); Circle c2 = new Circle(10); double area2 = c2.Area(); Console.WriteLine(area2); } } }
匿名类
匿名类可以临时储存数据,生命周期只在这个方法内,方法结束了,这个类型的生命周期也没有了
usi