if((int)c[i]%2==0){
even++;
sume=sume+(int)c[i]-48;
}
else{
sumo=sumo+(int)c[i]-48;
odd++;
}
}
System.out.println("奇数共有"+odd+"个\n"+"奇数和为"+sumo);
System.out.println("偶数共有"+even+"个\n"+"偶数和为"+sume);
scan.close();
}
}
二、Java的面向对象特性
1、实验目标:
掌握面向对象的编程方法;掌握Java的面向对象特性;掌握采用面向对象技术构建系统的一般方法。
2、实验要求:
编写一个程序,程序提供对图形的绘制功能(模拟绘制,采用文本输出的形式表现绘制内容):
1.构建所有图形的父类:
Shape,该类中定义图形的基本属性及方法。
2.构建基本图形类:
矩形(Rectangle)、圆(Circle)、正三角形(Triangle)。
3.可通过多态实现对任意图形的绘制。
//上塑型
4.定义静态方法,该方法可以对传入的对象实例进行判断,并输出该对象实例的类型。
//输入输出
5.定义静态方法,该方法可以输出传入的对象实例的中心点坐标。
6.构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。
//用户输入画的图形
3、题目分析:
首先需要构建一个关于图形的类,然后要构建三个特殊的子类,使用继承的思想,实现对图形得绘制和实现
4、题目设计实现:
设计父类,和子类,然后能对输出的类进行判断和选择,并且定义它的中心坐标
5、实现过程:
//定义父类及它的方法
publicclassShape{
intlength=0;
intwide=0;
intline=0;
intlist=0;
publicShape()
{
}
publicShape(intline,intlist)
{
this.line=line;
this.list=list;
}
publicvoiddraw()
{
System.out.println("draw");
}
}
//定义三个子类
//矩形
classRectangleextendsShape{
publicRectangle(){
super(3,3);
}
publicvoiddraw(){
System.out.println("drawarectangle");
}
}
//圆
classCircleextendsShape{
publicCircle(){
super(4,2);
}
publicvoiddraw(){
System.out.println("drawaCircle");
}
}
//三角
classTriangleextendsShape{
publicTriangle(){
super(1,3);
}
publicvoiddraw(){
System.out.println("drawaTriangle");
}
}
//输出类的定义
classprintData{
staticvoidprintClass(Objectobj){
System.out.println("theclassoftheShapeis:
"+obj.getClass());
}//输出类名
staticvoidprintrank(Shapestr){
System.out.println("thecoordinateofthecentreis:
x:
"+str.line+"y:
"+str.list);
}//输出中心点坐标
}
//main函数中进行交互和判断
publicstaticvoidmain(String[]args){
intnum=-1;
Scannersr=newScanner(System.in);
//交互选择
while(num!
=3){
System.out.println("pleaseinputthenumberoftheshapeyouwant");
System.out.println("0:
Rectangle1:
Circle2:
Triangle3:
exit");
num=sr.nextInt();
Shapes=newShape();
switch(num)
{
case0:
{
s=newRectangle();//向上转型
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case1:
{
s=newCircle();
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case2:
{
s=newTriangle();
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case3:
break;
default:
System.out.println("it'swrong!
");
break;
}
}
System.out.println("youhaveexit");
sr.close();
}
6、实验结果:
7、个人总结:
通过这次作业,学会了Java继承的基础用法,并在定义中使用静态方法和重构等一些用法来实现转型,可能是用的不熟,过程中出现了大量的错误,经过几次修改终于做了出来,收获很大。
8、源代码:
importjava.util.Scanner;
publicclassShape{
intlength=0;
intwide=0;
intline=0;
intlist=0;
publicShape()
{
}
publicShape(intline,intlist)
{
this.line=line;
this.list=list;
}
publicvoiddraw()
{
System.out.println("draw");
}
}
classRectangleextendsShape{
publicRectangle()
{
super(3,3);
}
publicvoiddraw()
{
System.out.println("drawarectangle");
}
}
classCircleextendsShape{
publicCircle()
{
super(4,2);
}
publicvoiddraw()
{
System.out.println("drawaCircle");
}
}
classTriangleextendsShape{
publicTriangle()
{
super(1,3);
}
publicvoiddraw()
{
System.out.println("drawaTriangle");
}
}
classprintData{
staticvoidprintClass(Objectobj){
System.out.println("theclassoftheShapeis:
"+obj.getClass());
}
staticvoidprintrank(Shapestr){
System.out.println("thecoordinateofthecentreis:
x:
"+str.line+"y:
"+str.list);
}
}
classTestShape{
publicstaticvoidmain(String[]args){
intnum=-1;
Scannersr=newScanner(System.in);
while(num!
=3){
System.out.println("pleaseinputthenumberoftheshapeyouwant");
System.out.println("0:
Rectangle1:
Circle2:
Triangle3:
exit");
num=sr.nextInt();
Shapes=newShape();
switch(num)
{
case0:
{
s=newRectangle();//向上转型
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case1:
{
s=newCircle();
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case2:
{
s=newTriangle();
s.draw();
printData.printClass(s);
printData.printrank(s);
break;
}
case3:
break;
default:
System.out.println("it'swrong!
");
break;
}
}
System.out.println("youhaveexit");
sr.close();
}
}
三、Java的高级语言特征
1、实验目标:
熟悉Java的泛型;了解Java的泛型特点;初步掌握Java的泛型编程方法。
2、实验要求:
编写一个程序,程序提供记事本功能:
1.构建记事本类,该类能存储不定数量的记录;能获得已经存储的记录数量;能追加记录;能展示已经存储的全部记录或其中任何一条记录;能删除已经存储的全部记录或其中任何一条记录。
2.构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。
3、题目分析:
构建一个记事本类,要存储不定量的记录,需要用链表数组存放,利用链表数组的功能可以查询、添加、显示、删除记录。
进行与用户交互,建立测试类。
4、题目设计实现:
记事本类,用泛型ArrayList,建立测试类isTest(),进行与用户交互,再构建一个显示类showText()和删除类deleteText()。
5、实现过程:
staticArrayListdiaryText=newArrayList();//引用泛型
//建立显示类,显示选择的记录
publicstaticvoidshowText(ArrayListlist,intn){
if(list.isEmpty())
System.out.println("尚无记录\n");
else{
if(n==0)
for(intj=0;jSystem.out.println((j+1)+":
"+diaryText.get(j));
elseif(n>0&&n<=list.size())
System.out.println(n+":
"+diaryText.get(n-1));
else
System.out.println("输入错误,请重新输入\n");
}
}
//建立删除类,删除选择的记录
publicstaticvoiddeleteText(ArrayListlist,intn){
if(list.isEmpty())
System.out.println("尚无记录\n");
else{
if(n==0){
list.clear();
System.out.println("已清除全部记录\n");
}
elseif(n>0&&n<=list.size()){
list.remove(n-1);
System.out.println("已删除第"+n+"条数据\n");
}
else
System.out.println("输入错误,请重新输入\n");
}
}
//建立测试类,与用户进行交互
publicstaticvoidisTest(){
intnum=0,i=0;
Stringstr;
Scannerinput=newScanner(System.in);
System.out.println("记事本功能");
System.out.println("请输入想要执行的功能");
while(true){
System.out.println("1——记事");
System.out.println("2——已记录数");
System.out.println("3——追加记录");
System.out.println("4——显示已存储记录(0为全部记录)");
System.out.println("5——删除记录(0为全部记录)");
System.out.println("6——退出");
num=input.nextInt();
if(num==6){
System.out.println("您已退出程序\n");
input.close();
System.exit(0);
}
elseswitch(num){
case1:
{
System.out.println("请输入内容");
input.nextLine();
str=input.nextLine();
diaryText.add(str);
System.out.println("已保存\n");
break;
}
case2:
{
System.out.println("已记录数为:
"+diaryText.size()+"\n");
break;
}
case3:
{
System.out.println("请输入修改的记录号");
i=input.nextInt();
System.out.println("请输入修改内容");
input.nextLine();
str=input.nextLine();
diaryText.set(i-1,str);
System.out.println("已修改\n");
break;
}
case4:
{
System.out.println("请输入要显示第几条的内容");
i=input.nextInt();
showText(diaryText,i);
break;
}
case5:
{
System.out.println("请输入要删除第几条的内容");
i=input.nextInt();
deleteText(diaryText,i);
break;
}
default:
{
System.out.println("输入错误,请重新输入!
\n");
break;
}
}
}
}
6、实验结果