1.初识面向对象(JAVA—万物皆对象)
什么是面向过程:是以解决问题的步骤为核心,各个步骤之间是紧密相关的——强调的是步骤
什么是面向对象:是以现实世界中的事物为中心,通过给对象发送消息解决问题
面向对象思想特点
a:是一种更符合我们思想习惯的思想
b:可以将复杂的事情简单化
c:将我们从执行者变成了指挥者(角色发生了转换)
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情
面向对象设计
就可以理解为在管理和维护对象之间的关系。
面向对象特征
封装
继承
多态
2.类和对象的初识
描述现实世界事物
属性——就是描述该事物的信息(简单理解就是相关名词)
行为——就是该事物能够做什么(简单理解就是相关东西)
Java中最基本的单位是类,Java中用class描述事物也是如此
成员变量——就是事物的属性
成员方法——就是事物的行为
类和对象的概念
类:把一组对象相同的属性和相同行为抽象出来就形成了类,是对一组对象相同属性和行为的描述
对象:现实世界中客观存在的事物就是对象
两者关系:对象是具体的,类是抽象的;类是对象的模板,对象是类的实例
定义类其实就可以理解为定义类的成员(成员变量和成员方法)
[修饰符] class 类名{
//属性;
//行为;
}
1)类的修饰符可以有: public, abstract, final等
2)class是一个关键字,用来定义类
3)类名是程序员起的名字,
4)类体需要使用一对大括弧括起来
5)在类体中一般描述所有对象共同的属性和共同的行为
6)属性用变量来保存,行为用方法来表示
创建对象:
3.成员变量和局部变量的区别
(1)在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
(2)在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈內存(局部变量属于方法,方法进栈内存)
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
成员变量:有默认初始化值
数值型:默认初始化是0/0.0
字符型:默认初始化为码值为0的字符
布尔型:默认初始化为false
引用数据类型:默认为null
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
4.匿名对象
什么是匿名对象——没有名字的对象
匿名对象应用场景
调用方法,仅仅只调用一次的时候
作用(好处)——节省代码
注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收;匿名对象可以作为实际参数传递
5.对象内存分析图
6.构造方法
作用:创建对象时,给对象的属性初始化——就是给对象的各个字段赋值
特点:
(1)构造方法的方法名与类名相同(是完全相同)
(2)构造方法没有返回值,也没有返回值类型,连void都没有——有void就不是构造方法了
(3)构造方法可以通过参数来接收数据
(4)在没有显示定义构造方法之前,系统有一个默认的无参构造方法
当程序员显示定义了构造方法之后,系统默认的无参构造就没有了
(5)构造方法可以参数实现重载
(6)构造方法在创建对象时,跟在new运算符后面,由系统调用
内存示意图:
对象创建的顺序:
1)在堆区中new出来一块新的存储空间
2)给堆区中对象的各个字段进行默认初始化
3)执行构造方法