JAVA8学习路线(一)
分类:
文章
•
2024-11-04 13:58:10
前几天看JAVA网上的一些代码,感觉好像很多知识点都忘掉了,岁数大了。。。
既然如此,就从头开始学习把,有点底子应该会很快吧,如果有一起学习的朋友那就更好了,QQ:45587764,欢迎加我好友一起学习。
第一章:面向对象
面向对象是JAVA的核心,就从它开始吧。
(Obejct-Oriented Programming,OOP)就简单记住以下吧,感觉名字没什么大用处。。。
1.1 两种范式
所有计算机程序都包含两种元素:代码和数据。而且从概念上讲,程序可以围绕代码或数据进行组织。也就是说,某些程序是围绕"正在发生什么"进行编写的,其他一些程序则是围绕"将影响谁"进行编写的。这是控制程序如何构造的两种范式。第一种方式被称为面向过程模型。这种方式将程序描述为一些列线性步骤。面向过程模型可以被认为是代码作用于数据。例如:C#,C++。这里我说一下不是面向过程编程不好,只是随着程序规模和复杂性的不断增长,这种方式带来的问题就会慢慢显示出来。
为了管理程序的复杂性,大神们就发明了第二种方式,称为面向对象编程。面向对象就是围绕数据定义的一系列接口组织程序。面向对象编程的特点是数据控制对代码的访问,通过将数据作为控制实体,可以得到组织结构方面的很多好处。
1.2 抽象
面向对象编程的本质元素之一是抽象(abstraction)。我们通过抽象管理复杂性。例如,人们不会将一辆汽车想象成一系列相互独立的部分,而是将它想象成一个整体,通过这种抽象我们可以驾驶它倒某地,而不用去考虑发动机怎么去工作,刹车怎么让它停下等细节。
使用层次化分类是管理抽象的一种强有力的方式。这种方式允许对复杂系统的语义进行分层,将他们分解为多个更易于管理的部分。从外部看,汽车是单个对象。而从内部看,汽车是由几个子系统构成的:驾驶系统、制动系统、音响系统等等。如果继续细分,每个子系统是由更多特定的单元组成的。
1.3 OOP 三原则
所有面向对象编程语言都提供了用于帮助实现面向对象模型的机制,这些机制是封装、继承、多态
a.封装
封装是将代码及其操作的数据绑定到一起的机制,并且保证代码和数据既不会受到外部干扰,也不会被误用。比如一个人(笼统的比喻下) 有名字、身高、体重等等一些元素,我们现在称之为属性,名字不会影响身高,也不会影响体重,外人介绍的时候,只会说某某某的名字是多少,身高是多少等等。
java中,封装的基础是类(Class)。类定义了一组对象共享的结构和行为(数据和代码),就像是一类人的比喻。因此类是一种逻辑结构,而对象是物理实体。
当创建类时,需要指定构成类的代码和数据。类定义的数据被称为成员变量和实例变量。操作数据的代码成为成员方法,在C类语言中就是函数,既然类的目的是封装复杂性,那么在类中就存在隐藏实现复杂性的机制。类中的每个方法或变量可以被标识为私有或者共有的。类的公有接口表示类的外部用户需要知道或可以知道所有内容。而私有方法和数据只能有类的成员代码访问,所有不是类成员的其他代码都不能访问私有的方法或变量,如果想访问就必须通过公有的方法进行访问。
b.继承
继承是一个对象获得另一个对象的属性的过程。继承很重要,因为它支持层次化分类的概念。例如:我们说狗,这就是一个类,但是狗又分为多个品种,金毛、二哈、泰迪。。。每个种类都是具有自己的独立特征。在编程中如果不使用层次化分类,就需要每个品种都定义一次所有属性,这样很是麻烦,如果定义了一个Dog类,然后每个品种的狗都去继承这个Dog类,那么Dog类中的属性就可以直接继承下来。
c.多态
多态是允许将一个接口用于一类通用动作的特性。具体使用哪个动作与应用场合有关。考虑堆栈(一种后进显出的数据结构),可能有一个程序需要三种类型的堆栈,一种用于整数值,另一种用于浮点值,第三种用于字符。尽管存储的数据不同,但是实现每种堆栈算法是相同的。 一般的情况下,多态的概念经常被表达为“一个接口,多种方法”。这一位这可以为一组相关的动作设计一个通用接口。例如:狗的嗅觉就是多态的。如果狗闻到猫的气味,就会去追着猫跑;如果闻到了狗粮,就会跑向狗粮的方向。这两种情况下都是闻到气味,也就是作用于鼻子的闻到的类型!
1.4 JAVA名词
a.空白符
Java是一种格式自由的语言,所以不需要遵循特定的缩进规则,只需要在每个标记之间加入一个空白符即可。在Java中
空白符可以是空格、制表符或者换行符。
b.标识符
标识符用于命名食物,例如类、变量及其永发。标识符可以是由大写/小写字母、数字、下划线、美元符号等字符组成的任意字符序列。他们不能以数字开头,以防止与数值混淆,特别注意的是Java大小写是敏感的。
c.注释
// 表示注释一行
/* ... */ 表示区间注释
/** ...*/ 表示文档注释,这样可以生成帮助文档进行查阅
d.分隔符
() 在定义和调用方法时用于包含参数列表,也可以在算数中优先计算,在控制语句中包含表达式的值以及强制转换类型
{} 用于包含自动初始化数组的值,也用于定义代码块、类、方法以及局部作用域
[] 用于声明数组类型
; 结束语句
, 在变量中声明分割连续的标识符
. 用于引用对象的方法和属性
1.5 关键字 (这个直接复制吧,懒。。。)
