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结束程序结果:。
- 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;
声明二维数组的两种格式: 注意:声明时
数组元素类型 数组名字[ ][ 不能指定数组 ];
数组元素类型[ ][ ] 数组名字; 的大小!