Java程序设计与实践教程_张毅-第4章 数组和字符串
java_开发实战经典_第四章课后习题答案_完整版
第一题public class Four01 {public static double sum(int a){double sum =1;for(int i=1; i<=a;i++){sum = sum*i;}return sum;}public static void main(String[]args){int a =4;double sum = 0;double k[]=new double[a];for(int i=1; i<=4; i++){k[i-1] = sum(i);}for(int j=0;j<k.length;j++){sum = sum+k[j];}System.out.println("总数为:"+sum);}}第二题public static void main(String[]args){int a[]={1,2,3,4,5,6,7,8,9,10,11};int o=0,e=0;for(int i=0 ;i<a.length; i++){if(a[i]%2==0){e++;}else{o++;}}System.out.println("奇数个数为:"+o+"\t"+"偶数个数为:"+e); }}第三题public class Four03 {public static void main(String[]args){int oldArr[]= {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int newArr[]=new int[16];for(int i=0,j=0;i<oldArr.length; i++){if(oldArr[i]!=0){newArr[j]=oldArr[i];j++;}}for(int i=0; i<newArr.length; i++){//必须要写这个if语句,因为newArr多余的空间默认值为0if(newArr[i]!=0)System.out.print(newArr[i]+" ");}}}第四题public class Four04 {public static void main(String[]args){ int Array[] = {1,2,3,4,5,6,7,8,9,10,11};int m = max(Array);System.out.println("最大值为:"+m);int a = min(Array);System.out.println("最小值为:"+a);int s = sum(Array);System.out.println("总数为:"+s);}public static int max(int temp[]){int z = temp[0];for(int i=0; i<temp.length; i++){if(z<temp[i]){z=temp[i];}}return z;}public static int min(int temp[]){int z=temp[0];for(int i=0; i<temp.length; i++){if(z>temp[i]){z=temp[i];}}return z ;}public static int sum(int temp[]){int sum =0;for(int i=0; i<temp.length; i++){sum = sum +temp[i];}return sum ;}}第五题public class Four05 {public static void main(String[]args){ int Array[]= {1,2,3,4,5,6,7,8,9,10,11};int a =5;int b = 100;search(a,Array);search(b,Array);}public static void search(int c,int temp[]){ boolean flag = false;for(int i=0; i<temp.length; i++){if(c == temp[i]){flag = true;}}if(flag){System.out.println("YES,此数组中存在元素"+c);}else{System.out.println("NO,此数组中不存在元素"+c);}}}第六题public class Four06 {public static void main(String[]args){int temp[] = new int[10];init(temp);print(temp);reserve(temp);System.out.println();print(temp);}public static void init(int x[]){for(int i=0; i<x.length; i++){x[i] = i;}}public static void print(int x[]){for(int i=0; i<x.length; i++){System.out.println(x[i]+"、");}}public static void reserve(int x[]){int foot =0;int head = 0;if(x.length%2 == 0){foot = x.length/2;head = foot-1;for(int i=0; i<x.length/2; i++){int temp =x[foot];x[foot] = x[head];x[head] = temp;foot++;head--;}}else{foot = x.length/2;head = foot ;for(int i=0; i<x.length/2+1; i++){int temp = x[foot];x[foot] = x[head];x[head] = temp;head--;foot++;}}}}第七题public class Four07 {public static void main(String args[]){float score[] = {90f,87f,78f,67f,93f,79f,82f,84f,71f,86f};float max = score[0];for(int i=0; i<score.length; i++){if(max<score[i]){max = score[i];}}System.out.println("最高分为:"+max);}}第八题public class Four08 {public static void main(String[] args){int Array[]={1,2,1,3,4,6,5,4,3,2,0,9,8,7,6,5,4,3,5,6,7,8,9,0,9,8,2,1,3,4,};int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0,n9=0,n0=0;for(int i=0; i<Array.length; i++){switch(Array[i]){case 1:{n1++;break;}case 2:{n2++;break;}case 3:{n3++;break;}case 4:{n4++;break;}case 5:{n5++;break;}case 6:{n6++;break;}case 7:{n7++;break;}case 8:{n8++;break;}case 9:{n9++;break;}case 0:{n0++;break;}}}System.out.println("0---->9的个数分别为:"+n0+"、"+n1+"、"+ n2+"、"+n3+"、"+n4+"、"+n5+"、"+n6+"、"+n7+"、"+n8+"、"+n9);}}第九题public class Four09 {public static void main(String[] args){int a[]= {1,2,3,4,5,6,7,8,9,0};int maxFoot =0;int max = a[0];for(int i=0; i<a.length; i++){if(max<a[i]){max=a[i];maxFoot=i;}}int val = a[0];a[0] = a[maxFoot];a[maxFoot] = val;System.out.println(a[0]);}}第十题public class Four10 {public static void main(String[] args){int temp[]= {1,2,3,4,5,6,7,8,9,10};java.util.Arrays.sort(temp);print(temp);temp = inc(temp,13,12,34,5,6,7);java.util.Arrays.sort(temp);print(temp);}public static void print(int a[]){for(int i=0; i<a.length; i++){System.out.print(a[i]+"、");}System.out.println();}public static int[] inc(int a[],int...val){int value[] = new int[a.length+val.length];System.arraycopy(a,0,value,0,a.length);System.arraycopy(val,0 , value, a.length, val.length);return value;}}。
Java程序设计实用教程习题解答与实验指导第1~8章
Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求·················错误!未定义书签。
第1章 Java概述························错误!未定义书签。
第2章 Java语言基础······················错误!未定义书签。
第3章类的封装、继承和多态··················错误!未定义书签。
第4章接口、内部类和 Java API基础··············错误!未定义书签。
第5章异常处理························错误!未定义书签。
Java程序设计基础与实战-教学大纲(45学时)
《Java语言程序设计》(第三版)课程教学大纲学分:3学分学时:45学时(其中:讲课学时:30上机学时:15 )适用专业:通识选修课、专业拓展课一、课程的性质与目标《Java语言程序设计》的可作为一门计算机科学与技术的普及课、入门课,用作专业拓展课或非计算机专业的通识选修课。
通过本课程的学习,学生能够了解Java语言特征、常用的Java类库以及面向对象程序设计思想,并理解计算机软件和计算机系统的工作原理和方式,提高对计算机科学与技术的兴趣,促进学生能在未来的学习和工作中,使用“计算机思维”来解决实际问题,全面提高学生的综合素质。
二、课程设计理念与思路课程设计理念:高等职业教育不仅注重对专业知识和技能的传授,也注重对学生综合素质的培养,不局限于个人选择的专业,有助于个人潜力能够得到最大限度的发挥。
在全球云计算和移动互联的产业背景下,在高等教育的通识教育中增加有关计算机技术基础知识与能力的课程,有助于非计算机专业大学生综合素质的提高。
课程设计思路:Java语言程序设计作为一门选修课,让学生把一门程序设计语言掌握到实用的程度较有难度。
本课程并非介绍Java标准版的所有内容,而是通过Java语言深入理解程序设计的精髓,大局部知识点是适用于所有编程的基础知识,如变量、运算符、流程控制语句和10等。
潜移默化地培养学生程序化、系统化的思维模式,让学生能够使用抽象思维分类解决问题。
同时,培养学生的自学能力。
软件技术的开展日新月异,教材不能做到和语言同步,互联网的存在为自学掌握一门技能提供了便捷,可以让学生自己分析问题、动手编程和,在此过程中,学生上网查阅相关资料,能够更新知识,并逐渐具备独立研究的能力。
三、教学条件要求操作系统:Windows 10五、学时分配注:可选章节未计入合计课时。
六、考核模式与成绩评定方法本课程为考试课程,期末考试采用百分制的闭卷考试模式。
学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、实验和上机成绩(20%)。
《Java语言程序设计》(第3版)第4章
//显示对角线之和
for (i = 0; i < 3; i++) {
sum = sum + a[i][i];
}
System.out.println("对角线之和:" + sum);
}
}
【3】编写一程序,查找某一字符串是否包含有“abc”。
[解答]:
public class Test_3{
public static void main(String[] args) {
String s = "yangen abc";
int a = s.indexOf("abc");
//a位找到abc的下标,找不到则返回-1
if (a != -1) {
System.out.print("包含字符串abc");
} else {
System.out.print("不包含字符串abc");
(2)第一行元素的名字为a[0][0],a[0][1],a[0][2]
(3)置行1列2的元素为0,语句是a[0][1]=0;
(4)
for(int i=0;i<2;i++){
for(in j=0;j<3;j++){
a[i][j]=0;
}
}
(5)
int sum=0;
sum=a[0][2]+a[1][2];
第4章数组与字符串
【1】考虑一个2×3的数组a。
(1)为a写一个设声明。试问,这样的声明使a有多少行,多少列,多少元素?
(2)写出a的第1行的所有元素的名字。
第4章 Java程序设计基础与实践-电子教案
例如: 例如: class People{ String id,name; int age; People(){ id="00000"; name=null; age=0; } void setName(String name){ =name; } String getName(){ return name; } } //定义 定义Student类,继承 public class Student extends People{ //定义 类 继承People类 类 //定义自己的成员变量 定义自己的成员变量: String number; //定义自己的成员变量:学号 public static void main(String args[]){ //创建对象 Student s=new Student(); //创建对象 //继承父类成员变量 s.age=20; //继承父类成员变量 //自己的成员变量 s.number="15"; //自己的成员变量 s.setName("黎明 黎明"); 继承父类的成员方法 s.setName("黎明 //继承父类的成员方法 System.out.println("学号 学号: System.out.println("学号:"+s.number); //输出信息 输出信息 System.out.println("姓名:"+s.getName()); System.out.println("姓名: 姓名 System.out.println("年龄 年龄: System.out.println("年龄:"+s.age); } }
• 隐藏和覆盖
面向对象的程序设计-Java张白一第三版第4章
第4章 类与对象
面积
class Rectangle //设计一个长方形类
随着不同抽象层次的进展,目前主要强调的是过程抽象 和数据抽象。
第4章 类与对象
1. 过程抽象 过程抽象(procedural abstraction)是指任何一个完成确定 功能的操作序列,其使用者都可把它看做一个单一的实体, 尽管这个操作可能是由一系列更低级的操作完成的。 过程抽象隐藏了过程的具体实现。例如,用于求一个正 整数平方的过程可以有下面的不同实现方式。 方式1: int square(int k) { return k*k; }
第4章 类与对象
第4章 类与对象
4.1 类与对象的概念 4.2 封装机制 4.3 数据成员 4.4 成员方法
第4章 类与对象
4.1 类与对象的概念
程序设计所面对的问题域——客观世界,是由许多事物 构成的,这些事物既可以是有形的(比如一辆汽车),也可以 是无形的(比如一次会议)。在面向对象的程序设计中,客观 世界中的事物映射为对象。对象是面向对象程序设计中用来 描述客观事物的基本单位。客观世界中的许多对象,无论其 属性还是其行为常常有许多共同性,抽象出这些对象的共同 性便可以构成类。所以,类是对象的抽象和归纳,对象是类 的实例。
第4章 类与对象
2. 数据抽象 数据抽象(Data Abstraction)把系统中需要处理的数据和 施加于这些数据之上的操作结合为一个不可分的系统单位 (即对象),根据功能、性质、作用等因素把它们抽象成不同 的抽象数据类型。每个抽象数据类型既包含了数据,也包含 了针对这些数据的授权操作,并限定数据的值只能由这些操 作来观察和修改。因此,数据抽象是相对于过程抽象的更为 严格、更为合理的抽象方法。
第4章数组与字符串
实验20 字符串2
实验目的 学习字符串的常用方法。 熟悉字符串的使用。
实验20 字符串2
实验要求 编写一个Java 程序,对两个字符串进行连接、 比较及显示其长度等操作。
实验20 字符串2
实验结果
实验21 命令行参数
实验目的 学习程序的带参运行方式。 学习main方法中args参数的使用。
实验18 二维数组
实验结果
实验19 字符串1
实验目的 学习字符串的定义。 区别运算符“= =”与字符串equals方法。
实验19 字符串1
实验要求 编写一个Java 程序,分别按两种方式定义字 符串,用运算符“= =”与字符串equals方法 对这些字符串进行比较。
实验19 字符串1
实验17 一维数组2
实验结果
实验18 二维数组
实验目的 学习二维数组的定义。 学习二维数组的访问操作。 学习数组的排序。
实验18 二维数组
实验要求
编写一个Java 程序,定义一个2行3列的 整型二维数组,对数组中的每个元素赋 值一个0~100的随机整数,然后分别对 第一行、第二行的元素排序。
字符串也是编程中经常要使用的数据结构,它是字符的序列,从某种程 度上说有些类似于字符数组。在Java语言中字符串无论是常量还是变量, 都是用类的对象来实现的。 本章将指导读者掌握一维数组、二维数组、字符串的声明和使用。
实验16 一维数组1
实验目的
学习一维数组的定义。 学习一维数组的初始化。 学习对一维数组元素的访问。
实验21 命令行参数
实验要求 编写一个Java 程序,如果没有命令行参数, 显示“没有输入参数”;否则,显示用户共 输入多少个参数,并显示各个参数内容。
Java程序设计基础 第4章 教案
public static void main(String[] args) {
String[] fromArr = {"abc", "bcd", "cde", "efg", "fgh"}; //源数组
Java程序设计基础
第4章字符串
课程名称
Java程序设计基础教程
(慕课版)
项目名称
字符串
任务名称
字符串
课时
6
项目性质
□演示性□验证性□设计性√综合性
授课班级
授课日期
授课地点
教学目标
能力目标:
1.具备使用字符串常用API解决问题的能力
2.具备使用StringBuffer类操作字符串的能力
3.具备使用数组常用API解决问题的能力
for (String str : toArr2) {
System.out.print(str + " "); //打印输出数组内的元素
}
System.out.println("\n ************************************* ");
//从源数组中的第0个元素向目标数组1中复制3个元素,从索引位置1开始
}
}
课堂
实训
1.参考移动的活动,我们可以将其简化成一个动手任务:猜数字游戏。系统随机生成一个1~100的随机数,玩家键入自己猜测的数字,如果猜中了,则提示玩家赢了,游戏结束,否则提示用户猜测的数字是大了或者小了,让玩家继续猜,玩家有十次猜测机会。
Java 04
Java 程序设计与项目实践
二、数组排序
1.数组元素交换
数组元素交换就是将下标为i的数组元素a[i]和下标为j的数组元 素a[j]交换位置。为了解决这个问题,我们先来看一个实际问题。如 果我们每只手中只能拿一个物品,如何将两只手中的物品交换呢?这 时我们就可以先把左手的物品放到桌子上,再将右手的物品给左手, 然后让右手拿起桌子上的物品,这样就完成了两手物品的交换。 同样,数组元素间的交换也可以找一个“桌子”,那就是临时变 量。
图1.1 .NET 2.0和.NET 3.5的关系
Java 程序设计与项目实践
三、多维数组
1.多维数组的定义
多维数组的定义是和一维数组的定义非常类似的,只是[ ]的数量 不同。当给出两个[ ]时,则就表达定义了一个二维数组。例如: int[][] intArray=new int[2][3]; 这里就定义了一个int类型的二维数组,名称为intArray,数组长 度为2,也就是里面有2个一维数组,其一维数组的长度为3。其中一维 数组的长度也是可以不给出的,当定义时再给出,这是完全合法的。 对多维数组进行赋值也有两种方式,一是直接赋值,另一种就是 使用for循环语句进行赋值。
四、增强for循环
在前面不管是为数组赋值,还是获取数组中的元素,都要用到for 循环语句,是感觉复杂和麻烦的。为了解决这个问题,在Java 5.0版 本中增加了增强for循环的功能,使用它可以简化for循环语句。增强 for循环的语法格式为: for(variable:expression){ statement; ............. } 其中variable表示自己定义的变量,它的类型必须和数组的类型 一致。expression表示要进行循环的数组。statement表示循环体,通 常对variable进行操作。 在使用增强for循环对数组进行循环输出时,并不需要给出数组的 长度,会一直执行到数组最后一个数组元素,从而不会出现数组下标 越界的问题。
java 面向程序设计 数组、字符串、枚举、泛型的应用
实验报告课程名称JA V A面向对象程序设计实验项目数组、字符串、枚举、泛型的应用专业计科班级姓名学号指导教师谷勇浩实验成绩2010年6月6日一实验目的加强对JA VA 程序的熟练掌握。
二实验内容1.打印输出10行杨晖三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 12.奥运趣味题。
完成下面的表达式,要求,星号分别表示0-9的一位数字,而且不允许重复,使得下面的加法表达式成立。
(输出所有结果)*****+ 20085--------*****3.请编写程序,输入一个字符串,然后由程序统计并输出在该字符串中每个字符出现的次数。
4.请编写程序实现两种日期格式(如:“1981.07.30”和“July 30, 1981”)之间相互转换。
要求其中一种格式的日期通过程序的参数输入,程序通过识别判断其格式,然后输出另一个格式表示的日期。
5.请应用泛型编写程序。
首先定义一个接口,它至少包含一个可以计算面积的成员方法。
然后编写实现该接口的两个类:正方形类和圆类。
接着编写一个有泛型特点的类,要求利用这个类可以在控制台窗口中输出某种图形的面积,而且这个类的类型变量所在控制台窗口中分别输出给定边长的正方形的面积和给定半径的圆的面积。
6.请编写程序。
首先在程序中定义一个枚举类型,它含有七个枚举常量,分别表示一个星期每一天的名称。
然后再控制台窗口中输出这些名称。
7.键盘输入一段英文语句,将这段话写入文件file.txt中,然后统计并输出这段话中英文单词的数目。
三.主要程序1.杨辉三角package h_YangTriangle;public class h_YangTriangle{public static int [][]a;public static int i,j,x;public static void main(String[] args){System.out.println("杨辉三角为:");h_YangHui();}public static void h_YangHui (){for(i=0;i<10;i++){for(j=0;j<i+1;j++){if(j==0||j==i){a[i][j]=1;}elsea[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<10;i++){for(j=0;j<=i+1;j++){System.out.print(a[i][j]);}System.out.print("\n");}}}程序结果:2.奥运趣味题package h_interesting;public class h_InterestTopic{int []a;int []b;h_InterestTopic(){i nt a[]=new int [5];i nt b[]=new int [5];a[2]=9;b[2]=0;}//h_InterestTopic的构造方法结束public void h_DataStart(){i nt i,j,k;f or(i=4,j=4;i>=0&&j>=0;i--,j--){for(k=1;k<9;k++){if(h_DataChoiceA(k)==1){a[i]=k;}elsecontinue;if(h_DataChoiceB()){h_DataPutB();}elsecontinue;}}}//数据初始化private int h_DataChoiceA(int t) { int i;for(i=0;i<8;i++){if(t==a[i]||t==0||t==9)return(0);elsereturn(1);}return i;}//判断a[]是否符合条件private int h_DataChoiceB(int t) { int i;t=h_DataPutB();for(i=0;i<9;i++){if(t==a[i]||t==0||t==9)return(0);e lsereturn(1);}}//判断b[]是否符合条件public void h_DataPutB(){i nt i,j;f or(i=4;i>=0;i--){for(j=4;j>=0;j--){switch(b[j]){case 4:b[j]=a[i]+5;case 3:b[j]=a[i]+8;case 1:b[j]=a[i]+1;case 0:b[j]=a[i]+2;}}}}//b[]的数据输入public static void main(String[] args){h_InterestTopic m = new h_InterestTopic();h_InterestTopic();}}程序结果:3.字符串统计package h_String;public class h_String{public static void main(String[] args){String x = "pleasego";String str = x;h_StringA((str, str.length());}public static void h_StringA(String input, int len){int count[] = new int[200];char order[] = new char[200];int next = 0;for (int i = 0; i < len; i++){char lowerCase = Character.toLowerCase(input.charAt(i));if (count[lowerCase & 0xff]++ == 0){order[next] = lowerCase;next = lowerCase & 0xff;}}for (char a = order[0]; a > 0;){System.out.println(a + " : " + count[(a & 0xff)]);a = order[a];}}}程序结果:4.日期转换package h_TimeChange;public class h_Time{public h_Time(int year,int M,int day){switch(M){case 1:String a=new String ("January");System.out.print(""+a+","+day+","+year);break;case 2:String b=new String ("February");System.out.print(""+b+","+day+","+year);break;case 3:String c=new String ("March");System.out.print(""+c+","+day+","+year);break;case 4:String d=new String ("April");System.out.print(""+d+","+day+","+year);break;case 5:String e=new String ("May");System.out.print(""+e+","+day+","+year);break;case 6:String f=new String ("June");System.out.print(""+f+","+day+","+year);break;case 7:String g=new String ("july");System.out.print(""+g+","+day+","+year);break;case 8:String h=new String ("August");System.out.print(""+h+","+day+","+year);break;case 9:String m=new String ("September");System.out.print(""+m+","+day+","+year);break;case 10:String n=new String ("Octuber");System.out.print(""+n+","+day+","+year);break;case 11:String p=new String ("November");System.out.print(""+p+","+day+","+year);break;case 12:String q=new String ("December");System.out.print(""+q+","+day+","+year);break;}}private static void h_Change(String x){String m=x.substring(0,3);if(m.equals("Jan")){String d12="01";String d13=x.substring(7,9);String d14=x.substring(9,13);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Feb")){String d12="02";String d13=x.substring(8,10);String d14=x.substring(10,14);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Mar")){String d12="03";String d13=x.substring(5,7);String d14=x.substring(7,11);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Apr")){String d12="04";String d13=x.substring(5,7);String d14=x.substring(7,11);System.out.print(d14+","+d12+","+d13);}else if(m.equals("May")){String d12="05";String d13=x.substring(3,5);String d14=x.substring(5,9);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Jun")){String d12="06";String d13=x.substring(4,6);String d14=x.substring(6,10);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Jul")){String d12="07";String d13=x.substring(4,6);String d14=x.substring(6,10);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Aug")){String d12="08";String d13=x.substring(6,8);String d14=x.substring(8,12);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Sep")){String d12="09";String d13=x.substring(9,11);String d14=x.substring(11,15);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Oct")){String d12="10";String d13=x.substring(7,9);String d14=x.substring(9,13);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Nov")){String d12="11";String d13=x.substring(8,10);String d14=x.substring(10,14);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Dec")){String d12="12";String d13=x.substring(9,11);String d14=x.substring(11,15);System.out.print(d14+","+d12+","+d13);}else{System.out.println("error");}}public static void main(String[] args){h_Time ff = new h_Time(2010,2,21);System.Out.print(“”);String x = "june132012";h_Change(x);}}程序结果:5.泛型编程package h_fanXing;public class h_FanXing{public static void main(String args[ ]){double r = 2 ;h_T<h_circle> a = new h_T<h_circle>();System.out.println("半径为"+5+"的圆的面积是"+a.sg_AreaB(new h_circle()));double x1 = 1;d ouble y1 = 1;d ouble x2 = 4;d ouble y2 = 4;h_T<h_rectangle> b = new h_T<h_rectangle>();System.out.println("给定的矩形面积是"+b.sg_AreaB(newh_rectangle(x1 , y1, x2, y2)));} // 方法main结束}package h_fanXing;public class h_circle implements h_shape{public double m_x, m_y; // 圆心坐标public double m_radius; // 半径public void h_circleA(double r){m_x = 0;m_y = 0;m_radius = r;} // J_Circle构造方法结束public void h_circleB(double x, double y, double r){m_x = x;m_y = y;m_radius = r;} // J_Circle构造方法结束// 计算并返回形状的面积public double sg_getArea( ){return (Math.PI*m_radius*m_radius);} // 方法mb_getArea结束} // 类J_Circle结束package h_fanXing;public class h_rectangle implements h_shape{public double m_minX, m_minY; // 第一个角点坐标public double m_maxX, m_maxY; // 另一个角点坐标public h_rectangle(double x1, double y1, double x2, double y2) {if (x1<x2){m_minX = x1;m_maxX = x2;}else{m_minX = x2;m_maxX = x1;} // if-else结构结束if (y1<y2){m_minY = y1;m_maxY = y2;}else{m_minY = y2;m_maxY = y1;} // if-else结构结束} // h_rectangle构造方法结束// 计算并返回形状的面积public double sg_getArea( ){return ( (m_maxY-m_minY) * (m_maxX-m_minX) ); } // 方法mb_getArea结束} // 类J_Rectangle结束package h_fanXing;public interface h_shape{public abstract double sg_getArea( );}package h_fanXing;public class h_T <T extends h_shape >{public double sg_AreaB(T t){return (t.sg_getArea());}}程序结果:6.枚举enum h_week{星期一,星期二,星期三,星期四,星期五,星期六,星期天;}//枚举h_week结束public class h_MeiJu{public static void main(String[] args){h_week []sa=h_week.values();for(int i=0;i<sa.length;i++){switch(sa[i]){case星期一:System.out.println("Monday");break;case星期二:System.out.println("Tuesday");break;case星期三:System.out.println("Wednesday");break;case星期四:System.out.println("Thursday");break;case星期五:System.out.println("Friday");break;case星期六:System.out.println("Saturday");break;case星期天:System.out.println("Sunday");break;}//switch结构结束}//for循环结束}//方法main结束}//类h_MeiJu结束程序结果:。
java实验答案
上机实践2 基本数据类型与控制语句 5
实验1 输出希腊字母表 5
实验2 回文数 6
实验3 猜数字游戏 8
上机实践3 类与对象 9
实验1 三角形、梯形和圆形的类封装 9
实验2 实例成员与类成员 12
实验3 使用package语句与import语句 14
{
【代码4】 //命令行窗口输出"I am C"
}
}
上机实践2 基本数据类型与控制语句
实验1 输出希腊字母表
1.答案:
【代码1】: startPosition=(int)cStart;
【代码2】: endPosition=(int)cEnd ;
}
}
模板3 :B.java
public class B
{
void fB()
{
【代码3】 //命令行窗口输出"I am B"
}
}
模板4 :C.java
public class C
{
void fC()
}
}
实验2 一个简单的Java Applet程序
1.答案:
【代码1】: g.drawString("这是一个Java Applet 程序",10,30);
【代码2】: g.drawString("我改变了字体",20,50);
2.模板代码
FirstApplet.java
【代码1】: System.out.println("你好,很高兴学习Java") ;
【代码2】: System.out.println("We are students") ;
Java程序设计实用教程_第4章_类 与 对 象解析
2019/2/21
31
§4.4.4 可变参数 可变参数是指在声明方法时不给出参数列表中从某项 直至最后一项参数的名字和个数,但这些参数的类型必 须相同。可变参数使用“…”表示若干个参数,这些参 数的类型必须相同,最后一个参数必须是参数列表中的 最后一个参数。例如: public void f(int … x) 那么, 方法f 的参数列表中,从第 1 个至最后一个参数都是 int 型,但连续出现的int型参数的个数不确定。称x是方法 f的参数列表中的可变参数的“参数代表”。 参数代表可以通过下标运算来表示参数列表中的具体 参数,即x[0],x[1]…x[m]分别表示x代表的第1个至第 m个参数。
2019/2/21
10
§4.2.4 方法_ 2.方法体 2.方法体 方法声明之后的一对大括号“ { ” ,“ } ”以及 之间的内容称作方法的方法体。方法体的内容包括局 部变量的声明和Java语句。 在方法体中声明的变量和方法的参数被称作局部 变量。 局部变量只在声明它的方法内有效,而且与其声 明的位置有关。方法的参数在整个方法内有效,方法 内的局部变量从声明它的位置之后开始有效。如果局 部变量的声明是在一个复合语句中,那么该局部变量 的有效范围是该复合语。
2019/2/21 11
§4.2.4 方法_ 3.区分成员变量和局部变量
3.区分成员变量和局部变量 如果局部变量的名字与成员变量的名字相同,则成 员变量被隐藏,即这个成员变量在这个方法内暂时失效。 如果想在该方法中使用被隐藏的成员变量,必须使 用关键字this 。
2019/2/21
12
§4.2.5 需要注意的问题 类体的内容由两部分构成:一部分是变量的声明,
2019/2/21
20
§4.3.3 使用对象 对象不仅可以操作自己的变量改变状态,而且能调 用类中的方法产生一定的行为。 通过使用运算符“ . ”,对象可以实现对自己变量 的访问和方法的调用。
java语言程序设计第4章-习题参考答案
第4章习题解答1.声明一个数组,保存一个学生的数学、语文、英语、物理、化学等课程的成绩,编写一个程序,计算5门课程的平均成绩,精确到0.1分,成绩值从键盘录入。
import java.util.Scanner;public class XT_1_score {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[5];System.out.println("请分别输入数学、语文、英语、物理、化学的成绩(数字之间用空格格开):");double sum = 0, average = 0;Scanner in = new Scanner(System.in);int i;for (i = 0; i < 5; i++)score[i] = in.nextDouble();for (i = 0; i < 5; i++)sum += score[i];average = sum / 5;System.out.println("平均成绩为:" + String.format("%.1f", average));}2.编程实现统计50名学生的百分制成绩中各分数段的学生人数,即:分别统计出100分、90-99分、80-89分、70-79分、60-69分、不及格的学生人数。
import java.util.Scanner;public class XT_2_score_sore {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[50];int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, i;System.out.println("请依次输入50名学生的成绩(用空格隔开):");Scanner br = new Scanner(System.in);for (i = 0; i < 50; i++)score[i] = br.nextDouble();for (i = 0; i < 50; i++) {if (score[i] == 100)a++;if (score[i] >= 90 && score[i] <= 99)b++;if (score[i] >= 80 && score[i] <= 89)c++;if (score[i] >= 70 && score[i] <= 79)d++;if (score[i] >= 60 && score[i] <= 69)e++;if (score[i] < 60)f++;}System.out.println("成绩为100分的个数:" + a);System.out.println("成绩为90-99分的个数:" + b);System.out.println("成绩为80-89分的个数:" + c);System.out.println("成绩为70-79分的个数:" + d);System.out.println("成绩为60-69分的个数:" + e);System.out.println("成绩为不及格的个数:" + f);}}3.编写一个程序,实现打印输出字符串数组中最大值和最小值。
Java程序设计课程教案
Java程序设计课程教案一、课程简介1.1 课程背景Java是一种面向对象、跨平台、多用途的编程语言,自1995年推出以来,已广泛应用于企业级应用、桌面应用、移动应用和Web开发等领域。
本课程旨在让学生掌握Java编程的基本语法、面向对象编程思想以及常用的开发工具和框架,为学生进一步学习Java高级知识和实践项目打下坚实基础。
1.2 课程目标(1)掌握Java基本语法和数据结构;(2)理解面向对象编程思想,熟练使用类和对象;(3)学会使用Java常用开发工具和框架;(4)具备编写简单Java应用程序的能力。
二、教学内容2.1 Java基本语法(1)变量和数据类型;(2)运算符和表达式;(3)控制语句;(4)数组和字符串。
2.2 面向对象编程(1)类和对象的概念;(2)构造方法;(3)封装、继承和多态;(4)抽象类和接口;(5)包和泛型。
2.3 Java常用开发工具和框架(1)Eclipse和IntelliJ IDEA;(2)Java标准库;(3)JavaFX和Swing;(4)常用设计模式;(5)Maven和Git。
三、教学方法3.1 授课方式采用讲授、案例分析和上机实践相结合的方式进行教学。
3.2 实践环节安排课后练习和课程项目,让学生在实际编程中巩固所学知识。
3.3 考核方式课程成绩由课后练习、课程项目和期末考试组成,其中课后练习和课程项目占60%,期末考试占40%。
四、教学安排4.1 课时共计64课时,其中理论授课32课时,实践环节32课时。
4.2 授课计划(1)第1-8课时:Java基本语法;(2)第9-16课时:面向对象编程;(3)第17-24课时:Java常用开发工具和框架;(4)第25-32课时:课后练习和课程项目。
五、课程评价5.1 学生评价(1)课后练习和课程项目的完成情况;(2)课堂表现和提问回答;(3)期末考试成绩。
5.2 教师评价(1)对学生的课堂表现和提问回答进行评价;(2)对课后练习和课程项目的质量进行评价;(3)对期末考试成绩进行分析。
Java程序设计课程教案
4.4 课后作业:
编写一个Java程序实现一个简单的集合操作,包括添加、删除和遍历
编写一个Java程序实现一个简单的字典(Map)应用,包括添加、删除和查找
第五章:Java输入输出流
5.1 课程目标:
掌握Java语言的输入输出流编程ห้องสมุดไป่ตู้
学会使用Java语言中的常用输入输出流类
8.1 课程目标:
理解数据库编程的基本概念
掌握Java语言中的数据库编程技术
8.2 教学内容:
数据库编程的基本概念:数据库、表、SQL语言
Java中的数据库编程:JDBC API、数据库连接、SQL语句的执行
数据库操作:数据查询、数据更新、数据删除、数据插入
8.3 教学方法:
通过讲解和实例来引导学生理解数据库编程的概念和用法
掌握Java语言中的企业级应用开发技术
10.2 教学内容:
企业级应用开发的基本概念:Web应用、Web服务、企业服务
Java中的企业级应用开发:Servlet、JSP、Java EE、Web服务、消息服务
常用企业级开发框架:Spring、Hibernate、MyBatis
10.3 教学方法:
通过讲解和实例来引导学生理解企业级应用开发的概念和用法
通过编程实践来掌握Web应用和Web服务的实现
10.4 课后作业:
编写一个Java程序实现一个简单的Servlet应用
编写一个Java程序实现一个简单的Web服务
重点和难点解析
一、Java简介
补充说明:详细阐述Java语言的跨平台性、面向对象、简单易学等特点。解释Java程序是如何通过类和对象来组织代码,以及JVM如何加载和运行Java程序。
自考教材《JAVA语言程序设计(一)》第四章习题解答
4.2 举例说明如何声明、创建和初始化多维数组。
声明二维数组:类型 数组名[ ][ ] 类型[ ][ ]数组名 类型[ ]数组名[ ] 例如: 声明 Sting subStr[ ][ ]; String [ ] [ ] subStr; String[ ] subStr[ ]; 创建 (1)String subStr[ ][ ]=new String[3][5];(直接分配,平衡数组) (2)String subStr[ ][ ]=new String[3][ ];(从最高维开始对每一维分配不等长空间,非 平衡数组) subStr[0]=new String[4];//第 1 个子数组有 4 个元素 subStr[1]=new String[5];//第 2 个子数组有 5 个元素 subStr[2]=new String[2];//第 3 个子数组有 2 个元素 (3)int[ ][ ] x={{5,6,7},{8,9,10,11},{18,19,10,10},{2,98}};//直接赋值创建 初始化:数组创建后,如果没有初始化,则根据类型 java 会自动赋予默认值。一般用循环 语句对其动态初始化,例如,以下循环给三维整型数组 aa 初始化为三角数组。 int a[]=new int[5]; int aaa[][][]=new int [4][3][3]; for (int i=0;i<a.length;i++) { a[i]=i+1; } for (int i=0;i<aaa.length;i++) { for (int j=0;j<aaa[i].length;j++) { for (int k=0;k<aaa[i][j].length;k++) { aaa[i][j][k]=(i+j+1)*(k+1);} } }
《Java面向对象程序设计》(第2版)课后答案
Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
JAVA程序设计案例教程(第二版)周怡 张英主编。第4章 JAVA流程控制_课后习题答案
2. 写程序求解以下分段函数。要求输入x 的值,输出函数y 的值。
x , 5 x 0 y x 1, x 0 x 1, 0 x 10
import javax.swing.JOptionPane; public class PiecewiseFun { double x=0.0,y=0.0; public static void main(String[] args) { String str = JOptionPane.showInputDialog("请输入x"); x = Double.parseDouble(str); if(x>-5 && x<0){
if(a==b) if(c==d) a=1; else b=1;
四、编程题 1. 编写模拟计算器的程序。程序接收两个整数和要执行的操作,输出类似3*8=24的结果。
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ } } import javax.swing.JOptionPane; public class Calculater { public static void main(String[] args) { double a=0.0, b=0.0; String str; //String类型的变量用于接收用户的输入 str=JOptionPane.showInputDialog("请输入收第一个数:"); a=Double.parseDouble (str); str=JOptionPane.showInputDialog("请输入第二个数:"); b=Double.parseDouble (str); JOptionPane.showMessageDialog(null, a+”*”+b+”=”+a*b);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 数组
数组:是一个具有相同类型变量的指定的 数组名 集合的对象。
数组元素:数组中的每个变量,由数组名 int age[]; 和一个int型的整数值表示。 age[0]=18; 索引: 数据名后的整数值,一般放在数组 名后面的方括号中。 注意:数组中第一个元素的索引值是0。
索引
数组类型
mat
};
0
0 0 0 0 1 1 1
mat[0]
mat[1](vector2) mat[2]
mat.length
1
2
2 2
3
3
mat[3]
4.1.8 多维数组
多维数组 long [ ][ ][ ]beans = new long[5][10][30]; 数组beans被定义为一个三维数组,也可以说其具 有5个元素,每个元素都保存了一个对二维数组的引 用,这些二维数组又可以互不相同。 多维数组的使用方法与二维数组相似。例如: long [ ][ ][ ] beans = new long[2][ ][ ]; beans[0] = new long[4][ ]; beans[1] = new long[2][ ];
4.1.8 二维数组
定义二维数组也可以采用如下方式: float [ ][ ] temperature; temperature = new float[10][365];
int[ ][ ] arr=new int[ ][4]; 是否正确?
4.1.8 二维数组
不同长度的嵌套数组
在Java中,创建嵌套数组时,其中的各个数组 的长度可以不同,例如:
4.1.5 数组变量的重用
Java语言允许类型相同,而长度不同的两个 数组互相赋值。赋值的结果是两个数组名指向 同一数组。 例如: int [] primes = new int[10]; primes = new int[50]; 注意:可以改变数组变量所引用的数组,但 是不可以改变数组元素所存储的值的类型。
4.1.6 数组的初始化
例如:对非基本数据类型 MyDate[ ] dates; dates = new MyDate[ 3]; dates[ 0] = new MyDate( 22, 7, 1964); dates[ 1] = new MyDate( 1, 1, 2000); dates[ 2] = new MyDate( 22, 12, 1964); 或: MyDate[ ] dates = { new MyDate( 22, 7, 1964), new MyDate( 1, 1, 2000), new MyDate( 22, 12, 1964) };
若有:double[ ] myArray = new double[100]; 则可使用myArray.length来引用它的长度, 即得到的数值为100。
4.1.3 数组长度
double[] anArray ;
anArray:
null
Here, the array is not defined.
4.1.6 数组的初始化
使用已有数组的引用来初始化数组变量 long [ ] even = {2L, 4L, 6L, 8L}; long [ ] value = even; 分析:创建了____个数组变量,创建了____个数组.
解答:两个数组变量都引用同一个数组,而且通过 两个变量名都可以访问这个数组的元素。
anArray = new double[3]
anArray:
0 ?
1 ?
2 ? 3
Here, the array is defined, but the elements in the array are NOT defined.
length
4.1.4 访问数组元素
访问数组元素: 数组名[索引值]
主要掌握二维数组的声明、生成、初始化、 及使用方法。 掌握字符串的表示方式,字符串的各种常用 运算
4.1 数组
问题的提出 现有一班级共30人,想要计算全班 参加英语考试的平均分数,应如何设计 程序实现?并且打印出高于平均成绩的 分数?
问题的分析 (1)程序结构? 顺序,选择,循环 (2)数据结构? 单变量,数组
4.1.1 数组变量
数组变量和所引用的数组是两个分离的实体。
为数组变量所分配的内存空间保存着对数组 对象的引用,而不是数组对象本身。 数组对象本身是一个存在于内存其它位置的 独特实体。
引用对象的变量中存储的是引用。
引用记录着它所引用的对象的内存地址。
4.1.2 数组定义
声明一维数组的两种格式:
4.1.5 数组变量的重用
数组赋值只是对引用的复制
B = A results in:
A B 0
length
NOT:
3 2 A B
0
length
3 2 3 2
0
length
4.1.6 数组的初始化
定义数组时直接初始化: 如: int [] primes = {1, 2, 3, 4, 5, 6, 7}; // 此数组为7个元素 注意: 初始化数组时,必须给出所有元素的值. 若只对数组的部分元素指定初值,可以对这部 分数组元素单独赋值,其它未赋值元素默认为0。 例如:int [ ] primes = new int[100]; primes[0] = 1; 或 for(int i=0; i<primes.length; i) primes[i] = 1;
4.1.8 字符数组
字符数组 char[ ] message = new char[10]; 字符数组的初始化方法如下: char[ ] vowels = {„a‟, „e‟, „i‟, „o‟, „u‟};
4.2 字符串
Java中普通字符串是String类的对象。 String类是专门为创建和处理字符串而 设计的,是Java自带的标准类 String类在ng包中定义,所以默 认在所有的程序中都能使用。
Java Programing Language
第4章 数组和字符串
本章目录
1
2 3
数组 字符串 字符串的运算
4
数组作为参数
教学目标
掌握java中一维数组、二维数组的创建与 使用。 掌握java中字符串的使用。 掌握java中数组作为参数的使用方法。
教学重点
掌握数组的声明,生成和初始化方法。
熟练掌握数组的使用,对于多维数据,要求
4.1.6 数组的初始化
数组交换的方法 double [ ] input = new double[100]; double [ ] output = new double[100]; double [ ] temp; temp = input; input = output; output = temp; 分析:是交换数组地址还是数组内容? 解答:此种方法只是交换了数组在内存中的地址, 没有移动任何数组元素。若要复制数组,则需定义 同样大小的数组,并把原数组中的元素逐个复制到 新数组中。
4.1.8 二维数组
float[ ][ ] mat=new float[4][ ]; 二维数组的各子数组元素的个数可以不同。 for(int i=0;i<mat.length;i++) 例 1: mat[i]=new float[i+1]; int[ ][ ] arr1={{3, -9},{8,0,1},{10,11,9,8} float[ ] vector2=mat[1]; 例2:
4.2.3 字符串数组
声明一个具有5个String对象的数组 String[ ] names = new String[5]; 初始化字符串数组: String[ ] colors = {“red”, “green”, “blue”};
4.1.7 数组的使用
double [ ] samples = new double[50]; double average = 0.0; for(int i=0;i<samples.length;i++) { samples[i]=100.0*Math.random(); } for(int i=0; i<samples.length; i++) { average += samples[i]; } average /= samples.length;
4.1.2 数组定义
举例: int primes[ ]; primes = new int[10]; 或 int [ ] primes = new int[10];
注意数组的静态性:一旦创建就不能修改数组的长 度! ? 数组的长度可以是变量吗?
4.1.3 数组长度
利用数组对象的数据成员length可引用该数 组的长度,即该数组中所包含的元素个数。
4.2.2 创建String对象
String类型的变量: 是一个保存String类对象的引用的变量。 String变量记录String对象在内存中的存放位置。 当执行赋值语句时,原来的引用就被新字符串的 引用所覆盖,原来的字符串被丢弃。 例如: String myStr = “my first string”; // 初始化 myStr = “my second string”; // 改变myStr的值 注意: String anyStr; // 未初始化,若使用,编译错误 String anyStr=null;// 初始化为null,不引用任何值
数组元素类型 数组元素类型[
数组名字[ ];double anArray[]; ] 数组名字; double[] anArray;
声明二维数组的两种格式: 注意:声明时
数组元素类型 数组名字[ ][ 不能指定数组 ];
数组元素类型[ ][ ] 数组名字; 的大小!