第1讲 java语言与面向对象的程序设计week1 测试1、java的三大平台不包括
a、javase
b、javaee
c、javame
d、android
2、java出现于哪年
a、1990
b、1995
c、2000
d、2005
3、java的开发工具是
a、javaapi
b、jdk
c、jre
d、jvm
4、面向对象语言的特点包括:
a、封装
b、继承
c、多态
d、难维护
5、java相关的网站包括
a、java.sun.com
b、https://www.oracle.com/technetwork/java/index.html
c、java.com
d、jcp.org
6、java的运行环境叫jre
7、jdk包括jre及开发工具
8、jre包括jvm及api
9、java是跨平台的语言
10、java是一种面向对象的语言
11、java不直接使用指针
12、java的垃圾回收要由程序员自己来进行
13、java有丰富的库供我们调用
14、java程序编译的结果(class文件)中包含的是实际机器的cpu指令
第2讲 简单的java程序week2 测试1、main()的写法是public void main(string[]arg)
2、public类名与文件同名
3、package名与路径同名
4、import表示导入
5、编译程序的基本命令是javac
6、运行程序时java后面跟的是文件名
7、path表示前者是命令(javac及java)的路径
8、path是所要引用的类的路径
9、在javac及java命令行上使用-classpath (或-cp)选项可以引用别的库
10、可以使用jar来打包程序
11、jar文件中的清单信息文件中main-class表示主类
12、可以使用javadoc来生成文档
13、javap 查看类信息及反汇编
14、jar打包常用的参数是cvfm
15、运行jar时,使用 java -jar 文件名.jar
16、文档注释是用/** */
17、@param表示对方法的说明 对方法中某参数的说明
18、使用scanner的next()方法可以得到一个实数
19、用integer.parseint( s )可以用来解析一个整数
20、用double.parsedouble(s) 可以用来解析一个实数
21、add(xxxx) 可以将按钮等对象加入到frame中
22、btn.addactionlistener可以用来处理事件
23、处理事件的真正函数是actionperformed()函数
week2互评作业1、编写一个应用程序,验证以下等式是成立的: 提示:if分支语句、for循环语句的写法与c、c 是相似的。 如果能完成上面的验证,则达到基本要求(可得到基本分数8分)。 较高要求,可根据实际情况选做(可得到附加的2分):找到更多的这样的整数:一些相续正整数的立方和正好等于另一个整数的立方。 提交时,可将java程序或项目压缩后上传附件。如果有什么特殊之处(如算法比较复杂)可以在写一个说明性的文件一起放到压缩文件中。
第3讲 数据运算、流控制和数组week3 测试1、数据类型决定数据的存储方式和运算方式
2、java中的数据类型分为两大类
3、string属于引用类型
4、java中引用类型在赋值时,复制的是对象实体。
5、java中的char是一个字节。
6、java中的long是4个字节。
7、3.14是float型。
8、0b0001是二进制写法。
9、534l表示长整数。
10、java中没有无符号数。
11、java中非零即真。
12、java是大小写敏感的语言。
13、按惯例,类名首字母大写,变量名首字母小写。
14、字符串连接运算符其实是用append来实现的。
15、^表示乘方运算。
16、15/4的结果是3.75。
17、&表示短路与运算。
18、>>>表示无符号右移。
19、书写表达式要少用或不用括号。
20、javap –c命令可以反汇编代码。
21、程序的三种基本流程是顺序、分支、循环。
22、java中可以在任一表达式后面加分号构成表达式语句。
23、case后面可以跟变量。
24、循环语句有三种写法。
25、循环一般有五个要素。
26、do.while循环至少执行一次。
27、break及continue后面可以跟一个语句标号。
28、增强的for语句可以方便地遍历数组。
29、数组都有一个属性length。
30、main()的写法是public void main(int argc, string[]argv)
31、声明数组时可以直接指定数组的大小。
32、数组都是引用类型。
33、数组元素都会隐式初始化。
week3互评作业1、用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。 要求使用数组及增强的for语句。 提示:可以使用一个boolean类型的数组,所以“将某个数i去掉”,可以表示成a[i]=false。当然也可以使用其他方法。 请注意代码风格:类名、变量名的命名,以及必要注释等等; 请上传压缩后的源代码文件(为防上传失败,请同时把代码贴到文本框中)。 评分标准: 使用了数组(3分); 使用增强的for语句(2分); 筛法求素数的功能正确(5分)。
第4讲 类、包和接口week4 测试1、类(class)是组成java程序的基本要素。
2、类将变量与函数封装到一个类中。
3、方法(method)是类的功能,是用函数来表示的。
4、构造方法(constructor )与类名同名。
5、如果没有定义任何构造方法,系统会自动产生一个构造方法。
6、new表示新建并初始化一个对象。
7、方法重载(overloading)是指多个方法有相同的名字。
8、方法重载是多态(polymorphism)的一种方式。
9、一个类只能有一个直接父类。
10、继承可以实现代码重用,提高开发效率和可维护性。
11、java中的继承是通过extends关键字来实现的。
12、如果没有extends子句,则该类默认为java.lang.object的子类。
13、所有的类都是通过直接或间接地继承java.lang.object得到的。
14、继承关系在uml图中,是用一个箭头来表示子类与父类的关系的。
15、父类的非私有方法可以被子类自动继承。
16、子类也可以重新定义与父类同名的方法,实现对父类方法的覆盖(override)。
17、使用super访问父类的域和方法。
18、在覆盖父类的方法的同时,使用super可以利用已定义好的父类的方法。
19、子类在构造方法中,可以用super来调用父类的构造方法。
20、在构造方法中,使用super()时,必须放在第一句。
21、子类对象可以被视为其父类的一个对象。
22、如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。
23、包及子包的定义,实际上是为了解决名字空间、名字冲突。
24、同一包中的各个类,默认情况下可互相访问。
25、java编译器自动导入包java.lang.*。
26、类的访问控制符或者为public,或者默认。
27、将字段用private修饰,从而更好地将信息进行封装和隐藏。
28、使用setter及getter是一种好的编程习惯。
29、static表示静态的、非实例的、类的。
30、static变量可以表示全局变量。
31、如果一个类被abstract所修饰,说明这个类不能被实例化。
32、final所修饰的方法,是不能被子类所覆盖的方法。
33、final所修饰的变量,是只读量。
34、一个字段被static final两个修饰符所限定时,它可以表示常量。
35、在定义final局部变量时,也必须且只能赋值一次。
36、抽象方法在子类中必须被实现,否则子类仍然是abstract的。
37、一旦某个类中包含了abstract方法,则这个类必须声明为abstract类。
38、在类的声明中用implements子句来表示一个类使用某个接口。
39、接口类型是引用类型。
40、在接口中定义的常量具有public, static, final的属性。
41、一个文件中最多只能有一个package语句。
42、在接口中定义的方法具有public, abstract的特点(java8以前)。
43、java8中,在接口中可以有static的方法,也可以有方法体的方法。
44、enum表示枚举。
45、一个类只能实现一个接口。
46、abstract类必须包含abstract方法。
47、接口不能有父接口。
48、java中的enum是整数。
49、final abstract可以同时修饰一个方法。
50、一个文件中最多只能有一个class定义。
51、构造方法是可以继承的。
52、this和super是两个不同的对象。
53、子类不能overload与父类同名的方法。
54、字段(field)是类的属性,是用函数来表示的。
55、构造方法(constructor )的返回类型是void。
56、作何一个类,系统都会自动产生一个不带参数的构造方法。
57、方法签名(signature)包括参数的类型及参数的名字。
58、private可以修饰类、也可以修饰类的成员(字段、方法)。
59、protected修饰的成员,不能在包中访问,只能在子类中访问。
60、如果省略访问控制符,则表示private。
61、static函数中可以使用this。
62、static函数可以直接使用类名来访问,不能用对象实例来访问。
63、import static可以导入任何一个类。
64、如果一个类被final所修饰,说明这个类不能被实例化。
65、如果一个类被abstract所修饰,说明这个类没有构造方法。
week4 互评作业1、编写一个小的程序,其中定义一些接口、类、抽象类,定义它们的成员(字段及方法), 要求使用使用setter/getter, static, final, abstract,@override等语法要素,并写一个main函数来使用它们。这些类、接口可以是围绕以下选题之一 飞翔世界:来一次飞翔接力(即多个可飞翔的对象依次调用); 动物世界:来一次吃西瓜大赛; 图书馆:模拟一天的借阅过程; 学校:模拟选课过程; 等等 要求写个简要说明。
第5讲 深入理解java语言week5 测试1、局部变量是方法中定义的变量或方法的参变量。
2、局部变量存在于栈中。
3、当方法调用结束,方法中的局部变量就结束其生命了。
4、字段变量可以自动赋初值。
5、main函数也可以写为public static void main( string…argv){}。
6、不定长参数实际上可以理解为数组。
7、javap –c 命令可以反汇编java类中的指令。
8、多态是指一个程序中相同的名字表示不同的含义的情况。
9、overload是多态的一种。
10、override及虚方法调用是多态的一种。
11、虚方法调用是由对象实例的类型来动态决定的。
12、虚方法调用可以理解为方法的动态绑定。
13、static,private,final方法不是虚方法。
14、static方法调用是由所声明的变量类型所决定,与实例无关。
15、在构造方法中,如果没有this及super,则编译器自动加上super()。
16、在构造方法在执行时,令所有父类的构造方法都得到调用。
17、在构造方法在执行时,一定会调用object的构造方法。
18、创建对象时,可以用{{}}这样的语法来对字段进行赋值。
19、实例初始化,先于构造方法{}中的语句执行。
20、静态初始化,在第一次使用这个类时要执行。
21、java中自动进行垃圾回收。
22、系统在回收时会自动调用对象的finalize() 方法。
23、由于finalize()方法的调用时机并不确定,所以一般不用finalize()。
24、try-with-resources语句可以自动执行close()方法。
25、内部类中访问外部类的字段可以用“外部类名.this.字段”的方式。
26、局部类及匿名类可以访问final局部变量。
27、匿名类不取名字,直接用其父类或接口的名字。
28、匿名类在定义时就创建了一个实例。
29、在用new创建内部类实例时,要在 new前面冠以对象变量。
30、匿名类使用父类的构造方法。
31、用到界面的事件处理中可以使用匿名类。
32、匿名类经常用于做方法的参数。
33、多态是在编译时就能确定的。
34、字段是方法中定义的变量或方法的参变量。
35、局部变量可以自动赋初值。
36、对于引用型变量,传递的值复制对象实体。
37、静态初始化,在每次创建对象实例时都会执行一次。
38、实例初始化,先于静态初始化执行。
39、抽象类不能有构造方法。
40、编译器会为所有的类加一个default构造方法,即使用户已定义了构造方法。
41、虚方法调用是指编译时就决定了调用哪个类中的哪个方法。
42、java中的方法默认不是虚方法,需要用特殊的关键字才能表明是虚方法。
43、java中使用delete来清除创建的对象。
44、system.gc()方法强制立即执行垃圾回收。
45、内部类中不能访问外部类的private字段及方法。
46、匿名类可以定义构造方法。
week5 互评作业1、附件是一个模拟事件消息订阅的程序,请阅读并修改。 主要是加上一个自已的订阅者,并且该订阅者要用匿名类来实现。(基本要求占8分) 如果可以,也加上用lambda来实现的订阅者。(较高要求,占2分)。
第6讲 异常处理week6 测试1、抛出异常,使用关键字throw。
2、捕获异常,使用关键字catch。
3、error是throwable的子类。
4、getcause()可以得到异常的内部原因。
5、runtimeexception及其子类,可以不明确处理。
6、非runtimeexception及其子类,必须明确处理。
7、try-with-resource语句中自动加了close()方法的调用。
8、用户自定义异常类继承自exception类或某个子exception类。
9、assert表示断言。
10、assert后面可以跟一个boolean类型的表达式。
11、要使assert起作用,则在运行时,使用选项(-ea,或-enableassertions)。
12、单元测试是保证代码质量的一种手段。
13、现在很多java集成开发工具都提供了对junit的支持。
14、@test来标注测试函数。
15、asserteqauls表示程序要保证两个参数要相等。
16、程序中的错误通常可以分成三大类:语法错、运行错、逻辑错。
17、语法错可以由编译器发现。
18、运行时错可以由try-catch方式进行处理。
19、程序的调试包括断点、跟踪、监视等手段。
20、catch多个异常时,子类异常要排在父类异常的后面。
21、finally语句是指没有异常出现时要执行的语句。
22、如果有return语句,finally语句应不会执行。
23、逻辑错可以由编译器发现。
24、try-with-resource语句中的close()方法只有当异常发生时才会调用。
25、若父类中的方法声明了throws异常,则子类override时一定也要throws异常。
26、若父类中的方法声明了throws异常,则子类override时可以throws更一般的异常。
27、在方法的签名后面用关键字throw来声明该方法会抛出异常。
28、exception是throwable的父类。
week6 互评作业1、java的异常是比较独特的,它是程序安全稳定的重要措施。本次作业要求自定义异常并使用异常。 (1)自定义一个异常类,注意其继承自系统的异常类,并要求有构造方法; (2)使用自定义的异常:要求在一个函数中抛出异常,在另一段程序中调用这个函数并捕获异常。 评分标准: 自定义异常类,继承自系统的异常(2分); 异常类有构造方法(2分); 异常类的构造方法中有一个链接内部异常(1分); 有抛出异常(1分); 在抛出异常的方法中有声明throws异常(1分); 有异常捕获和处理(2分); 整体程序比较合理(1分)。
第7讲 工具类及常用算法week7 测试1、java.lang包是自动import的。
2、javase的源代码是开放的,我们可以阅读。
3、一个类经常需要覆盖tostring()方法。
4、任何对象都有tostring()方法。
5、任何对象都有wait()及notify()方法。
6、如果不覆盖equals()方法,则equals()方法与==的结果是一样的。
7、string对象中所包装的内容是不可改变的(immutable)。
8、字符串的 运算,实际表示stringbuffer、stringbuiler的append运算。
9、字符串的 运算,实际表示string类的append运算。
10、在循环中用字符串的 运算,要注意效率问题。
11、java.util.stringtokenizer类提供了对字符串进行分割的功能。
12、date对象的gettime()得到的是一个long长整数。
13、simpledateformat类可以用来解析日期字符串。
14、localdatetime 类的parse()方法可以用来解析日期字符串。
15、collection api中包括list、set及map。
16、list会记录元素的保存顺序。
17、map记录的是键-值对的集合。
18、dictionary记录的是键-值对的集合。
19、hashtable记录的是键-值对的集合。
20、stack的主要方法包括push及pop等。
21、map的主要实现包括hashmap及treemap。
22、set的主要实现包括hashset及treeset。
23、list的主要实现包括linkedlist及arraylist。
24、queue的主要实现包括linkedlist。
25、linkedlist类同时实现了list及queue。
26、vector类大体相当于arraylist。
27、hashtable类大体相当于hashmap。
28、for-each语句可以用于所有的collection及数组。
29、for-each语句可以用于所有的iterable对象。
30、使用binarysearch之前先要进行排序。
31、使用arrays类及collections类的方法可以进行排序。
32、sort方法中的比较器可以用lambda表达式。
33、一般在覆盖时,要同时覆盖hashcode、equals方法。
34、遍试的基本模式是在循环中用判断。
35、迭代的基本模式是while(){ x=f(x); }。
36、递归是自己调用自己。
37、回溯是常用的算法之一。
38、treemap的底层是用treeset实现的。
39、java8中的time api也是在java.util包中。
40、stack的 push方法表示出栈。
41、queue的主要方法包括push及pop等。
42、linkedlist的offer()方法表示出队列。
43、calendar对象的gettime()得到的是一个long长整数。
44、set会记录元素的保存顺序。
45、string a = "hello"; 则执行a.replace("e","f")后a的内容为"hfllo"。
46、string a = "aaa"; 则执行a.concat("bbb")后a的内容为"aaabbb"。
47、string a = "abcdef"; 则a.substring(1,3)的结果为"bcd"。
48、string 与数组一样,有一个属性叫length。
49、string a = "abcdef"; 则a.charat(3)的结果为'c'。
50、由于字符串的内部化,"abc" == new string("abc")为true。
51、stringbuffer与stringbuidler是相似的,但stringbuffer是jdk1.5以后的。
52、for-each语句可以用于所有的enumerable对象。
53、hashtable是properties的子类。
54、equals()方法与==的含义是一样的。
55、integer i = 5 实际表示integer i = new integer(5)。
week7 互评作业1、做一个简单的银行、账户演示程序。 (1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法(4分)。 (2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集合相关的类,如arraylist,最好同时使用泛型(4分)。 (3)定义一个测试类及main函数,在其中创建一个银行,开设一些账号,模拟存钱、取钱、显示余额等(2分)。
第8讲 多线程week8 测试1、线程体的本质是run()方法。
2、线程类是thread类来表示的。
3、线程体可以位于thread或runnable中的run()方法。
4、线程体可以用lambda表达式来表示。
5、java从语言级别支持多线程。
6、启动线程用start()方法。
7、多个线程可以同时执行。
8、设定线程优先级用setpriority()方法。
9、设定一个标记变量是常用的方法来决定是否结束线程。
10、并发api位于java.util. concurrent包及其子包中。
11、atomicinteger 类表示原子变量。
12、concurrenthashmap类是线程安全的类。
13、在线程中更新图形化界面,要调用swingutilites..invokelater()方法。
14、java.util.timer类可以实现按周期重复执行一定任务。
15、javax.swing.timer类可以实现按周期重复执行一定任务。
16、后台线程(deamon)不会自动结束。
17、垃圾回收线程是优先级很高的线程。
18、arraylist 类是线程安全的类。
week8 互评作业1、下面的程序可以下载多个网页文件(download方法已写好),请将它改成多线程进行下载(评分占7分),如果可能, 显示计算全部下载完成程序所用的时间(提示:new date().gettime()可以得到当前时间的毫秒数,评分占3分)。 import java.net.url; import java.io.*; class downloader { public static void main(string[] args) throws exception { final url[] urls = { new , new , new , new }; final string[] files = { "pku.htm", "baidu.htm", "sina.htm", "study.htm", }; for(int idx=0; idx
第9讲 流、文件及基于文本的应用
week9 测试
1、流可分为输入流与输出流。
2、流可分为字符流与字节流。
3、流可分为节点流与处理流。
4、字符流在处理时要注意字符编码。
5、writer类写入的是字符(char),而不是字节。
6、一个流对象经过其他流的多次包装,称为流的链接。
7、处理流的构造方法总是要带一个其他的流对象作参数。
8、inputstreamreader可以将流包装成reader。
9、bufferedreader可以调用readline()方法。
10、bytearrayoutputstream可以相当于内存流。
11、dataoutputstream可以以二进制的方式写入double。
12、objectoutputstream可以写入对象。
13、使用java.nio.file.files的readalllines()方法可以读入整个文本文件。
14、jdk1.7对nio进行了较大的改进。
15、序列化要求对象实现 serializable 接口。
16、使用流一般都要考虑ioexception。
17、使用流一般都要考虑在线程中来进行。
18、在线程中更新图形化用户界面要注意使用invokelater()方法。
19、url类可以获取网页的内容。
20、正则表达式主要的应用包括:匹配验证、分割、查找、替换等。
21、在java中,将目录也当作文件处理。
22、file对象的list()方法可以列出子目录。
23、randomaccessfile,可以实现对文件的随机读写操作。
24、正则表达式的基本写法是:字符{数量}位置。
25、正则表达式相关的类位于于javax.util.regex。
26、正则表达式中\b表示单词边界。
27、正则表达式中\s表示空白。
28、正则表达式中.表示字符出现0次或1次。
29、file对象的list()方法返回的是file对象的数组。
30、序列化(serialize)是将对象读入到内存中。
31、任何对象都可以不需要声明序列化,因为 serializable 接口没有方法。
32、system.out 为printwriter类型。
33、字符流中每个字符占两个字节。
34、inputstream类最重要的的方法是write()。
week9 互评作业
1、请改进本讲中的两个示例中的一个:“背单词”或“网络爬虫”。你可以根据你的想法来改进,以下是一些改进意见可以参考: “背单词”:界面可以再好看一点;可以去掉音标;可以改变单词显示的速度;可以增加标记生词并记到生词本中;可以增加测试的功能(单词含义可以随机选4个词的含义来让用户选择)等等。 “网络爬虫”:界面可以做成图形化界面;下载时可以判断是不是网页(其中有html标记);可以猜测网页的编码(charset);可以避免循环下载(将已下载过的网页记下来);可以处理相对地址;可以记录下来网页中得到的email地址等等。 评分标准: 程序能正常运行,使用了流或文本相关功能(5分); 程序中在示例的基础上增加了功能(4分); 程序有一定的复杂度或较好的创意或较好的界面(1分)。
第10讲 图形用户界面
week10 测试
1、swing 比awt功能更强,界面更丰富。
2、大部分swing的jxxx组件对应于awt中的xxx组件。
3、jcomponent组件都是container。
4、jframe是frame的子类。
5、applet是panel的子类。
6、swing中的顶层容器包括jframe, jdialog及japplet。
7、eclipse中可以进行可视化的窗体设计。
8、默认情况下,点击jframe的关闭按钮并不会关闭它。
9、setdefaultcloseoperation(exit_on_close);后点击关闭按钮可以退出。
10、jframe中有一个getcontentpane()方法来得到其内容面板。
11、borderlayout最多可以加五个子组件。
12、flowlayout表示流式布局。
13、jframe的默认布局是borderlayout。
14、japplet的默认布局是borderlayout。
15、setlayout(null);表示绝对布局。
16、事件监听器是一些接口,其中含有一些方法。
17、事件getsource()方法得到的事件源对象。
18、不同的监听器所带的事件参数的类型可能不同。
19、事件参数中包含有事件发生的详情。
20、事件适配器类(adapter)可以简化实现监听器。
21、不同的组件可以加同一个事件监听对象。
22、swingutilities.invokelater()方法可以在别的线程中更新界面。
23、将一个组件加上jscrollpane能实现自动滚动功能。
24、jtextpane能实现rtf文本的编辑。
25、joptionpane能实现弹出消息对话框的功能。
26、jfilechooser能实现文件选择器的功能。
27、jmenubar、jmenu、jmenuitem能实现菜单的功能。
28、jlist可以实现列表框功能。
29、jcombobox可以实现下拉框功能。
30、jcheckbox可以实现复选框功能。
31、jtoolbar可以实现工具条功能。
32、jmenuitem是abstractbutton的子类。
33、requestfocus()可以让对象获得焦点。
34、mouselistener可以处理鼠标按键事件。
35、如果要决定applet的绘制方法可以override它的paint()方法。
36、applet的可以用getparameter()方法得到环境参数。
37、运行applet必须有java的运行环境。
38、keylistener可以处理鼠标按键事件。
39、实现事件监听器不能使用匿名类。
40、所有的事件监听接口都可以用lambda表达式。
41、按钮可以使用addactionlistener来处理点击后要做的事情。
42、事件adapter是一些接口,其中含有一些方法。
43、applet的默认布局是borderlayout。
44、gridlayout最多可以加五个子组件。
45、jframe中不能直接用add()方法来添加子组件。
46、jbutton是button的子类。
47、有了swing,就不需要awt包了。
48、一个组件最多可以加一个同类的事件监听对象。
week10 互评作业
1、做一个窗体应用程序“体重指数计算器”,能根据用户输入的性别、身高、体重计算出“体质指数(身体质量指数)”,并给出是否偏胖的判断。其中,体质指数(bmi)=体重(kg)÷身高^2(m),大于24则为偏胖,更详细的判断可以在网上查查相关的资料。要求有用户界面组件(如文本框、单选按钮、按钮)、布局和事件处理。 评分标准: 是一个窗体应用程序(1分); 有按钮、文本框等组件(2分); 有布局(2分); 有事件处理(2分); 正确计算,并显示结果(2分); 总体较好(1分)。
第11讲 网络、多媒体和数据库编程
week11 测试
1、httpclient中获取网络信息可以使用request类的get()方法。
2、使用url类可以获取网络信息。
3、获取网络信息后经常需要用正则表达式来处理。
4、在eclipse中可以引用第三方的库。
5、客户端要与服务端相连,则客户端需要建立socket对象。
6、服务端程序经常需用线程来处理多个客户。
7、canvas的 paint () 方法带一个graphics参数。
8、font类表示字体。
9、polygon 表示一个多边形。
10、利用graphics类的drawimage()方法显示图像。
11、bufferedimage 对象的getgraphics() 可以得到一个绘图对象。
12、imageio类的read及write方法可以表示图像的读写。
13、播放mp3文件可以使用jmf,还可以使用第三方库。
14、使用数据库管理的数据具有共享性、独立性、完整性等优点。
15、关系型数据库中主要以二维表的形式表示数据。
16、sql是操作数据库的标准语言。
17、sql中表示查询是select语句。
18、sql中表示删除是delete语句。
19、sql中update语句表示修改记录。
20、sql中create table语句可以创建一个表。
21、sql中语句可以创建一个表。
22、jdbc中connection表示连接。
23、jdbc中statement表示语句。
24、jdbc中用class.forname()来注册驱动程序。
25、使用preparedstatement比statement更安全一些。
26、在数据库应用中要将用户输入的参数放入到sql语句中。
27、jtable需要数据模型来决定要显示的数据。
28、在数据库应用中一般应将数据访问对象dao定义成单独的类。
29、ormapping是数据库中应用中常见的技术。
30、服务端需要调用socket类的accept方法接受客户呼叫。
31、jdbc中recordset表示结果集。
32、sql中delete语句可以删除一个表。
33、sql中add语句表示增加记录。
34、jpanel的 paintcomponent() 方法带一个graphics2d参数。
35、graphics类是graphics2d的子类。
36、画一个填充的矩形,使用graphics类的drawrect方法。
37、画字符串,使用graphics类的print方法。
week11 互评作业
1、结合本讲及前面几讲的内容,编写一个具有图形用户界面的应用程序。可以是一个小游戏程序,也可以是一个日常的应用程序(如个人收支管理),也可以是一个多媒体方面的应用程序。可以任意选题,但要注意以下几点: (1)具有图形用户界面,使用jframe/jbutton等窗体及组件。 (2)具有绘图、图像或音频、视频方面的功能。 (3)具有文件读取或数据库访问方面的功能。 可以参考我们的示例,也可以参考网上的其他示例,但要求进行改进或重写,如果是改进,则要指出哪些部分是你的改进。希望你能做出有一定综合性的应用程序来。 评分标准: 程序能正常运行,具有较好的可用性(2分); 具有图形用户界面,使用swing的组件(3分); 具有绘图、图像或音频、视频方面的功能(2分); 具有文件读取或数据库访问方面的功能(2分); 具有一定的创意或总体评价较高(1分)。
猜你喜欢
- 2022-12-05 22:00
- 2022-12-05 21:49
- 2022-12-05 21:35
- 2022-12-05 21:24
- 2022-12-05 21:22
- 2022-12-05 20:17
- 2022-12-05 19:56
- 2022-12-05 19:54
- 2022-12-05 19:51
- 2022-12-05 19:21