1. 面向过程
面向过程也是一种编程思想,这种思想,强调凡事要亲力亲为,每一步都是自己来做
2.面向对象
Java是一门面向对象的语言
面向对象OOP也是一种编程思想,这种思想,强调的是结果,我不在意是怎么完成的,我在意的是有对象可以帮我干活
比如:我们想吃饭,不在意是哪个厨师做的,也不在意是哪个骑手送的,只要有厨师做,有骑手派送就好了
行为习惯 思维方式 比如衣服,没有办法给出一个明确的定义,但是,只要我们看到任何一件衣服,我们就自动把它归类到衣服这个分类中,因为你在过去的生活经验中已经见过太多的衣服,积累经验
3.类
类是指类型Type,用Java中的关键字class来描述
类是一类事物进行抽象总结出来的特征与行为
所以,我们可以把类看做是一类事物的模板/设计图纸,一类事物具有相同属性和行为的集合
注意:类在现实世界中不是真实存在,它只是一种对象的数据类型
4.对象
对象就是根据类创建出来的一个个独立且具体的实例
对象具有各种特征,并且每个对象的每个特征都可以有自己特定的值
对象具有各种行为,每个对象可以执行的操作
一个类可以创建出多个对象,对象直接互不影响,我们通过对象唯一的地址值区分对象
4.1匿名对象
没有名字的对象,是对象的简化表示形式。
使用场景:
当被调用的对象只调用一次时(多次会创建多个对象浪费内存)
Demo d = new Demo();
d.sleep();
d.game();
//这个d就是对象的名字。
也可以写成:
new Demo().show();//创建了一个对象调方法
new Demo().game();//又创建了一个对象调方法
5.类与对象的关系
类是对象的抽象,对象是类的实体
Java是一门面向对象的语言,我们的各种操作,都离不开对象,所以,想干活,先创建对象
6. 对象创建过程分析
比如:Phone p = new Phone();这句话在内存中发生了什么?
1.可以在堆内存中开辟一块空间用来存放对象
2.这个对象需要进行初始化
3.初始化完毕以后就会为这个对象生成一个唯一的地址值
4.在栈内存中开辟一块空间用来存放引用类型Phone类型的变量p
5.将堆内存中对象的地址值交给引用类型的变量p来保存
6.后续就可以根据p中保存的地址,找到堆中的对象,并对对象做操作
7.比如p.brand=“HUAWEI”;就是根据p中保存的地址,找到对象,并对对象的属性赋值
6.1对象在内存中的存储
Java把内存分成5大区域,我们重点关注栈和堆。
1.一般来讲局部变量存在栈中,方法执行完毕内存就被释放
2.对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
3.每个堆内存的元素都有地址值
4.对象中的属性都是成员变量,是有默认值的
TIPS: 栈与队列指的是一种数据的结构。
栈:先进后出(FILO – First In Last Out)
队列:先进先出(FIFO – First In First Out)
7. 封装
1.封装可以提高程序的安全性
2.封装可以让资源按照我们预先规定的方式来操作
7.1 封装属性
1.用private修饰属性
2.提供这个属性对应的getXxx()获取值与setXxx()设置值
3.外界就可以调用公共的get与set方法操作属性了
注意:访问控制符private修饰的资源只能在本类中使用
7.2 封装方法
1.用private修饰方法
2.我们可以在本类的公共方法里调用这个私有的方法
3.外界就可以调用这个公共方法来执行私有方法的功能
8.访问控制符
用来控制一个类,或者类中的成员的访问范围。
TIPS:default是表示不写修饰符,默认,如果写default单词来修饰会报错