语言程序设计资料:Java期末考试资料_第1页
语言程序设计资料:Java期末考试资料_第2页
语言程序设计资料:Java期末考试资料_第3页
语言程序设计资料:Java期末考试资料_第4页
语言程序设计资料:Java期末考试资料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、Java程序的后缀名.Java,编译后为.class。一、第一第二章的概念二、处理GUI组件上的XxxEvent事件的步骤:(简答题)1、 首先要编写一个实现了XxxListener接口的事件监听类。2、 然后在XxxListener类和要处理的具体事件情况相对应的方法中编写处理程序代码。3、 最近将类XxxListener创建的对象通过addXxxListener方法注册到GUT组件上。4、 Xxx可以是各种不同的事件,如Window,Mouse,Key,Action等。5、 所有事件监听器方法返回的返回类型都是Void。三、 嵌套类innerclassDemo.java与非嵌套类inner

2、classDemo1.java的改写四、 P105页例题自定义异常先捕捉自定义异常,然后再捕捉算数异常,最后是exception异常。 class MyException extends Exception String message; MyException(int n) message=n+不是正数; public String getMessage() return message; class A public void f(int n) throws MyException if(n”和“” 区别的实例分析public class ShiftTestpublic static vo

3、id main(String args) int x=0x80000000; int y=0x80000000;x=x1;y=y1;System.out.println(“0x800000001 = ” + Integer.toHexString(x);System.out.println(“0x800000001 = ” + Integer.toHexString(y);运行结果如下:0x800000001 = c00000000x800000001 = 40000000十六进制与二进的对比0x8000000016 =1000,0000, 0000, 0000, 0000, 0000, 00

4、00, 000020xc000000016=1100,0000, 0000, 0000, 0000, 0000, 0000, 00002 0x4000000016 =0100,0000, 0000, 0000, 0000, 0000, 0000, 00002 程序的流程控制 :顺序结构、选择结构、循环结构、数组 为什么有数组?n 堆内存和栈内存n int x; x = new int100; x=null; 的内存状态变化情况 函数的调用函数调用的格式在函数中使用return提前返回函数调用的过程分析对象的产生Person p1 = new Person();执行完后的内存状态对象的使用创建新

5、的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员(包括属性和方法) class TestPersonpublic static void main(String args) Person p1 = new Person();Person p2 =new Person();p1.age = -30;p1.shout();p2.shout();上面程序运行的内存布局如下图 对象的生命周期 对象的比较 “=”运算符与equals()方法的区别怎样比较两个数组对象的内容是否相等 P46 构造方法与对象的创建p3=new Person(“Tom”,18) 的内存状态变化过程分析

6、 this是什么? 如果func2方法被调用 ,一定是事先已经有了一个存在的对象,func2被作为那个对象的方法被使用。 在func2内部能引用别的对象 ,同样也能引用func2所属的那个对象。在func2中,自己所属的那个对象的引用名称是什么呢? this关键字在java程序里的作用和它的词义很接近,它在函数内部就是这个函数所属的对象的引用变量。this引用句柄的存放位置每个成员方法内部,都有一个this引用变量,指向调用这个方法的对象,类中的成员方法与this之间的关系如图 函数的参数传递基本数据类型的参数传递 函数的参数传递引用数据类型的参数传递 函数的参数传递引用参数传递的一个问题分析

7、内部类在类中直接定义的内部类 嵌套类可以直接访问嵌套它的类的成员,包括private成员,但是嵌套类的成员却不能被嵌套它的类直接访问。在内部类对象保存了一个对外部类对象的引用,当内部类的成员方法中访问某一变量时,如果在该方法和内部类中都没有定义过这个变量,内部类中对this的引用会被传递给那个外部类对象的引用。内部类 在类中直接定义的内部类如果函数的局部变量(函数的形参也是局部变量),内部类的成员变量,外部类的成员变量重名,我们应该按下面的程序代码所使用的方式来明确指定我们真正要访问的变量。 public class Outer private int size; public class I

8、nner private int size; public void doStuff( int size) size+; / 引用的是doStuff函数的形参 this.size+; /引用的是Inner类中的成员变量 Outer.this.size+; / 引用的Outer类中的成员变量 内部类在方法中定义的内部类嵌套类并非只能在类里定义,也可以在几个程序块的范围之内定义内部类。例如,在方法中,或甚至在for循环体内部,都可以定义嵌套类 。在方法中定义的内部类只能访问方法中的final类型的局部变量,用final定义的局部变量相当于是一个常量,它的生命周期超出方法运行的生命周期。 Java程

9、序ArrayPassReg.javaclass ArrayPassRegpublic static void main(String args)int x = new int1;Compare1.javaclass Compare1 public static void main(String args) String str1 = new String(abc);String str2 = new String(abc);String str3 = str1;if(str1=str2)System.out.println(str1=str2);elseSystem.out.println(s

10、tr1!=str2);if(str1=str3)System.out.println(str1=str3);elseSystem.out.println(str1!=str3);结果:str1!=str2str1=str3 x0=5;change(x);System.out.println(x0);public static void change(int x)x0 = 3;结果:3pre_student.javapublic String name;public int age;public String getInfo()public class Student extends Perso

11、npublic String school;public String study()结果:类Preson是公共的,应在名为Preson.java的文件中声明类Student是公共的,应在名为Student.java的文件中声明exception in thread=”main” Java.lang.NoSuch MethodError=mainCompare2.javaclass Compare2 public static void main(String args) String str1 = new String(abc);String str2 = new String(abc);S

12、tring str3 = str1;if(str1.equals(str2)System.out.println(str1 equal str2);elseSystem.out.println(str1 not equal str2);if(str1.equals(str3)System.out.println(str1 equal str3);elseSystem.out.println(str1 not equal str3);结果: str1 equal str2 str1 equal str3Student.javaclass Person public String name=unk

13、nown; public int age=-1; /*public person()/如果不写这个构造函数,看看对类Student有什么影响。 */ public Person(String name,int age) =name;this.age=age;System.out.println(name=+name+,age=+age); PassRef.javaclass PassRefint x ;public static void main(String args)PassRef obj = new PassRef();obj.x = 5;change(obj);Sy

14、stem.out.println(obj.x);public static void change(PassRef obj)obj.x=3;结果:3 public void getInfo() System.out.println(name); System.out.println(age); class Student extends Person public String school=unknown; public void study() System.out.println(Studying); public Student() /*super();*/ super(zhangsa

15、n,15); public Student(String name,int age) super(name,age); public Student(String name,int age,String school) this(name,age); this.school=school; class TestStudentpublic static void main(String args) Student s=new Student(zhangsan,20,清华大学); /*=student;结果:name=zhangsan,age=20 Zhangsan 20Studyin

16、g s.age=16;*/ s.getInfo(); s.study(); InnerClassDemo.javaclass Outer int outer_i = 100;void test()Inner in = new Inner(); n.display();class Inner void display()System.out.println(display: outer_i = + outer_i);PassReg1.javaclass PassRefint x ;public static void main(String args)PassRef obj = new Pass

17、Ref();obj.x = 5;change(obj);System.out.println(obj.x);public static void change(PassRef obj) obj = new PassRef();obj.x=3;结果:5class InnerClassDemo public static void main(String args)Outer outer = new Outer();outer.test();/Demo2结果:display:outer_i = 100InnerClassDemo1.javaclass Outer int outer_i = 100

18、;void test() Inner in = new Inner(this);in.display(); class InnerClassDemo public static void main(String args) Outer outer = new Outer();outer.test();class Inner Outer outer; public Inner(Outer outer) this.outer=outer; void display()System.out.println(display: outer_i = +outer.outer_i);结果:display:o

19、uter_i = 100PassValue.javaclass PassValuepublic static void main(String args)int x = 5;change(x);System.out.println(x);public static void change(int x)x = 3;结果:5InnerClassDemo2.javaclass Outer int outer_i=100;void test() Inner inner=new Inner();inner.display();class Inner int y=10;void display() Sys

20、tem.out.println(display:outer_i=+outer_i);void showy() System.out.println(y);结果:InnerClassDemo3.javaclass Outerint outer_i=100;void test()Inner inner=new Inner();inner.display();static class Inner int y=10;void display() System.out.println(display:outer_i=+outer_i); class InnerClassDemo public stati

21、c void main(String args) Outer outer=new Outer(); outer.test(); /next:Outer_Inner_Value 结果:无法从静态上下文中引用非静态变量outer_iPolimophism.javaclass ATestChar.javapublic class TestChar public static void main(String args) /char c=97; /String c=5+new Integer(1)+ 2 +4+ new Long(11); int x=2; c = 1 x; System.out.pr

22、intln(c); /char ch=x; / System.out.print(ch); /byte b=129; /float f=3.5; /* byte b; int x=266;/将b改为266进行调试; b=(byte)x; System.out.println(b);*/ /* byte b=3;/表达式自动提升问题 b=b-1;/byteint System.out.println(b);*/ /* System.out.println(a+1);/charint System.out.println(+a+1);*/ 结果:a 10 双斜线/和/*都是注释 public vo

23、id func1() System.out.println(A func1 is calling);public void func2() func1();class B extends Apublic void func1()System.out.println(B func1 is calling); public void func3() System.out.println(B func3 is calling);class D extends A public void func1() System.out.println(D func1 is calling);class Cpub

24、lic static void main(String args)/*B b=new B();A a = b;*/D d=new D();A a=d;callA(a);public static void callA(A a)a.func1();a.func2(); 结果:D func1 is calling D func1 is callingTestException.javaclass Test public int devide(int x, int y) throws Exceptionif(y0)throw new DevideByMinusException(被除数为负,y);i

25、nt result = x/y;this2.javaclass AString name;public A(String x)name = x; public void func1() System.out.println(func1 of + name + is calling);public void func2() A a2 = new A(a2);this.func1();/使用this关键字调用func1方法a2.func1();class TestApublic static void main(String args)A a1 = new A(a1);a1.func2();结果:

26、func1 of a1 is calling func1 of a2 is callingreturn x/y;class DevideByMinusException extends Exceptionint devisor;public DevideByMinusException(String msg,int devisor)super(msg);this.devisor=devisor;/System.out.println(devisor);public int getDevisor()return devisor;public class TestExceptionpublic s

27、tatic void main(String args)try/int result = new Test().devide( 3, 0 );int result = new Test().devide( 3, -1 );/int result = new Test().devide( 3, 1 );System.out.println(the result is + result );catch(DevideByMinusException e)System.out.println(program is running into+ DevideByMinusException);System

28、.out.println(e.getMessage();System.out.println(the devisor is + e. getDevisor(); /return; /System.exit(0);catch(ArithmeticException e)System.out.println(program is running into+ DevideByMinusException);System.out.println(e.getMessage();catch(Exception e)System.out.println(program is running into+ ot

29、her unknowned Exception);System.out.println(e.getMessage();finallySystem.out.println(finally is running);System.out.println(program is running here ,that is normal !);结果:program is running into DevideByMinusException 被除数为负数 the devisor is -1 finally is running program is running here ,that is normal

30、 ! father_son.javaclass Apublic void func1()System.out.println(A func1 is calling);public void func2()func1();class B extends Apublic void func1()System.out.println(B func1 is calling); public void func3() System.out.println(B func3 is calling);class Cpublic static void main(String args)B b=new B();A a = b;callA(a);/callA(new B();public static void callA(A a)B b=(B)a;b.func1();b.func2();b.func3();结果:B func1 is calling

温馨提示

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

评论

0/150

提交评论