Java软件设计大赛培训笔记.docx
- 文档编号:10196506
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:14
- 大小:464.78KB
Java软件设计大赛培训笔记.docx
《Java软件设计大赛培训笔记.docx》由会员分享,可在线阅读,更多相关《Java软件设计大赛培训笔记.docx(14页珍藏版)》请在冰豆网上搜索。
Java软件设计大赛培训笔记
Java培训笔记
(2012年2月15日到2012年2月25日共10天)
2月15日:
1、上课具体时间:
09:
00——12:
00(讲理论);14:
30——17:
00
2、内容:
Java基本知识复习(基本语法、面向对象)、实例演练
3、使用JDK1.5和Eclipse3.6
4、快捷键说明:
Alt+1:
提示;Ctrl+Shift+1多行注释;ctrl+1
Alt+/:
显示关键词下拉菜单
注释快捷键:
(1)单行:
ctrl+/
(2)多行:
ctrl+shift+/
5、Eclipse配置之中文帮助文档:
图1主界面
图2加载JDK界面
图3加载中文帮助文档的界面
(2)中文注释
图4中文显示注释的路径设置——去掉原路径界面
2012年2月16日星期四:
1、泛型:
可以定义泛型变量、类、接口、函数等;
定义泛型类:
publicclassGenSample
定义泛型类型:
publicUtest(Ua,Tb)
2、代码格式整理快捷键:
Ctrl+shift+F
3、键盘输入:
(1)窗口输入:
importjava.util.Scanner;
Scannerstr1=newScanner(System.in);
intn=str1.nextInt();
(2)对话框输入:
importjavax.swing.JOptionPane;
Stringstr1=JOptionPane.showInputDialog("请输入任意一个正整数:
");
intnum=Integer.parseInt(str1);
4、注释快捷键:
(1)单行:
ctrl+/
(2)多行:
ctrl+shift+/
2012年2月17日
1、集合:
(1)Set集合不允许有重复值;而List集合没有这规定。
(2)Map、Collection、Iterator
数据量很大且经常做增减则用LinkedList,不用增减则用ArrayList
(3)Map集合中的对象通过Collection访问
(4)使用集合的情况:
当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类
2、每行10个元素输出(输出集合中的元素):
Set
set.add(“”);
intcols=1;
Iteratorit=set.iterator();
while(it.hasNext()){
System.out.print(it.next()+"");
if(cols++==15){
System.out.println();//每行达到15个后自动换行
cols=1;
}
}
注意:
以上是有规律的输出(自己控制);也可以直接集合形式输出:
System.out.println(set);
2012年2月18日
今天内容:
面向对象基础、异常与保护、I/O、读写文件、递归
1、多态性:
方法名相同,参数列表不同
2、文本操作:
(1)如果读写的是字符串:
用BufferedReader
(2)如果读写高整字符串:
用DataInputStream、DataOutputStream
(3)如果进行数据量大的操作:
用BufferedInputStream(缓冲)
如:
DataInputStreamfin=newDataInputStream(newBufferedInputStream(newFileInputStream(fileName)));
3、二进制操作
4、递归:
(1)递归定义:
是指在定义自身的同时又出现了对自身的引用。
(2)递归调用定义:
如果一个方法直接或间接调用自身则成为递归调用
5、static使用:
(1)、非静态的方法可以调用静态的或者非静态的属性和方法;
(2)、静态的方法不可以调用非静态的属性和方法,因为非静态的还不一定存在,只能先构造出来后,再通过实例引用
例如在main方法中可以直接调用static的方法,调用非static方法需要先构造出类的实例,通过实例才能调用方法
(3)、不能在静态方法中访问非静态成员变量;
(4)、不能在静态方法中使用this关键字。
6、同一个包里,调用一个封装类里的方法:
类型变量=new封装类名称().封装方法;
2012月2月19日
1、java数据结构——各种算法(排序)讲解
要掌握经典常用的,掌握二叉树算法。
2、快速显示setter方法和getter方法:
封装了一个属性,将属性选中——右击——source——
3、使用charAt()方法取出字符串指定位置的字符,如:
str.charAt(下标);
2012月2月20日
1、内容:
多线程、网络编程
2、创建线程启动线程
启动线程:
AextendsThread
newA().start();
3、知道线程的排斥(synchronized——加锁),协作(wait、notify)
4、基于TCP的编程(ServerSocket、Socket):
过程:
客户端创建Socket对象(指定IP和端口号)服务器创建ServerSocket对象(从客户端获得端口)服务器接收客户端信息(accept())输入输出交换
2012年2月21日
1、贪心算法:
2012年2月22日
1、回朔法
2012年2月23日
1、讲解试题:
(1)产生随机数:
newRandom().nextInt(整数)
或Math.random()
(2)
importjava.io.*;
publicclassEx2{
/**
*@paramargs
*@throwsIOException
*问题:
*如何把键盘输入的3进制数字转换为十进制。
*三进制数就是只由1和2两个数字组成的数
*/
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
/*BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Strings=br.readLine();*/
//调用已经做好的类方法
//格式:
类型变量=new封装类名称().封装方法;
Strings=newEx03().ioin();
intn=0;
for(inti=0;i { if(s.charAt(i)<'0'||s.charAt(i)>'2')thrownewRuntimeException("Formaterror"); n+=(s.charAt(i)-48)*(int)(Math.pow(3,s.length()-i-1));//三进制转换十进制关键所在 } System.out.println(n); } } (3) importjava.util.*; publicclassEx1{ /** *@paramargs *问题: *在ABCDEF六人中随机抽取3人中奖,要求中奖人不能重复。 */ publicstaticvoidmain(String[]args) { Vectora=newVector(); for(chari='A';i<='F';i++)a.add(""+i);//将所有的字符都添加到集合a中 //将'A'转换为了字符串"A",同样方法,可以将整形1转换为"1": a.add(""+i) for(intk=0;k<3;k++) { intd=newRandom().nextInt(a.size());//从六个字母中随机产生 System.out.println(a.remove(d));//d为下标 } } } (4)用类里面的方法得到进制的转换: 十进制转换为二进制: Integer.toBinaryString(x) 二进制转换为十进制: Character.digit(x,2); 十进制转换为八进制: Integer.toOctalString(x) 八进制转换为十进制: Character.digit(x,8); 十进制转换为十六进制: Integer.toHexString(x) 十六进制转换为十进制: Character.digit(x,16); 十进制转换为其他进制都是用Integer里面的方法。 而其他进制转换为十进制用Character里的digit方法 (5)类型转换: 整数转换为字符串数值: Integer.toString(x);或: String.valueOf(x); 字符串数值转为整形: Integer.parseInt("字符串值")或Integer.valueOf(“字符串值”); (6)计算代码程序执行时间: (newSimpleDateFormat("HH: mm: ss")).format(newDate()) 2、复习基础知识: (1)输出26个字母: publicclassTest1{ /** *@paramargs *@throwsIOException *问题: *生成连续字母的程序 */ publicstaticvoidmain(String[]args)throwsIOException{ //输出数组元素是a[i]形式,而不是a chara[]=newchar[26]; for(inti=0;i a[i]=(char)('A'+i);//大写输出 //a[i]=(char)('a'+i);//小写输出 System.out.print(a[i]); } } } 2012年2月24日(最后一天) 1、经典算法: (1)递归算法: 斐波数列: 下标为n的数是多少? publicclassTest2{ /** *@paramargs */ publicstaticvoidmain(String[]args){ System.out.println(f(5)); } //staticlonga[]=newlong[51];//优化 staticlongf(intn){ if(n<=1){ return1; }else{ //a[n]=f(n-1)+f(n-2);优化 returnf(n-1)+f(n-2);//递归算法 } } } (2)动态规划算法: (3)贪心算法: (4)回溯法 2、基础练习: (1)枚举类型: enumtest{one,two}//定义一个名称为test的枚举类型(里面数据是有序的) publicclassTest2{ /** *@paramargs *枚举类型举例 *定义格式: *enum名称{有序数据} *是定义在类体外面且程序头部 */ publicstaticvoidmain(String[]args){ switch(test.one){ caseone: { System.out.println("所执行的分支是caseone分支! "); break; } casetwo: { System.out.println("所执行的分支是casetwo分支! "); } default: System.out.println("其他分支! "); } } } (2) 3、注意: 布尔值的默认值为false, 4、将集合里的每个元素转换为String类型: importjava.util.*; publicclassTest3{ /** *@paramargs */ publicStringn="100"; staticStringstr; publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Test3t=newTest3(); ArrayListal=newArrayList(); //ArrayList for(inti=0;i<3;i++){ al.add(t.n); str=(String)al.get(i); //str=al.get(i);//集合定义为泛型后就不用强制类型转换,会自动转换 System.out.print(str+"");//输出: 100100100 } } } 2012年2月25日星期六 一、类集 1、类集就是一个动态的对象数组 2、掌握三个接口: (1)Collection: Collection下存放的就是一个个对象,每次存放单个对象; 子接口: List、Set Map: 每次存放一对值: keyvalue Iterator: 输出接口,只要是集合都要去使用iterator输出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 软件设计 大赛 培训 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)