min=i;
}
temp1=a[0];
a[0]=a[max];
a[max]=temp1;//首先交换a[0]和最大值a[max]
if(min!
=0)
{
//如果最小值不是a[0],执行下面
temp2=a[min];
a[min]=a[9];
a[9]=temp2;//交换a[min]和a[n-1]
}
else
{//如果最小值是a[0],执行下面
temp1=a[9];
a[9]=a[max];
}
System.out.println("交换后的数组是:
");
for(i=0;i<10;i++){//输出数组
System.out.print(a[i]+"");
}
}
}
题目2:
get方法和set方法
定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法
解题思路:
这道题比较简单,按照题的要求就行。
定义一个Animal类,输出它的名称和颜色。
程序代码:
publicclassAnimal{
privatestaticStringname;
privatestaticStringcolor;
publicAnimal(Stringname,Stringcolor){
this.name=name;
this.color=color;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetColor(){
returncolor;
}
publicvoidsetColor(Stringcolor){
this.color=color;
}
publicstaticvoidmain(String[]args){
Animalanimal=newAnimal(name,color);
Scannersc=newScanner(System.in);
System.out.println("请输入动物:
");
name=sc.next();
System.out.println("请输入颜色:
");
color=sc.next();
System.out.println("您选择的角色是:
"+animal.getName()+"它的颜色是:
"+animal.getColor());
}
}
题目3定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量
1.要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写。
具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。
Role类中要体现出this的几种用法。
2.从Role类派生出一个"Employee"类,该类具有Role类的所有成员(构造方法除外),并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。
同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个finalsing()方法。
3."Manager"类继承"Employee"类,有一个final成员变量"vehicle"
4.在main()方法中制造Manager和Employee对象,并测试这些对象的方法
解题思路:
按照所给的提示,写了三个类和一个测试类。
核心程序代码:
//两个构造方法
publicEmployee(Stringname){
super(name);
}
publicEmployee(Stringname,Stringsex,intage,intsalary,Stringid){
super(name,sex,age);
this.salary=salary;
this.id=id;
}
//覆盖play()方法,
publicvoidplay(){
System.out.println("员工号码:
"+id+","+"工资:
"+salary);
}
finalvoidsing(){
System.out.println("姓名:
"+name+","+"性别:
"+sex+","+"年龄:
"+age);
}
}}
题目4
品尝饮料,
1、建立一个Java抽象类Drink,应当:
a、声明一个抽象方法taste(),该方法负责输出饮料的味道;
b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:
c、声明静态工厂方法getDrink(intdrinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。
该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常。
2、建立Drink的具体子类:
a、分别建立Drink的子类:
Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);
b、实现taste()方法,要求在控制台打印各自的味道特征。
3、建立异常类DrinkNotFoundException
a、继承Exception
b、在Drink的方法getDrink(intdrinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。
c、在使用getDrink方法的类中捕捉该异常。
4、建立Test测试类,测试以上内容的正确性
a、编写main方法,通过命令行传参的方式传入某种饮料的类型。
b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。
注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法,输出该饮料的味道。
解题思路:
这道题是综合题,集中运用了所学的各种知识。
抽象类的应用,继承的应用,构造方法的应用及自定义异常处理。
程序代码:
publicabstractclassDrink{//抽象类
publicvoiddrink()throwsDrinkNotFoundException{//抛出异常
};
Stringname;
Stringfell;
abstractvoidtaste();//抽象方法
}
publicabstractclassDrink{//抽象类
publicvoiddrink(){
};
Stringname;
Stringfell;
abstractvoidtaste();//抽象方法
staticvoidgetDrink(intdrinkType)throwsDrinkNotFoundException
{}
//声明静态方法,抛出异常}
//创建Drink的子类
publicclassCoffeextendsDrink{
privateStringname="咖啡";
privateStringfell="苦";
publicvoidtaste(){//调用抽象方法taste();
System.out.println(name+":
"+fell);
}}
publicclassBear{
privateStringname="啤酒";
privateStringfell="爽";
publicvoidtaste(){//调用抽象方法taste();
System.out.println(name+":
"+fell);
}}
publicclassMilkextendsDrink{
privateStringname="牛奶";
privateStringfell="黏";
publicvoidtaste(){
System.out.println(name+":
"+fell);
}}
publicclassDrinkNotFoundExceptionextendsException{//自定义异常处理
publicDrinkNotFoundException(){
super("对不起!
没有您输入的饮料类型。
");//出现异常抛出
}}
importjava.util.Scanner;
publicclassTest{//测试类
publicstaticvoidmain(String[]args){
try{Testm=newTest();
m.getDrink();
}catch(DrinkNotFoundExceptione){
System.out.println(e.getMessage());
}}
privatevoidgetDrink()throwsDrinkNotFoundException{
System.out.println("请输入你要的饮料名称:
");
System.out.println("1:
咖啡2:
啤酒3:
牛奶");
Scannersc=newScanner(System.in);
inti=sc.nextInt();
switch(i)//运用switch语句,
{case1:
Coffec=newCoffe();
c.taste();
break;
case2:
Bearb=newBear();
b.taste();
break;
case3:
Milkm=newMilk();
m.taste();
break;
default:
thrownewDrinkNotFoundException();
}}}
题目5
定义一个含有十个元素的int型数组,找出最大元素和最小元素,并将最大元素和第一个元素交换位置,最小元素和最后一个元素交换位置,将结果输出在控制台。
解题思路:
这道题主要练习数组的应用
程序代码:
importjava.util.Scanner;
publicclassshu{
publicstaticvoidmain(String[]args){
inta[]=newint[10];//定义数组
intt,t1;
for(inti=0;i<10;i++)//循环输入是个数,代表数组中的是个元素
{
Scannersc=newScanner(System.in);
a[i]=sc.nextInt();
}
intmax=a[0];
intmin=a[0];
for(inti=0;i{
if(a[i]>max)
max=a[i];
if(a[i]{
min=a[i];
}}
t=a[0];//最大元素和第一个元素交换位置
a[0]=max;
max=t;
t1=a[9];//最小元素和最后一个元素交换位置
a[9]=min;
min=a[9];
for(inti=0;i{
System.out.print(a[i]+"");
}}
}
题目6、编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。
编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
解题思路:
创建名为Number的类,声明两个整型变量n1,n2为私有。
用构造方法给n1,n2赋予初始值。
定义加、减、乘、除4个公有成员方,并对2个变量执行运算。
最后在main方法中,创建类的对象,对其实例化,编写输入语句,从键盘输出n1,n2的值,并打印出计算结果。
程序代码:
packagep1;
importjava.util.Scanner;
publicclassNumber{
privateintn1;
privateintn2;
publicNumber(intn1,intn2){
}
publicNumber(){
this.n1=n1;
this.n2=n2;
}
publicintgetAddition(){
returnn1+n2;
}
publicintgetSubtration(){
returnn1-n2;
}
publicdoublegetMultiplication(){
returnn1*n2;
}
publicdoublegetDivision(){
returnn1/n2;
}
publicstaticvoidmain(String[]args){
Numbern=newNumber();
Scanners=newScanner(System.in);
System.out.println("请输入n1:
");
n.n1=s.nextInt();
System.out.println("请输入n2:
");
n.n2=s.nextInt();
System.out.println("和:
"+n.getAddition());
System.out.println("差:
"+n.getSubtration());
System.out.println("积:
"+n.getMultiplication());
System.out.println("商:
"+n.getDivision());
}
}
实训总结:
为期三周的实训结束了,暑假前的一周,和刚刚过去的两周。
可以说实训是对上一个学期学习成果的检验,更是提高和巩固在实训前,尽管也上了一个学期的课程,并且也做了不少的实验,但是总感觉自己的欠缺系统的整理和归纳,很多东西都给混淆了。
经过一个月的实训,所学的知识已经被梳理了一遍,很多东西都不在混淆了,思路整理清了。
学习就是一个渐进的过程,在这个过程中,我们不断的积累,不断地将我们所学到的东西转化为我们自己的,那样才是学有所成。
在实训开始特别是后两周的实训开始的时候,很多东西都给遗忘了,就连一些最基本的知识点也给混淆了。
每次遇到问题,据必须去翻书,查找资料,才能理清思路。
慢慢的,上一个学期学到的重要的知识点就都回忆起来了。
而且,通过一些专题训练,我们能发现自己的不足,从而将其弥补过来。
学习JAVA,觉对不要仅仅整天盯着语法细节,光看看是没有用的,而应该注重动手能力培养和编程思想的提高。
就好比一篇优美的文章,绝对不仅仅是作者用了多么华丽的词藻和优美的句子,而是文章的思想、意义有多么耐人寻味。
可以多做练习,多练习那些经典的列子,同样的问题可以试着用多种方法去实现,这样编程思维得到了扩展,不至于变得很死板。
经常练习是很重要的。
在这为期四周的实训中遇到了许多的问题,也因此烦躁过,但是不能,必须要有耐心,因为只有耐心才能解决问题前一周的实训,是在期末考试结束后开始的,那个时候对于所学的知识,还没有遗忘,即便是这样的情况,在刚接到老师发给的题目的时候,还是有一种迷茫,不知所措的感觉,因为,无从下手!
究其原因,还是对知识不熟练,不能够运用。
记得,为难我的第一个问题就是如何从键盘上去输入内容,大概是在平时上课的时候,没有认真听课吧,以至于刚开始就遇到困难,最后是向别人请教了一下,才知道用的是scanner,对于这个词真是有一种陌生的感觉,然后,开始查阅从图书馆借阅的资料,在电脑上面从简单的例子开始敲,模仿,慢慢熟悉它。
这只是一个开始,再看题目的时候,仍然是一点思路都没有,看着别人都能多少写一点,这难道不是对自己的否定!
可是作业总是要完成的,问别人又不可能短时间就给自己讲解,只能从网上搜了一下,看别人写的代码,总算是有一个大的轮廓,知道应该往哪方面用力了,继而开始一个一个词看,一行代码一行代码看,搞清楚为什么要这样写,目的是什么,这样写的依据又是什么,总之是,遇到不懂的地方,哪怕是马马虎虎,是是而非的清楚,也必须回归到课本,回归到资料,直到真正的弄清楚,能说出来概念性的原理!
在看了几个代码之后,开始自己着手试着写,这有让我体会到了什么叫眼高手低。
开学后的两个周实训开始老师也布置了新的作业,给了新的题目。
问题有出现了,经过两个月的空白,学的东西好像都还给老师了,又傻眼了,学习就是这样,没有很牢固的基础是不行的,不可以三天打鱼两天晒网,要自己踏踏实实认真的去解决问题。
要一步一个脚印,认认真真,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。
本次我们分别完成了二十几个简单的应用了各种java知识的程序,这些程序进一步练习了我们所学的知识,真正做到了理论与实践相结合。
在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。
所以学好java语言有很大的用处。