-
1.面向对象是基于面向过程的编程思想
a:面向过程:强调的是每一个功能的步骤
例如:吃饭:先买菜 洗菜 起锅烧油 盛饭 吃
b:面向对象:强调的是对象,然后由对象调用功能
例如:吃饭:饭店调用点菜下单功能 然后吃 -
2.面向对象思想的特点:
a:是一种更符合我们思想习惯的思想
b:可以将复杂的事情简单化
c:将我们从执行者变成了指挥者 -
3.类的组成部分
a:成员变量
b:成员方法
c:静态变量
d:静态方法
e:构造方法
f:代码块 -
4.类和对象的区别
a:是一组相关的属性和行为的集合。是一个抽象的概念。
b:是该类事物的具体表现形式。具体存在的个体。 -
5.成员变量和局部变量的区别
a:在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上
b:在内存中的位置不同
成员变量:在堆中
局部变量:在栈中
c:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
d:初始化值不同
成员变量:有默认值
局部变量:没有默认值,必须定义,赋值,然后才能使用 -
6.this关键字
a:代表当前类的引用对象
记住:哪个对象调用方法,该方法内部的this就代表那个对象
b:this的应用场景:
解决了局部变量隐藏成员变量的问题 -
7.构造方法
a:作用:用于对对象的数据进行初始化
b:格式:
方法名和类名相同
没有返回值类型,连void都不能有
没有返回值
c:构造方法的注意事项
如果我们没写构造方法,系统将提供一个默认的无参构造方法;
如果我们给出了构造方法,系统将不再提供默认构造方法,如果这个时候,我们要使用无参构造方法,就必须自己给出;
推荐:永远手动自己给出无参构造方法 -
8.static关键字
(1)静态的意思。可以修饰成员变量和成员方法。
(2)静态的特点:
a:随着类的加载而加载
b:优先与对象存在
c:被类的所有对象共享
这其实也是我们判断该不该使用静态的依据。
举例:饮水机和水杯的问题思考
d:可以通过类名调用
既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
(3)静态的内存图
静态的内容在方法区的静态区
(4)静态的注意事项;
a:在静态方法中没有this对象
b:静态只能访问静态(代码测试过),静态加载的时候成员还没加载所以不能调用静态
(5)静态变量和成员变量的区别
a:所属不同
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
b:内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
c:生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
d:调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用 -
内存中的执行过程
三个对象的内存图

static修饰的静态在内存中执行过程
