---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
1 为什么要使用类?
在编程中我们使用对象来模拟现实中的对象,用属性模拟特征,方法模拟能力。每次使用都会创建对象,定义属性,方法。这样比较麻烦,为了代码重用性,我们定义类,类是创建对象的模板,里面定义了对象应该具备的属性和方法。使我们不用每次创建对象时都重复的定义,直接使用即可。
综上,类是对象的抽象模板,定义了对象将具备的属性能力,在创建对象及使用对象时达到代码重用的功能。
2 类的定义
知识点: [访问修饰符] class 类名
{
私有字段;
公共属性;(自动属性:系统默认帮助生成)
方法;
构造方法;
}
例子:
:class student
{
int age;
string name;
public string Name
{
get
{
return name;
}
set
{
name=value;
}
}
public void SayHello()
{
console.writeline("你好,我的名字是{0},我{1}岁了",name,age);
}
pubic Student(name,age)
{
this.name=name;
this.age=age;
}
}
3 类的使用:
类是封装性的,使用时用属性访问字段,方法访问能力,是可控的,收到保护的,防止非法访问。
使用类是指使用以类为模板创建出的对象的功能,即通过类来创建对象,并访问对象的属性和方法。
知识点:(1)创建对象:
类名 实例名=new 类名();( 1,在栈中声明变量,2 new:在堆中分配空间,创建对象,3调用系统的无参构造函数为字段初始化
,4 将对象在堆中的地址赋值给栈中变量)
因为能在构造方法中为字段赋值,故我们可以写自己的有参构造方法,为字段赋初值。
类名 实例名=new 类名(参数);
(2)使用对象
修改对象属性,访问对象属性,访问对象方法,
实例名.属性名 实例名.方法(参数)
(3)销毁对象,
垃圾处理器(GC)销毁对象并释放内存
例子:
Student s=new Student();
或Student s=new Student("张三",19);
s.SayHello();
内存分析:
在C#编程中内存基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。
①静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。 ②栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 ③堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存。 但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。 |
程序运行开始,类被加载进内存先在静态存储区声明类静态变量,常量,方法
在堆中创建对象然后分配空间,创建对象,初始化字段,建方法表
使用完对象后,垃圾处理器销毁对象,线程栈和托管堆中成员均是属于调用对象的,均被处理掉。
程序关闭,方法区释放。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------