面向过程:面向的是完成这件事的过程,强调的是完成这事的动作。
如果我们面向过程的思想来解决这件事,当执行这件事的人不同的时候,我们需要
为每个人定做解决事情的方法。
洗衣服
1.把洗衣机门打开2.把衣服塞进去3.把洗衣机门关上
小孩 瘦小 矮
小孩踩着凳子打开洗衣机门,把衣服一件一件的放进去,踩着凳子立起脚尖把洗衣机门关上。
大人 高大壮实
大人自己把洗衣机门打开,抱起一堆衣服直接塞进去,把洗衣机门关上。
面向对象:找个对象做事
我们把洗衣机当做对象
1.洗衣机门被打开2.衣服被塞进洗衣机里3.洗衣机门被关上。
面向对象在意写出一个通用的代码,屏蔽差异。
关门
张三轻轻把门关上。李四一脚把门踹上。王五没把门关严。
门可以被关
我们在代码中描述一个对象,通过描述这个对象点属性和方法此对象必须是看得见
摸得着的
灯:属性和方法
属性
外形:长的
亮度:40w
颜色:白色
牌子:xx
方法:发光
我们把这些具有相同方法和属性度对象进行封装,抽象出类的概念。
累就是个模子,确定对象应该具有的属性方法。
对象是根据类创建出来的
类就是一个盖大楼的图纸,对象就是盖出来的大楼
2、类
语法
(public)class类名{
字段;
属性;
方法;
}
写好一个类之后,我们需要创建这个类的对象。
那么,我们管创建这个类的对象过程叫类的实例化使用关键字new
this:表示当前这个类的对象
类是不占内存的,对象是占内存的
3、属性
属性的作用就是保护字段、对字段对赋值和取值进行限定。
属性对本质就是两方法,一个叫get()一个叫set()。
既有get()也有set()称为可读可写属性
只有get()没有set()称为只读属性
只有set()没有get()称为只写属性
4、访问修饰符
public:公开对公共对,在哪都能访问
private:私有对,只有在当前类内部进行访问,出了这个类就访问不到
protected:受限制的只有本身和他的子类可以进行访问
5、当我们创建好一个类的对象后,需要给这个对象的每个属性去赋值。
我们管这个过程称为对象的初始化。
6、静态和非静态的区别
1.在非静态类中,既可以有实例成员,也可以有静态成员。
2.在调用实例成员时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:静态成员必须使用类名去调用,而实例成员使用对象名调用。
静态函数中,只能访问静态成员,不允许访问实例成员。
实例函数中,既可以使用静态成员,也可以使用实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
使用:
1、如果你想要你的类当做一个“工具类”去使用,这个时候可以考虑将类写成静态的。
2、静态类在整个项目中资源共享。
只有在程序全部结束之后,静态类才会释放资源。
堆 栈 静态存储区域
私房资源。gc garbage collection垃圾回收器
构造函数
作用:帮助我们初始化对象(给对象的每个属性依次赋值)
构造函数是一个特殊的方法:
1.构造函数没有返回值,连void也不能写。
2.构造函数的名称必须跟类名一样。
创建对象的时候会执行构造函数
构造函数是可以有重载的。
类当中会有一个默认的无参的构造函数,当你写一个新的构造函数之后,不管是有参的还是无参的,那个默认的无参数多构造函数都被干掉了。
8、new关键字
person zsperson=new person();
new帮助我们做了三件事
1.在内存中开辟一块空间
2.在开辟空间中创建对象
3.调用对象的构造函数进行初始化对象
9、this关键字
1.代表当前类多对象
2.在类当中显示的调用本类的构造函数this