ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:45.90KB ,
资源ID:10949549      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10949549.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java笔记.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java笔记.docx

1、Java笔记类的首字母大写。方法,数据成员(成员变量),对象的句柄 首字母小写。package :包名全部小写面向对象的五个基本特征:1.万物皆对象。将对象想成一种特殊的变量;存储数据,有动作。可以把所有待解决的问题中的概念性组件(狗,建筑,服务等)都表示成程序里的对象。2.程序就是一组“互相之间传递消息,告诉对方该干些什么”的对象。3.每个对象都可以利用别的对象来组建它自己的记忆。由此,可以将程序的复杂性,隐藏在对象的简单性之下。继承的概念。4.对象都有类型,类(class)的概念就是类型(type)。区分类的最突出的特点就是:你能给它传递什么信息。5.所有属于同一个类型的对象都能接收到同样

2、的消息。这是个定义而非特点。对象的简洁定义:对象1)状态:有内部数据(产生状态)2)行为:有方法(因而产生了行为)3)标识:每个对象能同其它对象区分开每个对象在内存里有唯一的地址。对象,虽然都是独一无二的,但同时也是某种 “拥有相同特征和行为的对象”的类的一员。这个概念直接以class为关键字,而class也为程序引入了一种新的类型。simula:simulation language 模拟语言。类的概念:由于类描述的是一组具有相同特征(数据元素)和行为(功能)的对象,所以类实际上是一种数据结构:就浮点数来说,它也有自己的行为和特征。类和数据类型的区别在于:类是程序员为解决特定问题而定做的,而

3、数据类型是为了表示机器的存储单元而设计的。一旦创建了类,你就能创建任意多的那个类的对象,然后把他们当做待解决的问题中的元素来进行操控。/面向对象编程的挑战之一:如何在问题空间的元素与解决看见的对象之间建立一种一对一的映射。接口只管你能向对象发起什么样的请求:还必须有实现这个接口的代码,而这些代码和隐藏的数据组成了实现(implementation)隐藏实现:将程序员分为1)类的创建者(class creator 那些创建新的数据类型的人):类的创建者可以根据需要隐藏一些类的内容,防止被客户程序员修改。2)客户程序员(client programmer那些使用这些类编程的人):是为了收集各种类以

4、方便快速开发应用程序。隐藏实现是通过访问权限来控制的:1.禁止客户程序员去碰他们不该碰的东西。2.允许类的创建者能在不打扰客户程序员的情况下修改类的内部工作方式。java通过三个明确的关键字来确定类的边界:1.public:表示后面跟着的东西谁都能用。2.private:除非类的创建者使用这个类的方法就行访问,否则没人能访问到这个元素。3.protected:类似于private,区别在于继承类能够访问到protected内容,但不能访问到private内容。4.frendly:java的默认访问权限,通常称之为package权限。同属于这个package默认类能够访问任何默认类,但是出了这个

5、package就是private。复用实现:一旦一个类创建完并且测试完之后,它应该能很好的表示一段有用的代码。这个是OOP(面向对象)语言最显著的优点之一。复用代码最简单的方式就是创建这个类的对象,也可以将这个类的对象放在一个新的类中,这称之为创建一个成员对象。合成:用已有的类合成新的类(composition),如果对象是动态合成的称之为聚合(aggregation)由于继承在OOP中是如此的重要,会被反复强调,给人错觉就是:应该尽量使用继承。实际上,在创建一个新类时:应该优先考虑合成,这样更简单也更灵活,整个设计也是井井有条。积累更多经验,才能用好继承。继承:复用接口(extends关键字

6、)对象本身就是一个非常有用的概念,它把数据和功能结合在一起,让编程的角度提升到问题本身,而不再过于注重过程。当创建了一个类的时候,再创建一个类似的类的时候就显得非常的麻烦,要是将已经有的类克隆,在克隆类上修修改改。这个就是继承的功效。原先的那个类称之为(父类father class,基类base class,超类super calss),区别在于:super class 修改了,其继承它的类也会得到改变。继承的类称之为(衍生类,derived class,继承类inherited class,子类subclass ,child class)基类是为了表达:对系统中某些对象的核心思想的理解。衍生

7、类是从基类派生出来的,表达:各种实现这个核心思想的方式。当继承一个类的时,也创建了一个新类。这个新类不仅包含了已有类的所有成员(尽管private成员已经隐藏起来了,是不能访问的),更重要的是它复制了基类的接口,于是所有能够传给基类的消息也都可以传给派生类。根据一个类能够接受什么消息来判断这是什么类,因此这就意味着派生类和基类是属于同一类型。既然基本和派生类具有相同的基本接口,那么这个接口背后就必须跟着实现:也就是当对象收到某个消息的时候,它必须能执行一些代码。如果你只是继承了这个类,其他什么都不做,那么基类的方法会直接带到派生类。有两种方法来区分派生类和基类:1)直接往派生类里加新的方法,这

8、些新的方法不属于基类的接口。这种简单原始的继承方法常常是解决问题的完美方案。2)覆写(override)也是更重要的区分方法是在新的类中修改基类的方法把基类和派生类这种关系称作是(is-a)关系。“园是一种形状”。也可以是(is-like-a)。可凭借多态性相互替换的对象:后绑定(late binding):当向某个对象发送了一个消息之后,不到运行时,系统不能确定到底该调用哪段代码。编译器只保证这个方法存在,并且检查参数和返回值的类型(不这么做的语言属于弱类型weakly typed),但是它并不知道具体执行的是哪段代码。要进行后绑定,java用了一些特殊代码来替代绝对调用。代码用存储在对象中

9、的信息来计算 “方法”的地址,因此每个对象的运行方式会根据这段代码的内容而改变。当你向那个对象发送一个消息时,对象实际上知道该如何处置。动态绑定是java的缺省行为。因此无需添加额外的关键词就能获得多态性!要展示多态性:要单独写一段会忽略类型的具体信息,而只跟基类打交到的代码上传(upcasting):把派生类当作它的基类来用的过程,当你向对象发送消息的时候,即便是上传之后,这个对象也会做出正确的反映。abstract基类和interface通常在有些设计方案中:让基类去表示由其派生出的类的接口也就是不让他人创建一个基类的对象,而只是向把对象上传给它,以期能使用这个类的接口。这个时候使用abs

10、tract关键词来把这个类做成抽象类,编译器会阻止任何人创建abstract类的对象这是个用来强化设计的工具。abstract关键词也可以用来表示这个方法还木有实现就像一个声明:由这个类所派生的所有的类都有这个方法,但是它的实现不在原super类 的一个存根。abstract方法只能存在于abstract里,如果有个类继承了这个abstract类:1)实现这个抽象方法.2)也是一个抽象类。abstract方法能让你将方法放到接口而不必为它写一些无意义的代码。interface关键词更是对abstract类的概念的深化:它不允许你实现任何方法。interface是个很趁手也很常用的工具,因为它能

11、彻底地将接口与实现分离开来,如果你愿意,还可以继承多个接口,因为要继承多个常规或是抽象类是不允许的。对象的创建(new),使用和生命周期从技术角度而言:OOP只包括抽象的数据类型,继承和多态。还有一个重要的问题:对象它是如何创建的,又是如何消亡的,用来表示对象的数据是存储在哪里的,又该怎样控制其生命周期?1)C+的做法是强调效率是第一位的:它让程序员自己去选择,为了获得更快的运行速度,可以在写代码的时候决定将对象放在栈里(有时会被称为automatic或scoped的变量)或是静态的存储区域。 这个方法把分配和是否存储空间的速度放在第一位,在某些场合下是有价值的,但是这样做牺牲了灵活性。2)j

12、ava在一个被称之为堆的内存池里动态创建对象:只有到了运行时,你才可以知道对象的数量,寿命以及其确切的类型。如果你要一个新的对象,可以在要用它的时候,在堆中直接创建一个。(在栈中分配存储空间通常只需要一个汇编指令,把栈指针向下移就行了,想把指针指回来也只要一条指令,而堆的存储分配则取决于存储几只的设计)这种动态的方法是建立在这样的一个合理的假设的基础上的:对象都比较复杂。所以与创建对象相比分配空间,释放空间这点开销不会对性能造成很大的影响。此外,更高的灵活性对于解决更为通用的编程问题也是很重要的。3)java为不同的任务提供了不同的容器:a) 好几种list类(以持有线性序列)b) Map类(

13、也称之为关联性数组association arrays,将一个对象同另一个对象关联起来)c) Set类(不持有两个相同的对象)d) 有些容器类还包括队列,树,栈。所有容器都能让你放东西进去,拿东西出来;通常有将元素放入和元素取出的方法,danshi单根继承体系创建对象:String s = new String (abcd)表示给我创建一个新的String,而且还用字符串参数告诉它“如何”制作这个Strin其中s为reference:句柄,存放在栈中。java编程基本上就是创建类。数据存放在哪里? 1。寄存器(registers)这是反映最快的存储,处在处理器里面,由编译器进行分配。 2。栈(

14、stack):位于常规内存区,处理器可以通过栈指针对它进行直接访问.对象的句柄存放在栈里,但对象本身并没有放在栈里。基础类型也存在栈中,可以提高效率。 3。堆(heap):这是一段对用途的内存池(也在内存里面),所有的java对象都保存在这里。堆的优点是:分配空间的时候,编译器无需知道该分配多少空间,或者这些数据毁在堆里呆多长时间。 4。静态存储(statis storage):静态的含义就是“在固定的位置”(尽管它还是在RAM里面),静态存储里面的数据在整个程序的运行期间都能访问到。 可以用static关键字来指明对象中的某个元素是静态的,但java对象本身是绝对不会放到静态存储中区的。 5

15、。固定存储(constant storage):常量值通常直接放在程序里,这样他们就不会被改动了,因而也更安全。 6非内存的存储(Non-RAM storage):如果数据完全独立与程序,那么即使程序不运行,它也应该也还在;即使程序失去了对数据的控制,它也仍然还在。例子:流对象(streamed object):一种会被送往另一台机器,由对象转化而成的字节流。 “persistent”对象:保存在磁盘上,能在程序中止后仍保存对象状态的文件。 这类存储的奥妙就在于,对象被转化成了某种能保存在其他介质上的东西,但是要用的时候,又能在内存里重建。特列:primitive(原始)类型 用new创建对象

16、-特别是想简单变量之类的小对象的时候,效率不是很高,因为它们都放在堆里。对于这类原始数据,java承袭了C和C+的办法。 也就是说,这个变量不是用new来创建的,相反,这里所创建的是一个“非reference”的自动变量。这个变量保存着值,并且存储在栈中,因而效率会比较高。所有的数字型都是带符号的。primitive类型的“wrapper”类允许你在堆里创建一个表示这个primitive型的数据的对象。这个对象不是primitive型的。char c = x;Charcater c = new Charcater(x);java还包括两个能进行高精度算术运算的类:BigInteger(任意精度

17、的整数) and BigDecimal(任意精度的浮点数)虽然也勉强可以算作是“wrapper”类,但是木有那个primitive类型能和这两个类想对应。作用域(scope):决定了在这个作用域里定义的变量的可见性与生命周期。int x = 12;int q = 96;在作用域中定义的变量只能用到这个作用域的结尾。int x = 12;int x = 96;这个写法虽然在C和C+里是完全合法的,但是不能在java里这么写。java、的设计者认为这会导致令人费解的程序。对象的作用域:java对象的生命周期同primitive的不同,当你用new创建java对象之后,它会晃荡到作用域外面Strin

18、g s = new String(abcd)s这个reference会在作用域结束之后消失,但是s所指的那个String仍然还占这内存。在这段代码里,你已经没法访问这个对象了,因为唯一指向它那个的reference现在已经出了作用域。java有个垃圾回收器(gabage collentor),它会看着所有用new创建的对象,并且还会知道其中的哪些已经木有reference智者乐,然后它会释放那些木有reference指着的对象所占有的内存。创建新的数据类型:类class ATypeName可以用new来创建这种类型的对象:ATypeName a = new ATypeName();当你定义类的

19、时候(java编程要做的就是定义类,创建这些类的对象,然后再向这些对象发送消息)可以往类里放两种元素1)数据(field,有时候也称作沈佳怡成员)2)方法(method,有时候也称作成员函数)primitive成员的缺省值:只有在“变量被用作类的成员”时,java才能确保它获得这些默认值,这样就确保了primitive的类的成员肯定能得到初始化!“本地”变量也就是非类数据成员的变量,就享受不到这种保障了。 在java中,方法决定了对象能接受那些消息。唯一标识一个方法 1)方法的名字 2)方法的参数列表int x = a.f();调用方法通常被称为向对象发消息。f()就是消息,a就是对象。面向对

20、象的编程通常被简单的归纳为“向对象发消息”参数列表:方法的参数列表会告诉你应该向方法传哪些信息,按照java“万物皆对象”的法则,这种信息也该是以对象的形式出现的,所以实际上参数列表就是传给方法的对象的类型和名字。不管哪种情况下,java传递对象的时候,实际上是在传reference,因此reference的类型必须正确!return有两个作用: 1.它会告诉你方法要返回哪个值(如果不是void返回型的)2它会立即返回那个值。程序就像是一堆带着方法的对象,而方法又都拿其它对象作参数,并且向其他对象发消息。构建java程序static关键字:通常创建类的时候,你只是在定义这类对象会长什么样子,会有什么行为!除非用new创建一个那种类的对象,否则什么也得不到,只有创建了对象,它才能分 配到内存,方法也才能用。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1