JAVA考试学习资料整理.doc_第1页
JAVA考试学习资料整理.doc_第2页
JAVA考试学习资料整理.doc_第3页
JAVA考试学习资料整理.doc_第4页
JAVA考试学习资料整理.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

字符型 字符:char (16位) Note:(Unicode和ASCII的区别) 1. Unicode码定义的国际化的字符集能表示迄今为止人类语言的所有字符集 - 可移植性 从ASCII 0127拓展到Unicode 065536 char a=88;/ASCII码X char b=B; char c; 2. ASCII可放在单引号内 a Example: P.14变量的声明 先声明后使用 Datatype identifier =value ,identifier =value ; 赋值时类型要一致例如, float x, y, z; int d=5, e, f=8; char ch=y;变量的作用域概念: 变量的作用域:变量的作用范围 语句:一行以分号“;”结束的代码 程序块:包含在一对“”、“”之间的代码集合Principle:1、局部变量,作用域外不可见的;外部作用域定义的变量,内部作用域可见。Example:局部变量示例1 2、局部变量在作用域内被创建,离开作用域被撤销。 Example:局部变量示例23、内外部作用域变量不能重名。 Example:局部变量示例3变量的初始化 当声明一个Java基本数据类型时,会在内存中分配对应的空间 (声明+初始化同时进行) 当声明一个非基本数据类型时,如String,自定义的class等时,声明这些变量时仅是引用,而未分配空间。 对未分配空间的变量,采用先声明(引用)后初始化(分配空间)public String s;s= new String (Hello!);类型自动转换 (隐式转换)条件1. 类型兼容;2. 目的类型范围来源类型 拓宽转换 byte - int int - float 数值类型兼容;数值、布尔、字符不兼容;数值类型内部整数和浮点类型是彼此兼容的。byte Round=5;int hello=Round;强制转换(target-type)value 信息损耗 目的类型范围10)if (denom!=0) & (num/denom10) /falseif (c=1 & e+ 循环次数可知 for(initialization; condition; iteration) /循环体 for内定义变量作用域:for循环内 for内多变量初始和迭代 控制for循环的条件可以是任何布尔表达式 Initialization、 iteration可为空 while - 循环次数不确定 while (布尔表达式) 语句或块; Example P.32 (while循环示例) do while - 做了再说do 语句或块;while (布尔测试)特殊循环控制 break1、switch中2、退出一层循环3、break label -跳出label所在的循环,结束 (直接这个循环就不做了) 理想的goto语句Label: 语句 continue1、跳出本次循环 (偷懒)2、continue label -跳到label所在循环的下一次迭代label: 语句标准输入输出 System类管理标准输入输出流和错误流。 System.out:把输出送到默认的显示设备(通常是显示器) System.in:从标准输入(键盘)获取输入 System.out.println, System.out.print是标准输出的语句。单字符输入、输出import java.io.*; public class OneCharInOut public static void main(String args) char c= ; System.out.print(Enter a character please:); try c=(char)System.in.read(); catch(IOException e); System.out.println(Youve entered character:+c); 单字符输入输出说明 System.in.read()1) 读键盘,读到的是ASCII值 0255;2) char与int的强制转换关系-ASCII值 e.g. char 0 int 48; char 9 int 97;3) 想输出字符,需强制转换(char)c;4) 方法体内使用try catch处理异常。面向过程程序设计思想 “自顶向下,逐步细化”的设计思路。 编写步骤: Step1. 定义所要实现的功能;Step2.把功能逐步细化,一直细化到最终的代码段, 为实现代码的重用,代码被组织到函数或过程中,在这种设计模式下,把数据和过程作为相互独立的实体。 局限性:忽视了数据与程序之间的内在联系。面向对象程序设计思想 对问题进行自然分解,按照人们习惯的思维方式建立问题领域的模型 把事物用对象来描述 具体的对象用两个特征来描述:成员变量,以及对这些变量进行的操作(方法)。 不控制数据流,关注设计和实现对象(Object),在客观世界中指每一客观实体,如一本书,一台机器等。“对象是存在的具体实体,具有明确定义的状态和行为。”类“类是具有相同属性和行为的一组对象的集合” 在客观世界中,类是许多具有相同特征事物的总称,如:人类; 类以共同特性和操作定义实体 类是用于组合各个对象所共有操作和属性的一种机制类和对象的区别类定义实体,对象是实际的实体,类是概念模型, 定义对象的所有特性和所需的操作,对象是真实的模型,类是对象的原型,所有属于同一个类的对象都具有相同的特性和操作。属性“在类中表示对象或实体拥有的特性时称为属性 ” 事物的特性在类中表示为变量 每个对象的每个属性都拥有其特有的值 属性名称由类的所有实例共享方法“对象执行的操作称为方法。”操作的实际实现,方法指定操作对象数据的方式,如何执行所请求的操作的规范,在得到操作请求时指定如何做的算法。消息传递“消息指一个对象为执行某项特定操作而向另一个对象发送的请求” 方法调用封装“隐藏属性、方法或实现细节的过程称为封装。” 信息隐藏,隐藏对象的实现细节,不让用户看到 将东西包装在一起,然后以新的完整形式呈现出来 例如,两种或多种化学药品组成一个胶囊 将方法和属性一起包装到一个单元中,单元以类的形式实现数据抽象“根据具体的应用抽取出类的相关关属性和操作。” 抽取出关键数据 抽取出属性和方法类的继承 类层次结构中,相对上层的是超类,相对下层的叫子类。 继承性(Inheritance)指对象继承其所属类定义的数据和数据操作,或者子类继承其所属超类定义的数据和数据操作。重载n 是指一个程序中同名的不同方法共存的情况;n 提高抽象程度多态n 多态性是指父类的某个方法被子类重写时,可以各自产生自己的功能行为,从而展现多态性;n ps:与重载区别在于是在多个类中所表现出的特征。Java中类的描述 语法class /类的声明 /类体其中,class 是创建类所使用的关键字, 是类的名称, 包含属性和方法。类的声明详细描述 modifiersclass ClassName extends SuperclassNameimplements InterfaceList 类修饰符: 类的访问权限修饰(public, private), 其他修饰(abstract, final), 不用; 继承父类: extends SuperClassName 实现接口: implements InterfaceList 默认状态:default class, 非final class, 不调用任何interface, 父类为Object等。类体声明中的方法语法 ( , ,) 其中, 是方法返回值的数据类型 是用户自定义的方法名称方法的参数列表是一组变量声明。共有两类方法;一是main()方法,另一是普通方法。 实例方法可使用圆点符号来访问 方法被调用的对象在圆点左边,而方法的名称在圆点右边 例如: Obj.isAvailable();类的构造 构造函数(方法):为从这个类新创建的对象分配内存空间和进行初始化。(目的:分配空间,并且变量的初始化) 每次new创建对象时,系统自动调用构造方法。 不能有独立的方法名字,只能有入口参数,没有返回值。 类的名字作为构造方法的名字。 默认的构造方法:不带入口参数。 根据提供入口参数确定具体构造函数类的实例化 对象生命周期:创建, 使用, 释放; 对象从类中创建; 创建对象:step1.定义对象, step2.建立对象, step3.初始化对象;定义、建立、初始化对象 Sdate(int m,int d,int y) 参数化构造方法n 定义对象: type name; Sdate S1,S2;Example: Rectangle myRectangle S1=new Sdate(11,27,1969);n 建立对象: S2=new Sdate(3,3,1973); 实例化 分配内存, 返回内存地址参数 Rectangle(int v1, int v2); S1=new Sdate(); new Rectangle(10, 20); 如果方法体中未给出构造函数,则为隐式构造n 初始化对象: 构造函数内初始化。 Rectangle myRectangle=new Rectangle(10,20);This this:引用当前对象; 当参数名与类中变量名重名时,或调用类中其他构造函数时使用。 理解:this是指向当前对象本身的一个指针;成员变量定义n 变量属于类,或属于方法变量的作用域决定;n 课本P 39.n 类的成员变量:放在类体中,不能放在方法体中;实例变量n 每个对象均有自己副本n Example:int age; /不同对象不同age静态(类)变量p55n 被所有对象实例共享,只有一个副本(共享变量);n 属于类n 不需要创建类的实例就可以访问;n static修饰常量n 不可改变,习惯用大写字母表示n finaln Example:final double PI = 3.14159;类的成员方法n 成员方法是类的行为;方法修饰符 返回值类型 () throws n 修饰符:访问修饰符public、protected和private,非访问修饰符static、abstract、final、native 和synchronized等静态方法n 静态方法(类方法): static;n 与类关联,属于整个类,无需创建类即可使用;n a)静态方法只能直接处理静态变量,b)对于实例变量,需要新建对象,间接处理,不能直接处理;n a)静态方法只能直接调用静态方法,b)对于非静态静态方法,同样需要新建对象,间接调用(同理);n 静态方法引用实例变量编译错误;n main函数静态方法。Ps. 与“静态变量”中的“静态”一致实例方法P56n 实例方法: 未用static修饰;n 与实例对象关联,针对对象执行;Ps. 与“实例变量”中的“实例”一致抽象方法n 抽象方法: abstract;n 只有方法头,没有方法体;n 需要子类去实现抽象方法。n 课本 P.75 (抽象方法示例)1、抽象类: a、包含抽象方法的类;b、指抽象概念,不能被实例化2、toString:a、每一个基本类型的对象都有一个toString()方法,编译器需要一个String而只有对象时,该方法被调用;b、输出该类的对象字符串时可直接写对象名;c、调试时可用。 抽象类:abstract修饰 与抽象方法一致; ps: 抽象概念,无实例概念;建立抽象概念时使用 不能被实例化; abstract类必须被继承、重写; abstract class ClassName 抽象类一般包含抽象方法;有抽象方法必须定义为抽象类。最终方法p72n 最终方法: final(终审判决!);n 功能和内部语句不再更改;n 子类不能重定义与父类同名的方法,只能使用从父类继承来的方法,从而防止了子类的不当重定义。形参和实参n 通过方法参数传递的是形参,不改变实际值;n 新建类,利用类变量实现实参功能;n 参数中传递类的实例对象;n 课本P52、P53(修改成员变量)、Example (形参实参综合实例)成员方法重载p42n 方法重载:多个方法享有相同的名字,但参数(个数或类型)不同;n 返回类型不能区分重载方法;n 多个构造函数是重载方法;n 参数类型的区分度要足够,不能是同一简单类型的参数,如:int与long。类的继承n 继承:允许程序在保持原有类的属性与行为上,进行更为具体、更加详细的定义,以完成复杂的应用;n 继承:新的类从已有类那里得到已有特性;n 从另一角度看,从已有的类产生新类的过程就是类的派生;n is-a .(纵向联系)类的继承设计思想n 利用类的继承进行程序设计时,可以先定义一个包含公共变量和公共方法的类作为父类。再在此基础上,创建具有自身变量和方法的子类。n 子类一方面可以增加父类中没有的变量和方法;另一方面可以在继承的基础上重新定义父类中已有的变量和方法。 类的继承p68/67 格式: 子类名称 extends 父类名称 说明:1、JAVA中的继承通过关键字extends来实现。 2、子类可以从父类中继承所有非私有修饰符的成员变量和方法作为自己的成员。 3、子类中增加父类中没有的成员变量和方法。 4、单继承,只有一个直接父类。 对于继承非私有(private)修饰的成员变量(域)和方法。 1、成员变量:不同名,子类从父类中继承。同名,子类隐藏父类的同名变量。(ps:如何重新取出父类同名变量? super.同名变量) 2、方法:不同名,子类从父类中继承。同名,子类覆盖父类的同名方法。super:引用当前对象的直接父类。调用父类的构造函数(目的:想要初始化父类成员变量)(往往在构造函数中用) 或 当 子类变量隐藏父类同名变量时,希望重新取出父类同名变量 时使用 理解:super指向当前对象的直接父类的指针。类构造函数原则 super调用父类的构造函数,可带参数或不带参数。 如构造函数第一个语句没有用super,则编译器默认调用父类的不带参数的构造函数。此时要求父类中存在不带入口参数的构造函数。 如构造函数第一个语句用this调用该类其他构造函数,则编译器不再默认调用父类的构造函数。成员变量、成员方法的访问权限 p64 同类:自己;子类:子孙;同包:同国家;全局:全人类多态性p74 多态性是指“多种形式” 它使用相同的方法名,不同的实例而执行不同操作为什么要用接口 (1) 接口能解决的问题:需要多继承的情形; ps: 继承不能解决。 (2) 通常是这些类的属性:-able, eg. Runnable, Printable, Comparable 。接口 接口声明:public interface interfaceName . class A implements interface1, interface2; ps: 跟类声明完全类似,区别多继承; public:全局可访问;无public(默认): 同包可访问。 ps: 跟类的访问权限一致。接口的定义 (1) 接口:interface; (2) 接口体:常量和方法两部分。 (3) 接口中定义的变量是最终的静态变量(常量); (4) 接口没有自身构造函数(因为不是类),方法均是抽象方法,即只提供方法定义,而不提供方法的实现。 (5) 接口采用多重继承机制, ps: 与类的单一继承不同。 (6) 接口可看成是特殊的抽象类。接口设计思想目标:设计公共汽车、出租车、电影院三个类;类实现空调情况、收费情况两个接口。接口和抽象类区分 一致性:都使用抽象方法; 抽象、不可实例化的概念用abstract class,eg. 形状 用于类型隐藏; 区别1:abstract class可以有变量、非abstract成员方法;interface仅有常量、abstract成员方法interface可以看作特殊的abstract class。 区别2:abstract class单继承;interface多继承。 区别3(设计理念):abstract class是继承,具有is-a关系,概念本质相同,interface不要求(一般是-able,即性质)。特殊的类(超类):Object 所有类的父类; 方法: 1、public类型:toString(对象转换为字符串)、equals(对象是否相等)、getClass(返回对象的类)、hashCode(返回对象的Hash码)、notify(用于多线程)、notifyAll(用于多线程)、wait(用于多线程); 2、protected类型:clone(对象克隆)、finalize(销毁对象时的清理)。toString()方法p121 返回文本化描述当前对象的String 数据(需要转换时自动调用); 类名后跟“”和该对象hash 码的十六进制表示,eg: Father1fb8ee3; ps: Hash码是将一个对象经过某种运算后,产生一个和它唯一对应的Hash数值。 equals()方法 比较当前对象和以参数传递过来的对象; 如果它们是相同对象(不仅是相等,而且必须是同一个对象),则返回true; 如果它们是不同对象,即使两者的数据成员相等,也返回false; String类重写equals()方法,内容相同即equals is ture;而使用“=”来判断指向相同对象(内存地址相同)。包 包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件 有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突 包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类 “包将类名空间划分为更加容易管理的块,包既是命名机制也是可见度控制机制 ”package mypackage 声明包import mypackage.Calculate 导入包 目的:Java将相关的类组成包,有助于大型软件系统的管理; 包的建立:package .子包名; eg. package .zju.nit.graphics; 通过package 语句,将相应的类或接口放入package所声明的包里。包是相关类和接口的集合,提供了访问级别控制和命名空间管理。 通过创建和使用包,可以方便程序员确定类和接口的相关性情况,方便找到提供特定功能的类和接口。eg. 与画图有关的类和接口在graphics 包中。包的使用方法 每个源文件只能有一个包声明,放在源文件的开始位置。 如无包声明,则放入默认包。包的层次由点分隔。包的命名方式 包提供了新的命名空间; 在不同包中,可以使用相同名称的类; 类的全程限定名包含了类的各层包名; Java建议反转Internet域名为包名; 如域名为:,包命名可以.zju.nit开始,例如 建立包.zju.nit.timer, 创建类.zju.nit.timer.Time。访问包成员 对于包来说,只有它的public 成员可被外界访问。若外界想要访问包的public 类,有3种方式可以实现: (1) 通过类的全程限定名访问该类; .zju.nit.graphics.Graphic aGraph = new .zju.nit.graphics.Graphic(); ps. 如果某个类只被访问一次,那么可以直接使用类的全名。 (2) 通过import 语句导入该类; 导入指定类:import .; (3) 通过import 语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论