塔 · 第 二 条 约 定
Posted qq77530202
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了塔 · 第 二 条 约 定相关的知识,希望对你有一定的参考价值。
访问修饰符
1、 一个 访问修饰符 定义了一个类成员的范围和可见性
2、Public访问修饰符 允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员可以被外部的类访问。
3、Private访问修饰符 允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏。只有同一个类中的函数可以访问它的私有成员。
即使是类的实例也不能访问它的私有成员。
namespace ConsoleApplication14 //讨论public与private的区别-----暴露与隐藏 { class Rectangle { //成员变量 public double length; //公有变量length private double width; //私有变量width
} class Test { static void Main(string[] args) { Rectangle r = new Rectangle(); //实例化一个对象r r.length = 4.5; //这个语句是正确的 因为length是公有变量 可以被其他类访问 r.width = 3.5; //这个语句是错误的 因为width是私有变量 不能被类Test中的Main方法访问
} } }
class Rectangle //讨论private的特点-----可以被同一个类中的函数访问 { //成员变量 private double length; //私有变量 private double width; //私有变量 public void Acceptdetails() //必须设为公共函数 如果是私有函数 则类Test不能访问 可以通过该方法实现对私有变量的赋值 { Console.WriteLine("请输入长度:"); length = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入宽度:"); width = Convert.ToDouble(Console.ReadLine()); } }//end class Rectangle class Test { static void Main(string[] args) { Rectangle r = new Rectangle(); r.Acceptdetails();//类Test访问Acceptdetails公有函数,Acceptdetails函数访问私有变量length 和 width,于是实现了在Main方法中间接访问一个类的私有变量 } }
4、Protected访问修饰符 允许子类访问它的基类的成员变量和成员函数,不允许其它无关类访问它的基类的成员变量和成员函数,这样有助于实现继承。
class Rectangle { protected double length; protected double width; //可以被子类(见继承)的函数访问 public double Area() { return length * width; } } class Test { static void Main(string[] args) { Rectangle r = new Rectangle(); //实例化一个对象r r.width = 3.5; //这个语句是错误的 因为width是保护变量 不能被非子类Test中的Main方法访问 r.Area(); //这个是正确的 } }
5、abstrac类
继承
1、继承在生活中的例子,牛继承食草动物,食草动物继承动物
2、继承符合的关系 : 父类更通用更抽象、子类更抽象更具体
3、继承背后的思想就是基于已存在的类来构造新的类,但从已存在类继承时,就重用了它的方法和成员,还可以添加新的方法和成员来定制新类来应对需求。
4、子类也叫派生类,父类也叫基类
5、C#继承有三种方式——公有继承(默认),私有继承,多重继承(通过接口实现)
<1>公有继承的写法
class Shape { public void setWidth(int w) { width = w; } public void setHeight(int h) { height = h; } protected int width; protected int height; } // 派生类 class Rectangle: Shape //继承了基类原有的方法和成员变量 { public int getArea() //先增添了getArea方法 { return (width * height); } } class RectangleTester { static void Main(string[] args) { Rectangle Rect = new Rectangle();//实例化子类 Rect.setWidth(5); //子类继承了基类的setWidth方法 Rect.setHeight(7); // 打印对象的面积 Console.WriteLine("总面积: {0}", Rect.getArea()); Console.ReadKey(); } }
<2>私有继承
以上是关于塔 · 第 二 条 约 定的主要内容,如果未能解决你的问题,请参考以下文章