java练习程序代码.docx
《java练习程序代码.docx》由会员分享,可在线阅读,更多相关《java练习程序代码.docx(36页珍藏版)》请在冰点文库上搜索。
java练习程序代码
packageday2015_4_19;
publicclassYikes{
publicstaticvoidgo(Longn){
System.out.print("long");
}
publicstaticvoidgo(shortn){
System.out.print("short");
}
publicstaticvoidgo(intn){
System.out.print("int");
}
publicstaticvoidmain(String[]args){
shorty=6;
longz=y;
go(y);
go(z);
}
}
/*this关键字的使用*/
publicclassThisDemo2{
publicstaticvoidmain(String[]args){
Personp=newPerson();
Personp1=newPerson(30);
Personp2=newPerson("张三",20);
System.out.println(p1);
System.out.println(p2);
}
}
classPerson{
privateStringname;
privateintage;
Person(){
System.out.println(".......");
}
Person(intage){
this.age=age;
}
Person(Stringname,intage){
this(age);//构造函数之间的调用
this.name=name;
}
}
/*
this关键字的使用
需求:
定义一个功能,用来比较两个人是否是同龄人。
思路:
1,结果?
有,boolean类型
2,参数?
有,Person类型
*/
publicclassThisDemo{
publicstaticvoidmain(String[]args){
Personp1=newPerson(20);
Personp2=newPerson(25);
pare(p2);
}
}
classPerson{
privateintage;
Person(intage){
this.age=age;
}
publicbooleancompare(Personp){
if(this.age==p.age)
returntrue;
else
returnfalse;
}
}
/*
需求:
两个数字进行位置的交换
分析:
1.有结果吗?
没有结果,用void
2.有参数吗?
有,三个一个数组,两个数字
步骤:
如下所示
实现:
如下所示
*/
publicclassTestSwap{
publicstaticvoidmain(String[]args){
int[]arr={1,2,5,6,3,4,8,9,10};
print("------------------------");
swarp(arr,2,6);
Stringstr=array2string(arr);
System.out.println(str);
print("------------------------");
reverse(arr);
Stringst=array2string(arr);
System.out.println(st);
}
//数组中的任意两个数字交换位置
publicstaticvoidswarp(int[]arr,intindex1,intindex2){
inttemp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
//数组中的元素逆序
publicstaticvoidreverse(int[]arr){
for(intstart=0,end=arr.length-1;startswarp(arr,start,end);
}
}
publicstaticStringprint(Stringstr){
System.out.println(str);
returnstr;
}
//定义分隔数组中元素的方法
publicstaticStringarray2string(int[]arr){
Stringstr="";
//先将数组中的每个元素取出来
for(intx=0;x//对于数组中的每个元素利用','进行分隔
if(xstr=str+arr[x]+",";
}else{
str=str+arr[x];
}
}
returnstr;
}
}
/*以最有效率的方式算出2乘以8的结果是几*/
publicclassTestOperate{
publicstaticvoidmain(String[]args){
ints;
s=2<<3;
System.out.println("s=2*8="+s);
}
}
/*
需求:
对于一个数组进行反转
如:
{1,2,3,4,5,6}——>
{6,5,4,3,2,1}
分析:
1.定义一个数组
2.定义一个方法对数组进行反转
3.方法应该是对于数组从数组头和数组尾进行加加和减减操作,位置依次进行变换
4.方法没有返回值,用void
5.当头大于尾时就结束
步骤:
如下所示
实现:
如下所示
*/
publicclassTestArray3{
publicstaticvoidmain(String[]args){
int[]arr={12,13,56,30,21,45,87};
reverse(arr);
Stringstr=array2string(arr);
System.out.println(str);
}
//反转方法的定义
publicstaticvoidreverse(int[]arr){
for(intstart=0,end=arr.length-1;start//定义一个临时变量
inttemp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
//定义分隔数组中元素的方法
publicstaticStringarray2string(int[]arr){
Stringstr="";
//先将数组中的每个元素取出来
for(intx=0;x//对于数组中的每个元素利用','进行分隔
if(xstr=str+arr[x]+",";
}else{
str=str+arr[x];
}
}
returnstr;
}
}
/*
需求:
编写一个程序,这个程序把一个整数数组中的每一个元素用逗号隔开连接成一个字符串,
例如:
根据内容为(1,2,3)的数组形成内容为"1,2,3"的字符串。
分析:
1.定义一个方法
2.有返回值,返回值类型为String类型
3.需要用,进行分隔
步骤:
如下
实现:
如下
*/
publicclassTestArray2{
publicstaticvoidmain(String[]args){
int[]arr={20,15,23,24,56};
Stringresult=array2string(arr);
System.out.println(result);
}
//定义分隔数组中元素的方法
publicstaticStringarray2string(int[]arr){
Stringstr="";
//先将数组中的每个元素取出来
for(intx=0;x//对于数组中的每个元素利用','进行分隔
if(xstr=str+arr[x]+",";
}else{
str=str+arr[x];
}
}
returnstr;
}
}
/*
需求:
输入一个分数,获取相应的等级
90-100A优秀
80-90B良好
70-80C不错
60-70D及格
60以下全是E不及格
思路:
1.需要一个函数
2.需要if语句进行分数的等级判别
3.有返回值,返回值类型为String类型
4.有参数
步骤:
如下
实现:
代码如下
*/
publicclassTestArray1{
publicstaticvoidmain(String[]args){
print("------------------------------------");
print("该学生的分数等级为:
"+getLevel(85));
print("------------------------------------");
}
//对输入的分数进行等级判断
publicstaticStringgetLevel(intscore){
Stringstr;
if(score>=90&&score<=100)
str="A";
elseif(score>=80&&score<90)
str="B";
elseif(score>=70&&score<80)
str="C";
elseif(score>=60&&score<70)
str="D";
else
str="E";
returnstr;
}
//打印函数
publicstaticvoidprint(Stringstr){
System.out.println(str);
}
}
publicclassTestArray{
publicstaticvoidmain(String[]args){
int[]a=newint[args.length];
/*
for(inti=0;iSystem.out.print(a[i]+"");
*/
//intl=args.length;
for(inti=0;ia[i]=Integer.parseInt(args[i]);
}
intt;
for(inti=0;ifor(intj=i+1;jif(a[i]>a[j]){
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
for(inti=0;iSystem.out.println(a[i]);
}
}
/*
练习1:
判断两个整数是否相等
明确1:
函数有返回值,返回值类型为boolean类型。
明确2:
函数有参数,有两个整形的参数。
*/
publicclassTest1{
publicstaticvoidmain(String[]args)
{
booleananswer=compare(20,50);
print("answer="+answer);
}
publicstaticbooleancompare(inta,intb){
/*
if(a>b){
returntrue;
}else{
returnfalse;
}
*/
returna>b?
true:
false;
}
publicstaticvoidprint(Stringstr){
System.out.println(str);
//return;
}
}
packageday2015_4_19;
importjava.util.*;
publicclassTest1{
privateStrings;
publicTest1(Strings){
this.s=s;
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
/*Strings1=newString("hello");
Strings2=newString("world");
Strings3="";
System.out.println(s3=s1+s2);
*/
/*inta=4,b=6,c=8;
Strings="abc";
System.out.println(a+b+s+c);*/
/*intindex=1;
int[]foo=newint[3];
intbar=newfoo[index];
intbaz=bar+index;*/
/*inti=5;
intsum=i;
switch(i)
{
case5:
sum+=i;
i--;
case6:
sum+=i;
--i;
case7:
sum+=i;
i++;
}
System.out.println(sum);*/
/*inti=-100;
for(i=0;i<100;i++){
for(i=200;i>100;i--){
while(i==100){
i*=i;
}
}
}
System.out.println(i);*/
/*int[][]arr={{1,2,3},{1,2},{1,2,3,4}};
for(inti=0;i{
System.out.println(arr[i][i]);
}*/
/*inttimes=2;
Test1g=newTest1();
g.curse(times);
System.out.println(times);
}
voidcurse(inttimes){
System.out.println(times++);*/
HashSet
Test1ws1=newTest1("asd");
Strings1=newString("asd");
Test1ws2=newTest1("asd");
Strings2=newString("asd");
Test1ws3=newTest1("yes");
hs.add(ws1);
hs.add(s1);
hs.add(ws2);
hs.add(s2);
hs.add(ws3);
System.out.println(hs.size());
}
}
/*
给定一个有序的数组,问,如果向数组中插入一个元素,还要
保证该数组有序,怎么才可以找到这个插入的位置
*/
publicclassTest{
publicstaticvoidmain(String[]args){
//定义一个有序的数组
int[]arr={21,25,26,58,67,78,99};
intindex=getIndex(arr,22);
System.out.println("index="+index);
}
//定义折半查找的函数
publicstaticintgetIndex(int[]arr,intkey){
//定义三个变量,分别为头角标,尾角标,中间角标
intmin,mid,max;
min=0;
max=arr.length-1;
//对于数组中的元素与要查找的元素进行比较
//比较的条件为头角标小于尾角标
while(min<=max){
mid=(min+max)/2;
if(key>arr[mid]){
min=mid+1;
}elseif(keymax=mid-1;
}else
returnmid;
}
returnmin;
}
}
packageday2015_4_19;
publicclassShort{
publicstaticvoidmain(String[]args){
StringBuffers=newStringBuffer("Hello");
if((s.length()>5)&&(s.append("there").equals("False")));
System.out.print(s);
}
}
/*
数组排序
*/
publicclassSelectSort{
publicstaticvoidmain(String[]args){
int[]arr={1,25,36,21,24,12,39,87};
System.out.println("排序前:
");
Stringstr=array2string(arr);
System.out.println(str);
selectsort(arr);
System.out.println("排序后:
");
Stringstr2=array2string(arr);
System.out.println(str2);
}
/*选择排序*/
publicstaticvoidselectsort(int[]arr){
//定义外层循环,与之比较
for(intx=0;xfor(inty=x+1;y//判断前一个是否大于后一个元素,是的话则进行位置的调换
if(arr[x]>arr[y]){
swap(arr,x,y);
}
}
}
}
//定义数组元素之间位置交换
publicstaticvoidswap(int[]arr,intindex1,intindex2){
//定义临时变量
inttemp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
//定义字符串打印
publicstaticStringarray2string(int[]arr){
Stringstr="";
for(intx=0;xif(x!
=arr.length-1){
str=str+arr[x]+",";
}else{
str=str+arr[x];
}
}
returnstr;
}
}
/*
查表法应用
数组或者容器什么时候用?
当数据多的时候,现将这些数据存储起来,再进行使用
查表法
其实就是在使用容器。
当对需求进行分析时,发现需求中存在映射关系时,既可以使用容器。
数组:
映射关系的一方是有序的数字(角标),同时数据的个数必须是固定的。
*/
//需求:
通过用户输入的数字来获取对应的星期
publicclassSearchTable{
publicstaticvoidmain(String[]args){
Stringweek=getweek
(2);
System.out.println("week="+week);
}
//定义查表方法
publicstaticStringgetweek(intnum){
if(num<=0||num>=7){
returnnum+"没有对应的星期";
}
//创建一个表
String[]week={"星期一","星期二","星期三","星期四","星期五","星期六","星期日",};
returnweek[num];
}
}
packageday2015_4_19;
classSudo{
privateintpid;
p