6.1 面向对象概述:
在程序开发初期,人们使用结构化开发语言。随着软件的规模越来越庞大,结构化语言的弊端也逐渐暴露出来,开发周期越来越长,产品的质量也不尽如人意。
6.1.1对象:
(1)从这一问题中抽象出对象,这里抽象出的对象为大雁
(2)识别这个对象的属性。对象具备的属性都是静态属性,如大雁有一对翅膀,黑色的羽毛等。
(3)识别这个对象的动态行为,即这只大雁可以进行的动作,如飞行,觅食等,这些行为都是这个对象基于其属性而具有的动作。
(4)识别出这个对象的属性和行为后,这个对象就被定义完成了。然后可以根据这只大雁具有的特性制定这只大雁从北方飞向南方的具体方案。
6.1.2 类:
类就是同一类事物的统称,如果将现实世界中的一个抽象成对象,类就是这类对象的统称,在Java语言中,类对象的行为是以方法的形容来定义的,对象的属性是以成员变量的形式定义的,所以类包括对象的属性和方法。
6.1.3 封装:
面向对象程序设计具有以下特点:封装性,继承性和多态性;(1)封装是面对对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装思想,(2)采用封装的思想保证了类内部数据结构的完整性,使用类的用户不能轻易的直接操作类的数据结构,只能执行类允许公开的数据
6.1.4 继承:
(1)类与类之间具有关系,这种关系被称为关联。关联主要描述两个类之间的一般二元关系。(2)继承性主要利用特定对象之间的共同属性。
6.1.5 多态:
继承,父类和子类,其实将父类对象应用于子类的特征就是多态。
6.2 类:
类是封装对象的属性和行为的载体,而在Java语言中对象的属性以及成员变量的形式存在,对象方法以成员方法的形式存在。
6.2.1 成员变量:
在Java中,对象的属性也称为成员变量,成员变量可以任意类型,整个类中均是成员变量作用范围。
6.2.2 成员方法:
一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回值的选择,如果方法需要返回值,可以在方法中使用retnrn关键字,使用这个关键字后,方法的执行将被终止。
6.2.3 权限修饰符:
public和protected修饰的类可以由子类访问,如果子类和父类不在同一包中,那么只有修饰符为public的类可以被子类进行访问。如果父类不通过继承产生的子类访问它的成员变量,那么必须使用private声明父类这个成员变量。
6.2.4 局部变量:
局部变量是在方法被执行时创建的,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。
6.2.5 局部变量的有效范围:
(1)可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
(2)在相互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量。
(3)但是在相互嵌套的区域中不可以这样声明,如果中局部变量id在方法体的for循环中再次定义,编译器将会报错。
6.2.6 this关键字:
this关键字用于表示本 类当前对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。
6.3 类的构造方法:
在类中,除成员方法外,还存在一种特殊类型的方法,那就是构造方法,构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调整用构造方法。
6.4 静态变量和静态方法:
由static修饰的变量和方法被称为静态变量和静态方法,有时在处理问题时会需要两个类在同一内存区域共享一个数据,被声明为static的变量和方法被称为静态变量。静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。
6.5 类的主方法:
主方法是类的入口点,它定义了程序从何处开始,主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。
6.6 对象 :
Java是一门面向对象的程序设计语言,对象是由类实例化而来的,所有问题都通过对象来处理。对象可以通过操作类的属性和方法来解决相应的问题,所以了解对象的产生,操作和消亡是十分必要的。
6.6.1 对象的创建:
对象可以认为是在一类事物中抽象出某个特例,可以通过这个特例来处理这类事物出现的问题。在Java语言中,通过new操作符来创建对象。
6.6.2 访问对象的属性和行为:
用户使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。对象的属性和行为在类中是通过类的成员变量和成员方法来表示的,所以当对象获得类成员时,也相应的获取了对象的属性和行为。
6.6.3 对象的引用:
在Java语言中,尽管一切都可以看作对象,但真正的操作标识符实质上是一个引用。通常一个引用不一定需要有一个对象相关联。
6.6.4 对象的销毁:
每个对象都有声明周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收,在其他语言中,需要用户手动回收废弃的对象,Java拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器会自动回收无用却占用内存的资源。