这周了解一部分面向对象的知识。
面向对象的本质:
以类的方式组织代码,以对象的方式组织数据。
面向对象的思维:
OOA(Object-Oriented Analysis 面向对象分析方法 )
OOD(Object-Oriented Design 面向对象设计)
类与对象:
对象是以类为模板的,一个类可以抽象出很多对象。
对象:是具体的事物。(new 后面是对象)。
类:是对对象的抽象。(class 后面是类)。类是由属性和方法构成。
内存机制:
实例变量系统可自动初始化,局部变量必须由开发者自己初始化。
栈:自动分配连续的空间,后进先出。放置局部变量。
堆:自动分配不连续的空间。放置创建(new)出的对象。
方法区:位于堆中,是堆的一部分。放置类的信息(代码),static变量,常量池(字符串常量等)。
常量池有共享的功能。
构造方法:
方法名必须与类名一致。
如果我们没有定义构造方法,系统则会自动定义一个无参的构造函数。如果已定义则编译器不会自动定义。
作用:构造类的对象,经常也用来初始化对象的属性。
方法重载:
指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。
重载:同一个类,同一个方法名。参数列表不同(类型,个数,顺序不同)
构造方法也可以重载。
static关键字:
在类中,用static声明的成员变量为静态变量,或者叫类属性,类变量。
在类方法中,只能调用类变量和类方法。
static变量与成员变量:
static变量(从属于类),在方法区放置。
成员变量(从属于对象),在堆中放置。
类只能调用类的,对象可以调用自己的也可以调用类的。