1.学习目标
- 了解面向对象的思想,能够说出面向对象的三个特性
- 掌握类的定义,能够独立完成类的定义
- 掌握对象的创建和使用,能够完成对象创建,用对象访问对象属性和方法
- 掌握对象的引用传递,能够独立实现对象的引用传递
- 熟悉Java的4种访问控制权限,能够在类中灵活使用访问控制权限
- 熟悉类的封装特性,能够说出为什么要封装以及如何实现封装
- 掌握构造方法的定义和重载,能够独立定义构造方法,重载构造方法
- 熟悉this关键字,能够使用this调用成员属性、成员方法、构造方法
- 了解代码块的应用,能够说出普通代码块和构造块的特点
- 熟悉static关键字的使用,能够说出静态(属性、方法、代码块)的特点
2.学习内容
1.面向对象的思想
面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。面向对象是把构成问题的事物按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。当然,一个应用程序会包含多个对象,通过多个对象的相互配合实现应用程序的功能,这样当应用程序功能发生变动时,只需要修改个别的对象就可以了,从而使代码维护起来更加方便。
-
封装性
封装是面向对象的核心思想,它有两层含义,第一层含义是指把对象的属性和行为看成是一个密不可分的整体,将这两者“封装”在一起(即封装在对象中);另外一层含义指“信息隐藏”,将不想让外界知道的信息隐藏起来。例如,驾校的学员学开车,只需要知道如何操作汽车,无需知道汽车内部是如何工作的。
-
继承性
继承性主要描述的是类与类之间的关系,通过继承,可以在原有类的基础上,对原有类的功能进行扩展。例如,有一个汽车类,该类描述了汽车的普通特性和功能。进一步再产生轿车类,而轿车类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加轿车特性和方法就可以了。继承不仅增强了代码的复用性、提高了开发效率,还降低了程序产生错误的可能性,为程序的维护以及扩展提供了便利。
-
多态性
多态性是指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。例如,汽车和飞机同样作为交通工具,汽车在陆地上行驶,而飞机在天空中飞行,所以不同的对象,所表现的行为是不一样的。多态的特性使程序更抽象、便捷,有助于开发人员设计程序时分组协同开发。
2.类与对象
在面向对象的思想中最核心的就是对象,创建对象的前提是需要定义一个类,类是Java中一个重要的引用数据类型,也是组成Java程序的基本要素,所有的Java程序都是基于类的。
类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员方法,其中,成员变量用于描述对象的特征,成员变量也被称作对象的属性;成员方法用于描述对象的行为,可简称为方法。
-
局部变量与成员变量的不同
在Java中,定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。如果在某一个方法中定义的局部变量与成员变量同名,这种情况是允许的,此时,在方法中通过变量名访问到的是局部变量,而并非成员变量。
-
类的定义格式
class 类名{ 成员变量; 成员方法; }
-
对象的创建格式
在Java程序中可以使用new关键字创建对象,使用new关键字创建对象的具体格式如下:
类名 对象名称 = null; 对象名称 = new 类名();
上述格式中,创建对象分为声明对象和实例化对象两步,也可以直接通过下面的方式创建对象,具体格式如下:
类名 对象名称 = new 类名();
-
对象属性和方法的访问格式
创建对象后,可以使用对象访问类中的某个属性或方法,对象属性和方法的访问通过“.”运算符实现,具体格式如下。
对象名称.属性名 对象名称.方法名
-
对象的引用传递
类属于引用数据类型,引用数据类型就是指内存空间可以同时被多个栈内存引用。一个栈内存空间只能指向一个堆内存空间,如果想要再指向其他堆内存空间,就必须先断开已有的指向才能分配新的指向。
-
访问控制权限级别排序
在Java中,针对类、成员方法和属性,Java提供了4种访问控制权限,分别是private、default、protected和public。下面通过一张图将这4种访问控制权限按级别由小到大依次列出,如下图所示。
(1)private:private属于私有访问权限,用于修饰类的属性和方法,也可以修饰内部类。类的成员一旦使用了private关键字修饰,则该成员只能在本类中进行访问。
(2)default:default属于默认访问权限,如果一个类中的属性或方法没有任何的访问权限声明,则该属性或方法就是默认的访问权限,默认的访问权限可以被本包中的其他类访问,但是不能被其他包的类访问。
(3)protected:protected属于受保护的访问权限。如果一个类中的成员使用了protected访问权限,则只能被本包及不同包的子类访问。
(4)public:public属于公共访问权限。如果一个类中的成员使用了public访问权限,则该成员可以在所有类中被访问,不管是否在同一包中。
外部类的访问权限只能是public或default,所以Test类只能使用public修饰或者不写修饰符。局部成员是没有访问权限控制的,因为局部成员只在其所在的作用域内起作用,不可能被其他类访问到,如果在程序中这样编写代码,编译器会报错。
今天的分享就是这些,如果有用,关注公众号可获得更多内容: