c#初级学习_面向对象编程
作者:互联网
堆 栈 静态存储区域
类(类文件是以cs结尾):
写出类后需要创造类的对象(program),即类的实体化
使用关键字new。{类名 对象名 = new 类名()}
this:指当前类的对象
类并不占内存,对象占用内存。
【public】 class 类名
{ 字段;属性;方法;构造函数;}
方法:public static 方法名()静态方法 {}
静态与非静态
非静态
(当你的类是)
1)在非静态类中,可以有实例成员,可以有静态成员
2)调用实例成员:对象名.实例成员
调用静态成员:类名.静态成员名
静态
(当你的类是一个工具类,静态类资源共享,无对象)
(程序结束才会后释放资源)
1)静态类里只能出现静态成员
2)静态类不允许实例化
构造函数(必须是public)
创造对象后进行构造函数,帮助初始化对象
特殊方法原因
1:构造函数必须与类名相同:
2:构造函数没有返回值
public 类名(参数,参数......)
{ this.参数名=赋值参数;}
调用时:类名 对象名 = new 类名('参数赋值'.....)
new关键字{1:在堆中开辟内存 2:创建对象 3:在对象中调用构造函数 4:隐藏与父类相同的成员}
this关键字(1:代表当前类的对象 2:再类当中显示的调用本类的构造函数{函数名:this} )
析构函数 程序结束时候执行,帮助释放资源
格式: ~类名(){}
面向对象继承
命名空间(创造alt+shirt+f10)
引用:1:添加引用 2:添加命名空间
值类型与引用类型(存储地方不一致)
值类型存储在栈里,引用类型存储在堆里
字符串具有不可变性,没有指向的字符串会被jc(垃圾回收站)删除
继承:在类的重复成员单独封装在一个类中作为基类
语法:在类的后面加:基类名建立类关系
子类能够继承父类的属性方法,但是并没有继承父类的私有字段
继承的单根性:一个派生类不能拥有多个基类
继承的传递性:派生类可以用作其他派生类的基类
查看类图:右键——视图——查看类图
子类不会继承父类的有参构造函数,但是会继承无参的构造函数
在子类中显示父类的构造函数时需要关键字:
base();
里式转换
1)子类可以赋值给父类,如果有一个地方需要父类作为参数,可以给一个子类代替
父类对象 = new 子类();
2)如果父类中装的是子类对象,可以使这个父类强制转换为子类
as:如果转换成功true,如果失败返回一个false
is:如果能够转换则返回一个对应对象,转换失败会返回null
集合:很多数据的集合,长度可随意改变,类型也可随意。
ArrayList 集合名 =new ArrayList();
{集合名.Add(数据);}
list.clear();清空所有元素
list.Reamove(true);删除单个元素
list.RemoveAt(0);根据下标删除元
list.Sort();升序排列
list.Reverse();反转
list.Insert(位置,元素);在指定位置插入一个元素
bool b=list.Contains();判断是否包含某个指定元素
添加的集合成员数据类型被转换为object类型
protected 修饰符 具有能够对子类进行访问的权限
打印对象时,默认情况下打印的是对象所在的命名空间
标签:c#,子类,静态,初级,对象,面向对象编程,父类,类名,构造函数 来源: https://www.cnblogs.com/alicia0/p/16368401.html