Java编程思想,读书笔记一(第1、2章 对象)

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u010882234/article/details/79077334


      第一章,对象导论。

      编程语言的产生,始于对机器的模仿。计算机不仅仅是机器,它是头脑延伸的工具,同时还是一种不同类型的表达媒体。面向对象的程序设计(Object-oriented Programming,OOP)便是这种以计算机作为表达媒体的大趋势中的组成部分。

      所有的编程语言都提供抽象机制。所谓的“类型”是指“所抽象的是什么?”汇编语言是对底层机器的轻微抽象,接着所谓的“命令式”语言(如BASIC,C等)都是对汇编语言的抽象。这些语言所作的主要抽象仍要求在解决问题时要基于计算机的结构,而不是基于所要解决的问题的结构来考虑。对机器建模的另一种方法就是只针对待解决问题建模,如早期的编程语言LISP和APL。

      面向对象的方式通过向程序员提供表示问题空间中的元素的工具而更近了一步。这种表示方式非常通用,使得程序员不再受限于任何特定类型的问题。我们将问题空间中的元素及其在解空间中的表示,成为“对象”。这种思想的实质为:程序可以通过添加新类型的对象使自身适用于某个特殊问题。oop允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。

      面向对象的五个基本特征,也是一种纯粹的面向对象的程序设计方式:

      万物皆为对象。程序是对象的集合,他们通过发送消息来告知彼此所要做的。每个对象都有自己的由其他对象所构成的存储。每个对象都有其类型。某一特定类型的所有对象都可以接收同样的消息。总结起来,对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一的和其他对象区分开来,具体来说,每个对象在内存中都有一个唯一的地址。

       因为类是描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。每个对象都有一个接口,每个对象都提供服务。java访问权限,默认包访问权限,没有访问指定词。private,私有访问权限,类内部访问权限。protect,受保护访问权限,继承类可以访问。public,公共访问权限。

      复用具体实现。一,用类创建多个对象。二,组合,“has-a”关系,一个类的对象作为另一个类的属性。三,继承,extends基类,可以添加新的属性,也可以添加新的方法,或者覆盖(重写,overridding)原有方法。在java中,是单根继承结构,不允许继承多个基类。为了解决需要继承多个基类的情况,java引入了接口,类可以实现(implements)多个接口 (interface)。单根继承结构使垃圾回收期的实现变得容易很多,垃圾自动回收机制也是java的优势之一。

       多态。方法的参数可以采用泛型或基类类型,方法编写时不需要考虑具体的对象类型,直到代码运行时才需要知道参数类型。这种称为后期绑定,也称作动态绑定,在java中方法默认是动态绑定。

       容器,也称作集合。常用集合,List,用于存储序列。Map,用于存储键-值数组。Set,每个对象的类型只持有一个。其他还有队列、书、堆栈等。集合多采用参数化类型(泛型),这样可以很方便的使用集合,并减少出错。

       对象的创建和生命周期。Java采用动态内存分配方式,通过new关键字创建对象,由垃圾回收机制在对象不被使用时自动销毁。

       异常处理。Java内置异常处理,并强迫大家必须使用它,它是唯一可接受的错误报告形式。如果没有编写正确的异常处理的代码,就会得到一条编译时的出错信息。

       并发编程。分布式和高并发,是解决海量请求的方法。Java的并发是内置于语言中的,有很多类库支持我们使用多线程处理并发问题。

       Java与Internet。现在很多网站和系统都使用了java的技术,用java在服务器端编程,由很大的优势,结合javascript、html等技术,使得java在web领域越来越多的被使用。

       第二章,一切都是对象

       java对象存储在堆中。堆是一种通用的内存池,位于RAM区。用new创建对象,当执行这段代码时,会自动在堆里进行内存分配。常量值通常存放在程序代码内部。在“持久化对象”中,对象被存放在磁盘上。在需要时,可恢复为常规的、基于RAM的对象。Java提供了对轻量级持久化的支持,而诸如JDBC和Hibernate这样的机制提供了更加复杂的对在数据库中存储和读取对象信息的支持。

       特例:基本类型。不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储“值”,并置于堆栈中。java的基本类型所占的存储空间是不变的,是约定好的。基本类型具有包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。Java的自动装箱功能可以自动的基本类型转变为包装器类型,并可以自动反响转换(自动拆箱)。

       Java的主要目标之一是安全性,Java确保数组会被初始化,并且不能在它的范围之外被访问。当创建一个数组对象时,实际上就是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定值,该值拥有自己的关键字null。一旦Java中看到null,就知道这个引用还没有指向某个对象。在使用任何引用前,必须为其指定一个对象;如果试图使用一个还是null的引用,在运行时将会报错。

       在Java中,作用域由花括号“{}”的位置确定。在作用域里定义的变量,只可用于作用域结束之前。用class创建新的类,每个类有一个类名,类里面可以设置字段(属性,数据成员)和方法(成员函数)。字段可以是任何类型的对象,可以通过引用与其进行通信;也可以是基本类型的一种。如果字段是某个对象的引用,那么必须初始化该引用,以便使其与实际的对象相关联。基本类型的字段都有其初始值,但对于程序来说可能是不正确的,甚至是非法的,所以最好明确的对变量进行初始化。对于局部变量(即并非某个类的字段),如果没有初始化,程序会在编译时报错。

      Java的类里面包含字段和方法,对象间的通信由方法来完成。方法包含返回值类型、方法名、参数列表和方法体,方法名和参数列表唯一地标识某个方法。方法调用:对象.方法名(参数列表)。对于static方法,它是针对类调用的,可以表示为:类名.方法名(参数列表)。调用方法的行为,通常被称为发送消息给对象。面向对象的程序设计通常简单的归纳为“向对象发送消息”。return关键字,表示“已经做完,离开此方法”。如果返回类型是具体类型,则返回此类型的返回值。若返回类型为void,则只用来表示退出方法。

      当类的字段使用static关键字修饰时,一个static字段对每个类来说只有一分存储空间,而非static字段则是对每个对象有一个存储空间。static修饰的方法,则是可以直接使用类名调用它。

      对于一个类文件,类名必须和文件名一致,否则编译器报错。在使用Java语言编程时,可以使用它庞大的标准类库集,只需要使用import导入即可,非常方便。类名首字母大写,建议驼峰式写法。Java类要进行适当的注释,这样既增加可读性,也方便后期的维护。可以使用javadoc提取注释文档,生成类似java api那样的html文档。

      下一篇: Java编程思想,读书笔记二(第3、4章 操作符和控制执行流程) - CSDN博客  

猜你喜欢

转载自blog.csdn.net/u010882234/article/details/79077334
今日推荐