-
一.面向过程编程
开发一个一个的方法,有数据要处理了,我们就调方法来处理。 -
二.面向对象编程
开发一个一个的对象来处理数据,把数据交给对象,再调用对象的法来完成对数据的处理。-
1.谁的事情谁来做——万物皆对象
计算机是用来处理数据的- img
-
2.对象和类的关系
- 类是对象的模板,约束对象的属性和行为
- 对象是类的具体实例
-
3.创建类:
命名规则:大驼峰——全部单词首字母大写- 1.java类:
- 属性
- 功能(行为,方法)
定义方法不加 static
- 2.测试类:通过main方法,创建对象
- new对象
- 设计属性
- 调用功能
- 1.java类:
-
4.成员变量和局部变量的区别
- 类中位置不同:
- 成员变量——类中,方法外
- 局部变量:常见于方法中(形参或单独定义)
- 初始化值不同:
- 成员变量——有默认值, 不需要初始化赋值
- 局部变量:没有默认值,使用之前必须完成赋值
- 内存位置不同:
- 成员变量——堆内存
- 局部变量:栈内存
- 作用域不同:
- 成员变量——整个对象
- 局部变量:在所归属的大括号中
- 生命周期不同:
- 成员变量——与对象共存亡
- 局部变量:随着方法的调用而生,随着方法的运行结束而亡
- 类中位置不同:
-
5.类和对象的一些注意事项
- 1.类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义,比如:Student、Car…
- 2.类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)。
- 3.成员变量本身存在默认值,在定义成员变量时一般来说不需要赋初始值(没有意义)。
- 4.对象名要求和类名相似,但是需要首字母小写,建议和类名同名一个代码文件中,可以写多个class类,
- 但只能一个用public修饰,且public修饰的类名必须成为代码文件名。
-
6.封装:
封装的设计规范:合理隐藏、合理暴露- 1、什么是封装?
- 就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
- 面向对象的三大特征:封装、继承、多态。
- 2、代码层面如何控对象的成员公开或隐藏?
- 公开成员,可以使用public(公开)进行修饰。
- 隐藏成员,使用private(私有,隐藏) 进行修饰。
- 1、什么是封装?
-
7.this关键字
- 1、this关键字是什么?
- this就是一个变量, 可以用在方法中 ,用来代表调用当前方法的对象;哪个对象调用方法,this就指向哪个对象,也就是拿到哪个对象。
- 2、this关键字在实际开发中常用来干啥?用来解决对象的成员变量与方法内部变量的名称一样时,导致的访问冲突问题
- 3、成员变量和局部变量的区别类中位置、初始化值、内存位置、作用域、生命周期
- 1、this关键字是什么?
-
8.构造器——也叫构造方法
- 1. 构造器在哪里调用,我们常用它来干嘛?
- 构造器用于完成对象创建;使用有参数构造器,可以创建对象的同时对属性赋值
- 3. 构造器在使用时,有哪2个注意事项?
- 类在设计时,如果不写构造器,Java会为类自动生成一个无参构造器的
- 一旦定义了有参构造器,Java就不会帮我们的类生成无参构造器了,此时就建议自己手写一个无参构造器出来了
- 1. 构造器在哪里调用,我们常用它来干嘛?
-
9.执行原理
栈:先进后出 堆:先进先出 方法区:它主要负责存储已被加载的类(class)信息- 1.程序开始:main.class进入方法区,main方法进入栈内存中
- 2.Student.class进入方法区,在堆内存中生成成员变量,和成员方法的地址(成员方法还在方法区),
- 3.在栈内存的main方法区中创建Student的对象,存储的是堆内存中Student的地址,
- 4.当调用属性时,直接去堆内存中找;当调用方法时候,先找到堆内存中方法的地址,在去方法区调用,让方法进栈
- 5.程序结束时,先让方法区的Student成员方法出栈,再让main出栈,然后清空堆内存,清空方法区。
- 1.程序开始:main.class进入方法区,main方法进入栈内存中
-
-
三.方法区:
- 方法区是Java虚拟机(JVM)内存管理的一部分,它主要负责存储已被加载的类信息,
- 包括类的名称、访问修饰符、成员变量和方法的信息等。
- 此外,方法区还存储常量,这些常量可以是字符串、数字或其他基本类型的值。
- 静态变量也是方法区的一个重要组成部分,它们是在类级别定义的变量,而不是在对象级别。
- 最后,即时编译(JIT)代码也被存储在方法区中,这是为了提高程序的执行效率。