【读书笔记】Java语言与面向对象程序设计3:抽象封装与类
来源:互联网 发布:matlab 编程实践 编辑:程序博客网 时间:2024/06/05 07:48
1.抽象是科学研究中经常使用的一种方法,即去掉被研究对象中与主旨无关的次要部分,或是暂时不予考虑的部分,而仅仅抽取出于研究工作有关的实质性的内容加以考察。抽象分为两类:过程抽象和数据抽象。数据抽象是指把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能,性质和作用等因素抽象成不同的抽象数据类型。
2.封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起。
3.抽象数据类型用’类‘这种面向对象工具可理解和操纵的结构来代表的。
4.Java的类库是系统提供的以实现的标准类的集合,是Java编程的API(Application Program Interface)。
5.赋值号右边的New是为新建对象开辟内存空间的算符。
6.抽象类:用abstract修饰符修饰。抽象类就是没有具体对象的概念类,抽象类是所有子类的公共属性的集合,所以使用抽象类的一大优点就是可以充分利用这些公共属性来提高开发和维护程序的效率。
7.最终类:用final修饰符修饰,说明此类不能再有子类,被定义成final的类通常是一些有固定作用,用来完成某种标准功能的类。
8.域:无特殊说明,这些变量也称之为”实例变量“,它们在类定义中被申明,但在创建类的对象时才分配内存空间。实例变量的生命周期与对象存在的时间相同。
9.静态域:用static修饰符修饰,保存在类的内存区域的公共存储单元。任何一个类的对象访问它,取得的都是相同的值,任何一个类的对象去修改它时,也都是在同一内存单元进行操作。
10.静态初始化器:是由关键字static引导的一对大括号括起的语句组。与构造函数的区别如下:
(1):构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化
(2):构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行。
(3):不同于构造函数,静态初始化器不是方法,没有方法名,返回值和参数列表。
11.最终域:final修饰,修饰常量的修饰符。
12.易失域:volatile修饰,说明这个域可能被几个线程所控制和修改。
13.抽象方法:用abstract修饰,是一种仅有方法头,而没有具体的方法体和操作实现的方法,所有的抽象方法都必须存在于抽象类中。
14.静态方法:用static修饰有三重含义:
(1):调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名。
(2):非static方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己专用的代 码段;而static的方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载,不 被任何一个对象专有。
(3):由于static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理 属于整个类的成员变量,也即,static方法只能处理static域。
15.最终方法:final修饰,不能被当前类的子类重新定义。
16.public申明的类可以被所有的其他类访问和引用,没有被public申明的类只能被同一个包内的类访问和引用。
17.一个类作为整体被其他部分可见并不能代表类内的所有的域和方法也同时对程序的其他部分可见。
18.protected修饰:可以被包内的类和子类访问。private:只能被本类访问。
- 【读书笔记】Java语言与面向对象程序设计3:抽象封装与类
- 【读书笔记】java语言与面向对象程序设计1:java概述
- 【读书笔记】java语言与面向对象程序设计5:工具类与算法
- 【读书笔记】java语言与面向对象程序设计2:Java语言基础
- 【读书笔记】java语言与面向对象程序设计4:继承与多态
- 黑马程序员 Java基础_4 面向对象-抽象与封装
- 黑马程序员 Java基础_4 面向对象-抽象与封装
- java面向对象 继承与抽象类
- Java面向对象程序设计 类封装
- Java对象与类——面向对象程序设计概述
- UML视频之面向对象封装与模块化、接口与抽象类
- java面向对象之类与封装
- Java面向对象的封装与继承
- java面向对象—抽象类、接口与多继承
- java面向对象—抽象类、接口与多继承
- java面向对象—抽象类、接口与多继承
- java面向对象—抽象类、接口与多继承
- java面向对象之接口与抽象类
- POJ 3613 Cow Relays 恰好n步的最短路径
- uva 11014 - Make a Crystal(数论)
- Netty_一些概念
- leetcode: Rotate Image
- js计算器小程序
- 【读书笔记】Java语言与面向对象程序设计3:抽象封装与类
- 网易数据挖掘笔试题
- python list 排序
- Codeforces Round #153 (Div. 1) C. Number Transformation
- linux系统用户以及用户组管理
- node.js(2)
- 商城项目用拦截器实现日志管理模块
- 2013百度校园招聘数据挖掘工程师
- Ubuntu下chrome标签栏和书签的中文乱码