前言:
今天你们对“java概论”都比较注意,小伙伴们都需要分析一些“java概论”的相关资讯。那么小编同时在网上网罗了一些有关“java概论””的相关知识,希望朋友们能喜欢,我们一起来了解一下吧!Java编程思想的读书笔记第一章——对象导论
“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来......除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。”——Benjamin Lee Whorf(1897-1941)
计算机是头脑延伸的工具,同时还是一种不同类型的表达媒体,如写作、绘画、雕刻、动画、电影等一样的表达形式。面向对象程序设计(Object-oriented Programming,OOP)作为其中一部分。
1)万物皆为对象,你可以抽取待求解问题的任何概念化构件(狗、建筑物、服务等),将其表示为程序中的对象。
2)程序是对象的集合,他们通过发送消息来告知彼此所要做的,可以把消息想像为对某个特定对象的方法的调用请求。
3)每个对象都有自己的由其他对象所构成的存储。
4)每个对象都拥有类型,每个对象都是某一个类(class)的一个实例(instance),每个类最重要的区别于其他类的特性就是“可以发送什么样的消息给他”。
5)某一特定类型的所有对象都可以接收同样的消息。对象具有状态、行为和标识,每一个对象在内存中都有一个唯一的地址。
类描述了具有相同特性(数据元素)和行为(功能)的对象集合,当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想像为“服务提供者”,程序本身将向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。你的目标是去创建(或者最好是在现有代码库中寻找)能够提供理想的服务来解决问题的一系列对象。着手从事这件事的一种方式就是问一下自己:“如果我可以将问题从表象中抽取出来,那什么样的对象可以马上解决我的问题呢?”
Java访问控制包含四类:public、private、protected、默认。public对于任何人都是可用的;private只对于类型创建者和类型的内部方法可用,其余任何人都不可用;protected关键字与private作用范围相当,差别仅在于继承的类可以访问protected成员,但是不能访问private成员;默认访问权限也就是包访问权限,只能供同包同路径成员访问,在包之外的成员都不能访问。
继承是以现有的类为基础,复制它,然后通过添加和修改来创建新类型,有两种方法可以使基类和导出类产生差异,第一种方法是直接在导出类中添加新方法,第二种方法是改变现有基类方法的行为,覆盖基类的某个方法,在导出类中创建该方法的新定义,使用与基类相同的接口方法,但是在新类型中做些不同的事情。伴随多态的可互换对象,一个非面向对象编程的编译器产生的函数调用会引起所谓的前期绑定,面向对象程序设计语言使用了后期绑定的概念,当向对象发送消息时,被调用的代码直到运行时才能确定,为了执行后期绑定,Java使用一小段特殊的代码来替代绝对地址调用,这段代码使用在对象中存储的的信息来计算方法体的地址。
把将导出类看做是他的基类的过程称为向上转型。把基类向下转型为更具体的类型称为向下转型,向上转型是安全的,除非确切知道所要处理的对象的类型,否则向下转型是危险的。向下转型和运行时的检查需要额外的程序运行时间,也需要程序员付出更多心血,解决方案是参数化类型机制,编译器可以自动定制作用于特定类型上的类。例如,通过参数化类型,编译器可以定制一个只接收和取出Shape对象的容器。例如,ArrayList<Shape> shapes=new ArrayList<Shape>();
容器的常见分类包含:List,Map,Set,Stack
在计算机编程中有一个基本概念,就是在同一时刻处理多个任务的思想,并发编程。
当面对各种令人眼花缭乱的解决客户端编程问题的方案时,最好的方法就是进行性价比分析。认真考虑问题的各种限制,然后思考哪种解决方案可以成为最短的捷径。
总结
过程型语言面向的是计算机,而不是你要解决的问题。OOP则不同,重要的是要正确评估自己的需求,并决定Java是否能最好地满足这些需求,还是使用其他的编程系统(包括你当前正在使用的)才是更好的选择。如果知道自己的需求在可预见的未来会变得非常特殊化,并且Java可能不能满足你的具体限制,那么就应该去考察其他的选择(我特别推荐读者看看Python,参见)。即使最终仍旧选择Java作为编程语言,至少也要理解还有哪些选项可供选择,并且对为什么选择这个方向要有清楚的认识。
标签: #java概论 #java 编程思想 #java基本思想 #java编程思想内容