java期末考试复习重点必考_第1页
java期末考试复习重点必考_第2页
java期末考试复习重点必考_第3页
java期末考试复习重点必考_第4页
java期末考试复习重点必考_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第一局部 知识点复习第1章Java语言概述1、Java虚拟机是软件模拟的计算机,执行保存在.class文件中的字节码.Java虚拟机的Java解析器java.exe负责将字节码文件解释成为特定的机器代码 执行.Java编译程序将java源程序.java译为JVM可执行的字节码.clasS2、字节码字节码其实就是二进制编码,也叫伪代码.三个步骤:类转载器一一字节码校验器一一java虚拟机3、环境变量 JAVA_HOME、PATH、CLASSPATHJAVA_HOME :该环境变量的值就是javas所在的目录.PATH:该环境变量指定一个路径列表,用于搜索可执行文件.CLASSPATH:该环境变量

2、也指定一个路径列表,用于搜索java编译器或者运行时需要用到的类.例程:JAVA_HOME = djavajdk;PATH= d:javajdkbin;%path%;CLASSPATH = .;djavajdkjrelibrt.jar4、javac、java、appletviewerJavac编译器读取java源代码,并将其编译成字节代码,如 javac *.java; * 为类名;Java :解析器可用来直接解释执行jaca字节代码,如java *;Appletviewer :可以测试小应用程序applet,读取包含小应用程序的HTML文件在一个窗口运行它们,读取命令行中的URL 所指定的

3、HTML 文件,如 appletviewer *html.5、Application、AppletApplication应用程?是在计算机中单独运行,而 Applet小应用程序只能嵌入在Html网页中运行.第2章数据类型及其运算1、标识符定义在Java中标识符是以字母、下划线_、美元符号$等其它货币符号如£汪 开始的一个字符序列,后面可以跟字母、下划线、美元符号、数字等字符.合法:Body, _test, ¥ hello非法:5Test,hello*/#,class标识符是大小写敏感的,没有最大长度的限制,不能和关键字相同2、关键字所有的关键字都是 小写的,如果大写就不是关

4、键字了, java中无sizeof关键字, 所有根本数据类型的长度和表示 是确定的,不依赖执行环境,所以不需要此关键 字.3、三种注释(1)单行注释:/释内容(2)多行注释:/*注释文本* /(3)文档注释:/*注释文本*Author*/4、变量及其分类变量:类型、变量名、和值.分类:局部变量、类成员变量(静态变量和实例变量)、方法参数、异常处理参数5、常量的定义整形常量234,实型常量23.4,字符常量'a',布尔常量true和false,以及字符串常量 “hello world! , final int MAX_LOOP=5;6、Java的数据类型分类整数类型(byte,s

5、hort,int,long)数值类型1浮点类型(float,double)厂根本类型Y字符类型(char)布尔类型(boolean)数据类型一类(class)I引用类型 Y匚数组_ - , - -7、变量的类型转换(赋值相容)8、掌握一维数组与二维数组的创立方法第4章Java面向对象程序设计根底1、对象、类、抽象、封装、继承、消息、多态概念的理解答:对象一一是存在的具体实体,具有明确定义的状态和行为.类一一是具有相同属性和行为的一组对象的集合.抽象一一是去除一个事物中对当前目的不重要的细节,保存对当前目的具有决定意义的特征,形成数据抽象.封装一一把对象的属性和对这些属性的操作封装在一个单独的数

6、据结构中,并尽可能隐藏对象的内部细节继承一一是一种有已有的类创立新类得机制.消息一一是指请求对象执行某一处理或答复某些信息的要求.多态一一用相同的名字来定义不同的方法.普通类中的多态为重载,重 载是java实现多态性的方式之一2、类包括两个局部:类声明和类体答:类声明的格式如下:修饰符class类名extends超类名implements接口名列表)可能的选项有:publicabstract|final class 类名extends 超类名implements 接口名列表public公共:public修饰的类能被所有的类访问.abstract象:abstract修饰的类不能被实例化,它包含有

7、未实现的方法.final最终:final修饰的类不能被继承,即不能有子类.注意:abstract和final不能同时作为一个类的修饰符.3、类的修饰符、成员变量的修饰符、成员方法的修饰符分别有哪些?答:类的修饰符3: public 其修饰的类能被所有的类访问abstract 其修饰的类不能被实例化, 它包含有未实现的方法final 其修饰的类不能被继承,即不能 有子类注意:abstract和final不能同时作为一 个类的修饰符.成员变量的修饰符8:默认访问修饰符:其修饰的成员变量可以被同 一包中的任何类访问.public:具修饰的成员变量可以被工程文件的任 何方法访问,建议不要使用prote

8、cted其修饰的成员变量可以被子类访问.private:具修饰的成员变量只能在同一个类中使 用.static:具修饰的成员变量称为类变量 或静态变量.不加static修饰的成为实 例变量final:其修饰的成员变量又称为最终成员变 量或常量.注意:abstract和final可以同时作为一个类的修饰符transient:用来声明一个暂时性变量volatile :声明一个多线程共享变量,使 得各个线程对该变量的访问功能保持一致成员方法的修饰符9: default 默认:可以被同一包中的任何类访问.public :其修饰的方法可以由其他类访问.protected:具修饰的方法只有子类可以访问.pr

9、ivate:只能由说明该方法的类访问.static:其修饰的方法成为静态方法或类方法.无static修饰的方法为实例.方法.类方法是所有对象共享的方法.final :具修饰的方法为最终方法,不能由子类改 变.abstract其修饰的方法为抽象方法,无方法体.synchronized:其修饰的方法执行之前给方法设置 同步机制,实现线程同步.native:具修饰的方法为本地方法,即方法实现与 本地计算机系统有关.4、变量与方法的调用格式分别是什么?答:成员变量:在定义它的类内部来访问:直接通过成员变量名来访问.在定义它的类的外部来访问:类变量的访问格式:类名.类变量名类对象变量的访问格式:对象名.

10、实例变量名成员方法:类方法静态方法:类名.类静态方法名实参列表对象方法实例方法:类对象名.类非静态方法名实参列表5、创立一个对象的3个步骤是什么?答:1.对象的声明格式为:类的名字 对象名字; 例:People zhanfeizhu2.为声明的对象分配内存使用new运算符和类的构造方法为声明的对象分配内存.3.执行构造方法,进行初始化例:zhanfeizhu = new People( "876 ");以上三个步骤的简化形式: People zhanfeizhu = new People ("876 ");6、构造方法的作用是什么?答:构造方法可以保证用

11、户正确地构造类得对象,同时,构造方法也会对对 象做初始化工作.7、多态可分为重载与覆盖(重 写)两种形式.什么是重载?什么是覆盖?两 者的区别是什么?答:方法重载:指一个类中可以有多个方法具有相同的名字,但这些方法的 参数必须不同,或者参数个数不同,或者参数的类型不同或 者是返回值不同方法重写:当子类中定义了一个方法,并且这个方法的名字、返回类型、 参数个数以及类型与父类的某个方法完全相同时,父类的这 个方法将被隐藏,这种情况被称为重写了父类的方法.区别:重写是继承后重新实现父类的方法,重载是在一个类里一系列参 数不同名字相同的方法.8、理解和掌握成员变量及方法的访问权限在 Java中,可以选

12、择四种访问方式:public、 private> protected和 default.如果可由疝缺变量或成式川加定义为 public.JWH* 4 口 * E;类型,那么在同三一d口口 1 ' U J 大、U J 口1 U J 头:D 4J MW INI芯队人乂牛史J四外J 1有opacwb1ava不类、子类、同一public cl<ass Demop箫r员ub1 / put变量肺)lic修饵是必带 ,耿:的./公共类型的pubM void met忒员呼hod()D|System.out.println();如果声明一个成员变量或成员方法的访问类型为protected,那

13、么该成员变量或成员方法只能够被该类内部、子类和相同包中的类访问.【例4-11】不同包中公共类中protected修饰的方法的访问/Demopro3.Javapackage pro3;public class Demopro3/公共类型的成员变量public int a;/保护类型的成员方法protected void method()System.out.println();如果一个变量或成员声明为私有类型,那么该变量或方法只能在同一类中被访问.如例4-12所示【例4-12】私有类型变量的访问/ DemoPrivate.javapublic class DemoPrivatepublic in

14、t a; /公共类型的成员变量private int b; /私有类型的成员变量public int getA() /公共类型的成员方法 return a;private int getB() /私有类型的成员方法 return b;public DemoPrivate(int a,int b) /4勾造方法this.a = a; this.b = b;9、final、this、super null1) final修饰成员变量如果一个成员变量前面有final修饰,那么这个成员变量就变成了常量,一经赋值,就不允许在程序的其他地方修改.定义方式如下:final type variableName;

15、例如class ConstTimeExpressfinal int MaxHour=23;final int MaxMinute=59;final int MaxSecond=59;)2) final修饰方法方法的final修饰符说明方法不能被子类覆盖.带有 final修饰符的方法称 为最终方法.Java的方法除非被说明为最终方法,否那么方法是可以被覆盖的.Java 之所以这样规定,主要是由于Java的纯面向对象特性,它把覆盖当作面象对象的重要特性,给予了最大限度的实现.把方法声明为最终方法有时可增加代码的平安性.使用方式如下.final returnType methodName(param

16、List)例如:final int getLength(String s)3)final 类final类不能被继承.由于平安性的原因或者是面向对象的设计上的考虑, 有时候希望一些类不能被继承,例如,Java中的String类,它对编译器和解释器 的正常运行有很重要的作用,不能轻易改变它,因此把它修饰为final类,使它不能被继承,这就保证了 String类型的唯一性.同时,如果你认为一个类的定义 已经很完美,不需要再生成它的子类,这时也应把它修饰为final类.定义一个final类的格式如下:final class finalClassName )关键字this是用来指向当前对象或类实例的.例

17、如:public class MyDate private int day, month, year;public void tomorrow() this.day = this.day + 1;)这里,this.day指的是当前对象的day字段.或者在成员方法定义时,我们使用的形式参数与成员变量名称相同,这时我们要用到 this.例如:class Demothisint a;/成员变量public Demo(int a)this.a = a;)在Java语言标准中,null表示类或者变量是空,不代表任何对象或实例.看下面的例子SomeClass aSomeClass=nul上面的语句中,只定

18、义了类SomeClass的实例aSomeClas§但并没有为之创立任 何对象.第5章面向对象高级程序设计1、子类是如何把父类的状态和行为转变为自身的状态和行为的?答:子类通过“成员变量的隐藏和方法的重写可以把父类的状态和行为转变为自身的状态和行为.(附加)例子:下面这段程序就是这样的情况class SuperClassint y;void setY()y = 0; Class SubClass extends SuperClassint y;在SubClass类里,父类的成员变量y被隐藏,父类的方法被重写void setY()y=0;/于是子类对象所使用的成员变量 y为子类中定义的y

19、,子类对象调用的方法为子类中所实现的方法,该重写方法和父类中被重写的方法具有相同的名字, 相同的参数,相 同的返回类型2、super的使用可分为哪3种情况?试结合程序说明答:(1)用来访问父类被隐藏的成员变量(2)用来调用父类中被重写的方法程序如下:class superClassInt y;superclass ()y=30;System.out.println( "in superClass:y=' +y);Void doPrint()System.out.println( "In superClass.doPrint() );Class sub extends

20、 superClassInt y;Sub()super();y=50;System.out.println( "in sub:y=" +y);Void doPrint()Super.doPrint();System.out.println( "in sub.doPrint() );System.out.println( "super.y=" +super.y+ “sub.y" +y);)运行结果如下:in superClass :y=30 in sub:y=50 In superClass.doPrint()in sub.doPrin

21、t()super.y=30 sub.y=50(3)用来调用父类的构造方法程序如下:class A public int n; public A() public A( int n) this . n = n; int method() return n;public class B extends A public B()super (18);public static void main(String args) A a = newB();int b = a.method();System. out .println("类 A中的成员变量:"+b); 3、上转型对象的特点

22、有哪些?试结合程序说明.答:1.上转型对象不能操作子类新增的成员变量和子类新增的方法2 .上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继 承或重写的方法3 .如果子类重写了父类某个方法后,当对象的上转型对象调用这个方法 时一定是调用了这个重写的方法,由于在运行时知道,这个上转型对象的实体是子类创立的,只 不过损失了一些功能而已程序如下:class Mammalprivate int n = 40;void crySpeak(String s)System.out.println(s); Public class Monkey extends Mammalvoid computer

23、(int aa,int bb)int cc = aa*bb;System.out.println(cc); void crySpeak(String s) System.out.println(热 +s+ 热 ); Public static void main(String args) Mammal mammal = new Monkey(); Mammal.crySpeak( I love this game"); Monkey monkey = (Monkey)mammal; Monkey puter(10,10); 运行结果如下:* I love this game*100注

24、意:在main ()方法里,如果出现下面的两行代码,那是错误的 mammal.n=1000;/由于子类本来没有继承 nmammal puter(10,10); /由于 computer 方法是子类新增的 方法4、什么是编译时多态?什么是运行时多态?答:1编译时多态性由方法重载实现的静态多态性对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,那么称为 编译时多态性.2运行时多态性由方法重写实现的动态多态性如果在编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个 , 那么称为运行时多态性重写方法的调用原那么如下:java运行时系统根据调用该方法的实例,来决定调 用那个方法;

25、对子类的一个实例,如果子类重写了父类的方法,那么运行时系统调 用子类的方法;如果子类继承了父类的方法未重写,那么运行系统调用父类的 方法5、方法重写时应遵循的原那么是什么?答:1.改写后的方法不能比被重写的方法有更严格的访问权限2.改写后的方法不能比重写的方法产生更多的异常6、抽象类和接口这两者的异同是什么?它们分别是如何定义的?答:ava语言中,用abstract关键字来修饰一个类时,这个类叫做抽象类.一 个abstract类只关心它的子类是否具有某种功能,并不关心该功能的具体实现,功 能的具体行为由子类负责实现的.例如:public abstract class Drawing publi

26、c abstract void drawDotint x, int y;public void drawLineint x1, int y1,int x2, int y2 用abstract来修饰一个方法时,该方法叫做抽象方法.与 final类和方法相反,abstract类必须被继承,abstract方法必须被重写.当一个类的定义完全表示抽象的概念时,它不应该被实例化为一个对象.例如 Java中的Number类就是一个抽象类,它只表示数字这一抽象概念,只有当它作 为整数类Integer或实数类Float等的父类时才有意义.定义一个抽象类的格式如下:abstract class abstract

27、Class)由于抽象类不能被实例化,因此下面的语句会产生编译错误:new abstractClass()抽象类中可以包含抽象方法,为所有子类定义一个统一的接口,对抽象方 法只需声明,而不需实现,因此它没有方法体.其格式如下:abstrac returnType abstractMethod(paramlist)1、接口声明我们曾使用class关键字来声明类,接口通过使用关键自interface来声明.完整的接口定义格式如下:public interface interfaceName extends listOfSuperInterface )其中public修饰符指明任意类均可以使用这个接口

28、,缺省情况下,只有与该接口定义在同一个包中的类才可以访问这个接口.extends子句与类声明中的extends子句根本相同,不同的是一个接口可以有多个父接口,用逗号隔开,而一个类只能有一个父类.子接口继承父接口中所有的常量和方法.通常接口名称以 able或ible结尾,说明接口能完成一定的行为,例如 Runnable Serializable.、接口的使用一个类通过使用关键字implements声明自己使用(或实现)一个或多个接口.如果使用多个接口,用逗号隔开接口名.如class Calculate extends Computer implements Summary,Substractab

29、le )类 Calculate使用了 Summary 和 Substractable接口 郃承了 Computer类.如果一个类使用了某个接口 ,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体.需要注意的如下:1)在类中实现接口的方法时,方法的名字,返回类型,参数个数及类型必须与接口 中的完全一致.2)接口中的方法被默认是public,所以类在实现接口方法时,一定要用public来 修饰.3)另外,如果接口的方法的返回类型如果不是void的,那么在类中实现该接口方法时,方法体至少要有一个return语句.如果是void型,类体除了两个大括号外, 也可以没有任何语句.7、接口的使用需

30、要注意的几个事项.答:1.在类实现接口的方法时,方法的名字、返回类型、参数个数、参数类 型必须与接口中的完全一致2 .接口中的方法被默认是public,所以类在实现接口的方法时,一定要用 public来修饰3 .另外,如果接口的方法的返回类型不是void的,那么在类中实现该接口方法时,方法体至少要有一个return语句.如果是void型,类体除 了两个大括号外,也可以没有任何语句.8、理解内部类和匿名类的概念和作用.内部类有如下特性:一般用在定义它的类或语句块之内,在外部引用它时必须给 出完整的名称.名称 不能与包含它的类名相同.可以使用包含它的外部类的静态成员变量和实例成员变量,也可以使用它

31、所在方法的局部变量.可以定义为abstract可以声明为 private或 protected.假设被声明为static,就变成了顶层类,不能再使用局部变量.假设想在内部类中声明任何static成员,那么该内部类必须声明为static.Java将内部类作为外部类的一个成员,就如同成员变量和成员方法一样.因此外 部类与内部类的访问原那么是:在外部类中,通过一个内部类的对象引用内部类中 的成员;反之,在内部类中可以直接引用它的外部类的成员,包括静态成员、实 例成员及私有成员.匿名类是不能有名称的类,所以没方法引用它们.必须在创立时,作为 new语 句的一局部来声明它们.要采用另一种形式的new语句

32、,如下所示:new 类或接口 类的主体这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或 者实现一个给定的接口.它还创立那个类的一个新实例,并把它作为语句的结果 而返回.要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体.从技术上说,匿名类可被视为非静态的内部类,所以它们具有和方法内部声明的非静态内部类一样的权限和限制.有关匿名类的使用详见本书第12章本分内容.内部和匿名类是Java为我们提供的两个出色的工具.它们提供了更好的封装, 结果就是使代码更容易理解和维护,使相关的类都能存在于同一个源代码文件中 这要归功于内部类,并能防止一个程序产生大量非常小的类这要归功

33、于匿 名类.第6章字符串处理1、String、StringBuffer类的区别及各自的常用方法.答:区别:String类主要用来处理在程序运行初始化后其内容不能被改变的字 符串String型变量一旦经过初始化,就不能被改变了StringBuffer类主要用于完成字符串的动态添加、插入、替换等操作.String类的常用方法:1.字符用长度的计算:length()方法:可以获取一个字符串的长度.例如:String s = we are students, tom = 我们是学生;int n1,n2,n3;n1 = s.length( );/n1 的值是 15n2 = tom.length( );/

34、n2 的值是 5n3 =我的爱好.length( );/n3的值是4StringBuffer类提供了三种构造方法,其格式如下:public StringBuffer()构造一个不包含字符的字符串缓冲区,其初始的容量设为16个字符.public StringBuffer(int)构造一个不包含字符的字符串缓冲区,其初始容量由参数设定.public StringBuffer(String)构造一个字符串缓冲区,来表示和字符串参数相同的字符序列.字符串缓冲区的初始容量为16加上字符串参数的长度.2、掌握StringTokenizer类的使用方法.StringTokenizer类提供三种形式的构造函数:StringTokenizer(String str)StringTokenizer(String sb, String delim) / delim 为分隔符号StringTokenizer(String Sb, String delim, boolean returnTokens)在对一个字符串进行解析的时候,在字符串中必须包括一个用于解析的分隔符号.Java置默认的分

温馨提示

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

评论

0/150

提交评论