JavaSE小笔记--07面向对象2

 

1.构造代码块

 

作用——给所有对象进行相同的初始化操作

 

特点

 

在创建对象的时候,在构造方法执行之前,先执行代码块

 

注意:

 

在定义类时可以给变量赋初值,编译之后,这个变量的初始化操作就会编译到构造方法体的最前面

 

构造代码块编译之后,也会编译到构造方法体的前面

 

类中变量的初始化和构造构造块,哪个定义在前,就先执行哪个

2.代码块

 

概述——在Java中,使用{}括起来的代码被称为代码块

 

分类

 

根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)

 

应用

 

a:局部代码块

 

在方法中出现;限定变量生命周期,及早释放,提高内存利用率

 

b:构造代码块(初始化块)(看上面1)

 

c:静态代码块

 

在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次

 

一般用于加载驱动

3.this关键字

 

作用:

 

①访问属性、方法

 

当在方法中,方法的形参或局部变量与字段名相同时,在方法体中默认采用就近原则使用的是局部变量或者形参而不是字段,在方法体中可以通过this关键字来访问字段

 

this是指当前对象,如果在构造方法中使用this,就是指刚刚在堆中new出来的那个对象;在普通的实例方法中this当前对象是指调用这个方法的那个对象

②调用构造方法当一个类中需要定义多个构造方法时,可以定义一个有最多参数的构造方法。其他的构造方法通过this()来调用这个最多参数的构造方法。注意:

this()这条语句必须作为构造方法的第一条语句

 

4.对象作为方法参数时的分析

 

1)对象作为方法参数,当调用这个方法时,把实参对象的值传递给形参对象,现在形参对象与实参对象指向了堆中同一个对象。如果在方法体中,修改了形参对象的属性值,实际上也是修改实参对象的属性值

 

2)对象作为方法参数,当调用这个方法时,把实参对象的值传递给形参对象,现在形参对象与实参对象指向了堆中同一个对象。在方法体中,对形参进行了重新赋值,现在形参对象指向了一个新的对象,不再指向实参堆中的对象,再对形参对象作任何修改,跟实参对象没有关系

5.面向对象的特点

 

1)封装

 

一是指可以把数据(成员变量)和对数据的操作(成员方法)封装在一个结构(类)中;

 

二是通过封装可以提高数据的安全性屏蔽内部的实现细节

 

2)继承

 

通过继承可以反应类与类之间的关系

 

通过继承实现代码的复用,子类继承了父类之后就自动拥有了父类的成员变量和成员方法

 

3)多态

 

多态分为对象多态和行为多态

 

对象多态是指同一个对象有不同的状态

 

行为多态是指同一条语句有不同的实现,相同的语句执行不同的操作.行为多态又分为编译时多态和运行

 

时多态.编译时多态是通过方法的重载实现的,在编译的时候就确定了要执行的代码;运行时多态是运行

 

的时候进行动态绑定,只有执行到这条语句时才能确定要执行的代码

6.封装——隐藏对象的属性实现细节,仅对外提供公共访问方式

 

1)为什么封装?

 

隐藏实现細节,提供公共的访问方式,提高了代码的复用性,提高安全性

 

2)如何实现封装

 

(1)把字段(域,实例变量)私有化,即用 private修饰,private修饰的成员,只能在本类(当前类)中使用,不能在其他类使用

 

(2)提供公共的 getXXX() 和setXXX()方法实现对私有数据的访问

注意:private仅仅是封装的一种体现形式,不能说封装就是私有

 

3)建议:

 

在定义实体类时,要求把所有字段都设置为 private私有的,如果需要访问就提供对应的 getxxx(),setxxx()方法

7.巩固对象创建步骤

JavaSE小笔记--07面向对象2