zoukankan      html  css  js  c++  java
  • 从走Java1

            为什么会从走Java,原因有几点,我想我的基础知识更加的扎实,第二点是想对《Java编程思想》好好的读一遍,我仰慕这本书已经很久了,然后上一次在寒假的时候我大概的看了这本书的第三版,不知到那是什么时候出的,有很多的比较老的说法,现在,这本书的第四版,我仰慕很久了的书,终于可以慢慢来看了。有些新获得的东西,在word文档里存着也是存着,写在这里也可以纪念一下我的学习历程,以后有错误的地方也好改正。

            好吧,这本书的前言是让我寻味了很久的地方,只有20页,我却读了将近5个小时,确实值得耐人寻思啊。接下来便是一些笔记。

            学习笔记:

             在读这本书前,我已经将第三版大概的看了一下,但是并没有很认真的去看这本书,现在想来,我错了,但是也是对的,当时我只有一点点的Java基础,这本书是修内功的,对于我这个没有底子的角色来说,确实有点力不从心,所以,从今天开始,我从看Java编程思想,对于其中的一些让我感觉到惊艳的地方,也就做个笔记以便日后查阅修改。

    1.前言

             前言对整个Java进行了描述,对面向对象的思想精华和面向对象的变成做了一个总结。到现在,我也不太明白面向过程和面向对象语言到底有什么样的区别,但是仔细的想一想也还是有点区别。书中这样说道“面向对象思想的实质是:程序可以通过天剑新类型的对象使自身来适应于某个特定的问题,因此,你在阅读解决代码的同时,你也在阅读问题的表述”,在Java的编程中,最核心的工作便是创建各种各样的类,从这些类new出对象,使用对象来解决问题,其中最重要的是,类可以是任何的(只要符合语法规则),类中的接口也可以是任何的,这就给问题的解决者提供了强大的支持。

            /**下面这一段对Java面向对象的五大特点进行了自己的一些观点,有错希望指出*/

             面向对象程序设计的五大特征,第一个是万物皆为对象,这句话也是对这个真实的世界的一个描述,任何事物都是对象。它可以储存数据,还可以要求这个对象做自己可以做的一些事情。第二个是程序是对象的集合,在我以前看这个的时候,我清楚的记得,我完全不懂这句话的意思,但是,对象有处理事务的能力,我所需要做的就是告诉这个对象它需要做什么,给它它做某些事情所需要的数据就OK了。当然,你在设计类的时候避免不了算法和数据结构了,那是细节,当时处理问题的时候,就纯粹是和对象打交道了。第三条是组合的精华。第四个需要特别的写一下,类型在Java中是个十分重要的东西,首先Java是一个大多数情况下是动态绑定的语言,对类型的检查也是相当的严格,一个对象使类的实例化,所以,类的类型就是对象的类型,就像认识动物的实例化,人的类型自然是动物这个类型。涉及到类型就有向上和向下转型的问题,在继承中这个关系显得相当大重要。书中的原话是“类型决定了你可以发什么消息给它”,这个是以后类型转换的精华。最后一句话,是OOP中的有一个强有力地概念:可代替性,也就是继承,这里面的东西就深了,这里就点到为止。

             第三页描述了创建新的数据类型-----类,以前我并没有太注意,但是读到这里我突然发现,我写的每一个类都创建了一种新的数据类型,他们自身可以储存数据,也可以实例化,还可以包含别的对象,这个类抽象出来的对象可以执行相应的方法,但是如果我们没有创建这个类,而只是使用它(在Android大多数情况都是这样),我们不需要知道这个对象的类的细节,类中的方法的实现,我们也不需要关心,所需要关心的只是它有没有我们所需要的功能,这就实现了封装,对外界的信息影藏,这不断使对象的使用者轻松了N多,也让类的开发者保证了类的功能。当然还有许多其他的好处,比如便于管理和定位BUG等等,这就是面向对象的三大技术之一“封装”。

             书中有一句话“每个对象都应该是很好的完成一项任务,而不是尝试提供更多的事情”,这是类的单一原则,即一个类只有一个改变它的理由,如果有好几个动机去改变一个类,那么这个类就该考虑分离。单一的功能还有一个绝对的优点就是:复用。

            后面的继承和多态还有是在图书馆看的,没有详细的笔记,但是对于Java的后期绑定,我也有一点自己的看法,就顺便说一说吧,目前我所知道的的对语言编译的情况有两种,一个是前期绑定,一个就是后期绑定。两者各有好处,前期绑定可以提前知道错误,而且是程序的运行速度提高,典型的前期绑定语言就是C语言,而且前期绑定一般不会遇到不可预知的错误,但是后期绑定却是面向对象语言的一个标志,当然C++需要一些关键字来实现前期后期绑定,哎,我觉得,这个也是C++很恼火的地方,后期绑定的优势在于多态,还有动态的分配内存,当然,后期绑定还涉及到泛型,我现在也说的不太明白,但是,了解后期绑定对理解Java中的static一词有很大的帮助,static在创建的时候是伴随类的创建而创建的,和对象无关,在内存中对应的是一块绝对地址的内存,在一个类中有个static方法或字段,new出的对象的个数和static无关,new这个对象对应的堆中也没有static这个方法或字段,static一句话独立于对象。这也就可以理解什么在静态方法中只有静态字段等等有关静态变成的一些规则。当然,随之而来的就是this,this就是指代当前对象,有些人说this其实就是指向当前对象的一个指针,这句话还是有道理的,只是有关this的用法,具体是怎么实现的,还需要继续研究。

             好吧,现在才慢慢的读到39页,以后继续慢慢品味吧。只为读书,不为读完书。


  • 相关阅读:
    整数划分《递归法》
    hdu 1224 Free DIY Tour
    HTTP Response Status Code HTTP响应代码中文详解
    Webserive学习站点
    页面的回传与回调
    JS中apply和call函数的运用
    SOAP协议详解
    JS在firefox和IE下差异及解决方案
    关于路径的问题
    .NET中IDisposable接口的基本使用 (转)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3003052.html
Copyright © 2011-2022 走看看