1.面向对象
1.1何为面向对象
恋爱脑门别乱想了,这里的对象不是你们想的对象。在Java里,对于面向对象的世界中,一切皆为对象,面向对象是一种解决问题的思想。主要依靠对象之间交互完成一件事情!用面向对象的思想来解决问题跟容易适应大程序的设计。
1.2面向对象与面向过程
举一个简单的例子:洗衣服;
这是面向过程的洗衣服,要考虑各种情况以及过程,如果使用这种方法来写程序必然会十分繁琐。
这是面向对象的洗衣服:
面向对象的思想中,我们不用过多去关注太多细节,一共就三个对象:人,衣服,洗衣机;通过对象之间的相互合作来完成洗衣服这个工作。
2. 类
2.1 认识类
类是用来对一个实体(对象)来进行描述的,主要描述这个实体的特征,功能:
例如:
洗衣机牌子:xxxx
尺寸:xxxxx 颜色:xxxxx 型号:xxxxxx 功能:xxxxxxx
2.2 类的定义格式
定义类需要用到关键字 class ,{}中的内容是实体;
3. 类的实例化
3.1 何为实例化
定义一个类,就相当于定义了一个新的类型,与 int double 类似,只不过它们是计算机自带的,而类是自己定义的。有了这些自定义类型就可以使用他们来创建对象了.
用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
实例化对象之后就可以使用相对应类里面的成员了,通过 . 进行访问;
3.2 类和对象的说明
1. 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
2. 类是一种自定义的类型,可以用来定义变量。
3. 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。
4. 构造方法
4.1 为什么使用构造方法
类里面是可以包含方法的,我们在给类中成员变量赋值时,每次都要手动引用,十分麻烦,因此我们可以使用构造方法来快速给成员变量赋值;简单地说使用构造方法就是为了方便给成员变量赋值。
4.2 怎么使用构造方法
如图类中 public Student ()这个方法就是构造方法,大家可能好奇 this 关键字是什么,我们下文会说到。当你写好了构造方法后,就可以在实例化对象的时候之间给成员变量赋值了。
值得注意的是 即使我们没有写构造方法,Java默认也是写有一个没有参数的构造方法的,但是一旦我们给出了构造方法,那么默认没有参数的构造方法也会消失。
5. This
5.1 认识 this
this 是 Java 中的一个关键字 ;this 引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该 引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
对比这两张图片,大家大概就知道为什么要使用 this 了吧,就是为了区分类方法中参数与成员变量的关系;注意:this引用的是调用成员方法的对象。
5.2 this 的特性
1. this 的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
2. this 只能在"成员方法"中使用
3. 在"成员方法"中,this只能引用当前对象,不能再引用其他对象
6. 默认初始化
一般来说局部变量不应该要初始化才能使用吗?这没错,只是这里有 new 的作用:
new 在程序层面只是简单的一条语句,在JVM层面需要做好多事情,下面简单介绍下:
1. 检测对象对应的类是否加载了,如果没有加载则加载
2. 为对象分配内存空间
3. 处理并发安全问题
比如:多个线程同时申请对象,JVM要保证给对象分配的空间不冲突