面向对象编程
1. 面向对象编程有什么好处?
万物皆对象(符合人类思维习惯,编程更简单,更直观)
汽车的数据——>找汽车对象处理
手机的数据——>找手机对象处理
学生的数据——>找学生对象处理
-
程序中的对象是什么?
对象本质上是一种特殊的数据结构(相当于现实世界的一张表),表记录的是什么数据,对象处理的就是什么数据
S1学生表 S2学生表 name 小明 name 小红 语文 100 语文 60 数学 100 语文 90 ... ... 对象使用类new出来的,有了类就可以创建出对象
public class 类名 { 1.变量:用来说明对象可以处理什么数据 2.方法:描述对象有什么功能,也就是可以对数据进行什么样的处理 ... }
栈存的是变量和基本数据类型,堆存的是引用数据类型和new的对象,方法区存的是类
总结
- 对象在计算机中的执行原理是怎样的
Student s1 = new Student();
每次new Student();就是在堆内存中开辟一块内存区域,代表一个学生对象
S1变量里面记住的是学生对象的地址
-
如何识别引用类型的变量?
Student s1 = new Student();
s1变量中存储的是对象的地址 ,因此变量s1也称为引用类型的变量
类和对象的一些注意事项
- 类名建议用英文单词,首字母大写,满足“驼峰模式”,且要有意义,如Student…
- 类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)
- 成员变量本身存在默认值,在定义成员变量时一般来说不需要赋初值(没有意义)
- 一个代码文件中,可以写多个class类,但只能一个用public修饰,且public修饰的类名必须成为代码文件名
- 对象与对象之间的数据不会互相影响,但多个变量指向同一个对象时就会影响
- 如果某个对象没有一个变量引用它,则该对象无法被操作了,该对象会成为所谓的垃圾对象
this是什么
this就是一个变量,可以用在方法中,来拿到当前对象
this的应用场景:this主要用来解决变量名称冲突问题
构造器有什么特点
创建对象时,同时完成对对象成员变量(属性)的初始化赋值
构造器的注意事项
- 类在设计时,如果不写构造器,java是会为类自动生成一个无参构造器的
- 一旦定义了有参构造器,java就不会帮我们的类自动生成无参构造器了,此时就建议自己手写一个无参数构造器
总结:
- 构造器是一种特殊的方法,名字必须跟所在类的名字一模一样,而且不能写返回值类型(可以重载)
- 对象创建时,我们可以指定对象去调用哪个构造器执行
- 构造器常用于完成对象初始化(常见的应用场景是完成对象的成员变量的初始化赋值)
类的名字一模一样,而且不能写返回值类型(可以重载)
- 对象创建时,我们可以指定对象去调用哪个构造器执行
- 构造器常用于完成对象初始化(常见的应用场景是完成对象的成员变量的初始化赋值)