注
静态属类不属对象,调用只用类点名。
实例必须对象创建,可以访问所有成员。
静态不能调实例,除非传入实例参。
工具方法用静态,操作状态必实例。
using System; public class Circle { private static double pi = 3.14159; // 静态:所有圆共享 private double radius; // 实例:每个圆有自己的半径 // 静态方法:不需要具体圆对象就能计算 public static double GetPi() { return pi; } // 静态方法:纯工具计算 public static double CalculateArea(double r) { return pi * r * r; } // 构造函数 public Circle(double r) { radius = r; } // 实例方法:依赖具体的radius public double GetArea() { return pi * radius * radius; // 可以访问静态字段pi } public double GetCircumference() { return 2 * pi * radius; } } class Program { static void Main() { // 调用静态方法 Console.WriteLine($"PI = {Circle.GetPi()}"); double areaGeneric = Circle.CalculateArea(5.0); // 创建实例 Circle c1 = new Circle(3.0); Circle c2 = new Circle(5.0); // 调用实例方法 Console.WriteLine($"c1面积 = {c1.GetArea()}"); // 28.27 Console.WriteLine($"c2面积 = {c2.GetArea()}"); // 78.54 // 错误:不能从静态方法中调用实例方法(除非通过对象) // StaticMethodDemo(); } static void StaticMethodDemo() { // ❌ 错误:不能在静态方法中直接调用实例方法 // GetArea(); // ✅ 正确:先创建对象再调用 Circle c = new Circle(2.0); c.GetArea(); } }
本文作者:Leemoon
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!