目录
一、面向对象的思想
1、概念:
面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。
2、面向对象的三个特征
2.1、封装性
概念:封装是面向对象的核心思想,它有两层含义:一层含义是指把对象的属性和行为看成是一个密不可分的整体,将这两者“封装”在一起(即封装在对象中);另一层含义是指“信息隐藏”,将不想让外界知道的信息隐藏起来。例如,驾校的学员学开车,只需要知道如何操作汽车,无须知道汽车内部是如何工作的。
2.2、继承性
概念:继承性主要描述的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个汽车类,该类描述了汽车的普通特性和功能,进一步再产生轿车类,而轿车类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加轿车特性和方法就可以了。继承不仅增强了代码的复用性、提高了开发效率,还降低了程序产生错误的可能性,为程序的维护以及扩展提供了便利。
2.3、多态性
概念:多态性是指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。例如,当听到“Cut”这个单词时,理发师的行为是剪发,演员的行为是停止表演,不同的对象所表现的行为是不一样的。多态的特性使程序更抽象、便捷,有助于开发人员设计程序时分组协同开发。
面向对象的思想仅靠上面的介绍是无法真正理解的,只有通过大量的实践去学习和理解,才能将面向对象思想真正领悟。
二、类于对象
1、概念
在面向对象中,为了做到让程序对事物的描述与事物在现实中的形态保持一致,面向对象思想中提出了两个概念,即类和对象。在Java程序中类和对象是最基本、最重要的单元。类表示某类群体的一些基本特征抽象,对象表示一个个具体的事物。例如:
2、类的定义
概念:在面向对象中,为了做到让程序对事物的描述与事物在现实中的形态保持一致,面向对象思想中提出了两个概念,即类和对象。在Java程序中类和对象是最基本、最重要的单元。类表示某类群体的一些基本特征抽象,对象表示一个个具体的事物。类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员方法,其中,成员变量用于描述对象的特征,成员变量也被称为对象的属性;成员方法用于描述对象的行为,可简称为方法。
类的定义格式如下:
2.1、局部变量于成员变量的不同
概念:在Java中,定义在类中的变量称为成员变量,定义在方法中的变量称为局部变量。如果在某一个方法中定义的局部变量与成员变量同名,这种情况是允许的,此时,在方法中通过变量名访问到的是局部变量,而并非成员变量。
示例代码:
3、对象的创建于使用
定义了一个Student类,要想使用一个类则必须要有对象。在Java程序中可以使用new关键字创建对象,具体格式如下:
类名 对象名称-null;对象名称- new 类名();
上述格式中,创建对象分为声明对象和实例化对象两步,也可以直接通过下面的方式创建对象,具体格式如下:
类名对象名称-new 类名();
例如,创建Student类的实例对象,示例代码如下:
Student stu = new Student ();
示例代码:
4、对象的引用传递
概念:类属于引用数据类型,引用数据类型就是指内存空间可以同时被多个栈内存引用。
示例代码:
5、访问控制
5.1、四种访问控制权限
针对类、成员方法和属性,Java提供了4种访问控制权限,分别是private、default、protected 和public。如图:
(1) private: private 属于私有访问权限,用于修饰类的属性和方法。类的成员一旦使用了private关键字 修饰,则该成员只能在本类中进行访问。
(2)default: default 属于默认访问权限。如果一个类中的属性或方法没有任何的访问权限声明,则该属性或方法就是默认的访问权限,默认的访问权限可以被本包中的其他类访问,但是不能被其他包的类访问。
(3)protected:属于受保护的访问权限。一个类中的成员使用了protected访问权限,则只能被本包及不同包的子类访问。
(4)public: public 属于公共访问权限。如果一个类中的成员使用了public访问权限。则该成员可以在所有类中被访问,不管是否在同一包中。
三、封装性
1、概念
封装是面向对象的核心思想,理解并掌握封装对于学习Java面向对象的内容十分重要。
2、为什么要封装
概念:在Java面向对象的思想中,封装可以被认为是一个保护屏障,防止本类的代码和数据被外部程序随机访问。
3、如何实现封装
概念:类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter 和getter 方法设置和获取属性值。
示例代码:
四、构造方法
概念:从前面所学的知识可以发现,实例化一个对象后,如果要为这个对象中的属性赋值,必须通过直接访问对象的属性或调用setter方法才可以实现,如果需要在实例化对象时为这个对象的属性赋值,可以通过构造方法实现。构造方法(也称为构造器)是类的一个特殊成员方法,在类实例化对象时自动调用。
1、定义构造方法
构造方法是一个特殊的成员方法,在定义时,有以下几点需要注意。
(1)构造方法的名称必须与类名一致。
(2)构造方法名称前不能有任何返回值类型的声明。
(3)不能在构造方法中使用return返回一个值,但是可以单独写return语句作为方法的结束。
示例代码:
2、构造方法的重载
概念:与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。
示例代码:
五、this关键字
概念: 在Java开发中,当成员变量与局部变量重名时,需要使用到this关键字分辨成员变量与局部变量,Java中的this 关键字语法比较灵活。
1、使用this关键字调用类中的属性
示例代码:
2、使用this关键字调用成员方法
示例代码:
3、使用this关键字调用类的构造方法
概念:构造方法在实例化对象时被Java虚拟机自动调用,在程序中不能像调用其他成员方法一样调用构造方法,但可以在一个构造方法中使用“this(参数1,参数2..”的形式调用其他的构造方法。
示例代码:
六、代码块
概念:代码块,简单来说,就是用“()”括号括起来的一段代码,根据位置及声明关键字的不同,代码块可以分为普通代码块、构造块、静态代码块、同步代码块4种。
1、普通代码块
示例代码:
2、构造块
示例代码:
七、static关键字
概念:在定义一个类时,只是在描述某事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建该类的实例对象时,才会开辟栈内存和堆内存,在堆内存中每个对象会有自己的属性。如果希望某些属性被所有对象共享,就必须将其声明为static属性。如果属性使用了statc关键字进行修饰,则该属性可以直接使用类名称进行调用。除了修饰属性、static关键字还可以修饰成员方法。
1、静态属性
概念:如果在Java程序中使用static修饰属性,则该属性称为静态属性(也称全局属性),静态属性可以使用类名直接访问。
代码如下:
2、静态方法
概念:如果想要使用类中的成员方法,就需要先将这个类实例化,而在实际开发时,开发人员有时希望在不创建对象的情况下,通过类名就可以直接调用某个方法,要实现这样的效果,只需要在成员方法前加上static关键字,使用static关键字修饰的方法通常称为静态方法。
案例:
3、静态代码块
概念:在Java类中,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块会执行,由于类只加载一次。因此静态代码块只执行一次。在程序中,通常使用静态代码块对类的成员变量进行初始化。
示例代码:
八、小结
本章详细介绍了面向对象的基础知识。首先介绍了面向对象的思想;其次介绍了类与对象之间的关系,包括类的定义、对象的创建与使用等;接着介绍了类的封装;然后介绍了构造方法,包括构造方法的定义与重载;最后介绍了代码块的使用和static关键字的使用。通过学习本章的内容,读者可对Java中面向对象的思想有初步地认识,熟练掌握好这些知识,有助于学习下一章的内容。深入理解面向对象的思想,对以后的实际开发也是大有裨益的。
文章链接:Java之面向对象(1)-CSDN博客