类定义最简单的形式如下:
1.class ClassName:
类的定义就像函数定义迹搜( def 语句),要先执行才能生效。(你当然可以把它放进 if 语句的某一分支,或者一个函数的内部。)
习惯上,类定义语句的内容通常是函数定义,不过其它语句也可以,有时会很有用,后面我们再回过头来讨论。类中的函数定义通常包括了一个特殊形式的参数列表,用于方法调用约定——同样我们在后面讨论这些。
2.进入类定义部分后,会创建出一个新的命名空间,作为局部作用域。因此,所有的赋值成为这个新命名空间的局部变量。特别是函数定义在此绑定了新的命名。
类定义完成时(正常退出),就创建了一个 类对象。基本上它是对类定义创建的命名空间进行了一个包装;我们在下一节进一步学习类对象的知识。原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 ClassName )。
3.类 Class: 用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
实例变量:定义在方法中的变量,只作用于当前实例的蠢氏类。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。
4.方法:类中定义的函数。在类内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
构造函数:即__init()__,特殊的方法,在对象创建的时候被自动调用。
析构函数:即__del()__,特殊的方法,在对象被销毁时被自动调用。
实例化:创建一个类的实例,类的具体对象。就是将创建的类赋值给另一个变量。理解为赋值即可,a = class(),这个过程,就叫做实例化
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例图,Dog是一个Animal)。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其 进行改写,这个过程叫姿档历方法的覆盖(override),也称为方法的重写。
以用一个类别来区分和定义一个事物,或者说是对象。首先我们要先明白什么是类:简而言之,类是对象,事物的描述和抽象,是具有相同属性和行为的对象集合。
对象:该类事物的实例。
因为要制造一辆汽车,必须根据图纸来制造,汽车图纸就是描述一辆汽车的最好的体现。
在JAVA中我们能通过NEW来创建一个“类”。
在JAVA中用这种面向对象的思维方式来考虑问题有3点好处:
1,面向对象就是一种常见的思想。符合人们的思考习惯。从而更便于人们理解。
2,面向对象的出现,将复杂的问题简单化。提高了效率,因为人是一种抽象能力很强的生物。
3,面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。
例子:
那么在java语言中对现实生活中的事物进行描述。是通过类的形式来体现的。比如我们来描述一辆汽车:
1,属性:
轮胎数。numbers
颜色。 color
……
2,行为:
运行。
run
……
class Car
{
int num
String color
void run()
{
int num = 10
System.out.println(num+"..."+color)
}
}
在上面汽车的例子中我们也可以把汽车类理解为汽车的图纸,实例就是实实在在的汽车。
一个由C/C++编译的程序占用的内存分为以下几个部分:
①栈区(stack)- 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其 *** 作方式类似于数据结构中的栈。程序结束时由编译器自动释放。
②堆区(heap) - 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
③全局区(静态区)(static)-编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未坦侍初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由系统释放
④文字常量区 -常量字符串就是放让迟吵在这里的。 程序结束后由系统释放。
⑤程序代码区-存放函数体的二进制代码。
分配内存,是指在内存中找个地方给这个变量,在逻辑空间上同一类型的变量是在一起的。
但是,我们现在的系统都是分页分段管理的,所以会出现了逻辑地址和物理地址两个概念。
逻辑地址,对于每个程序旦冲都是一样的,变量在一起、常量又在另外的地方,还有代码段、数据段等。物理地址,就是实实在在的内存(也可能是硬盘)了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)