Java软件设计大赛培训笔记.docx

上传人:b****8 文档编号:10196506 上传时间:2023-02-09 格式:DOCX 页数:14 大小:464.78KB
下载 相关 举报
Java软件设计大赛培训笔记.docx_第1页
第1页 / 共14页
Java软件设计大赛培训笔记.docx_第2页
第2页 / 共14页
Java软件设计大赛培训笔记.docx_第3页
第3页 / 共14页
Java软件设计大赛培训笔记.docx_第4页
第4页 / 共14页
Java软件设计大赛培训笔记.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Java软件设计大赛培训笔记.docx

《Java软件设计大赛培训笔记.docx》由会员分享,可在线阅读,更多相关《Java软件设计大赛培训笔记.docx(14页珍藏版)》请在冰豆网上搜索。

Java软件设计大赛培训笔记.docx

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个元素输出(输出集合中的元素):

Setset=newTreeSet();

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();

//ArrayListal=newArrayList();

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输出

 

展开阅读全文
相关搜索
资源标签

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1