奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 404|回复: 0

大工20秋《java程序设计》辅导资料三

[复制链接]

1万

主题

1

回帖

2万

积分

论坛元老

积分
29028
发表于 2021-3-7 15:00:17 | 显示全部楼层 |阅读模式
扫码加微信
Java程序设计辅导资料三主    题:第二章 Java数组、Java静态方法以及Java字符串(课件)
学习时间:2020年10月12日—10月18日       
“不忘初心、牢记使命”主题理论学习:
每周文摘:担使命,就是要牢记我们党肩负的实现中华民族伟大复兴的历史使命,勇于担当负责,积极主动作为,用科学的理念、长远的眼光、务实的作风谋划事业;保持斗争精神,敢于直面风险挑战,知重负重、攻坚克难,以坚忍不拔的意志和无私无畏的勇气战胜前进道路上的一切艰难险阻;在实践历练中增长经验智慧,在经风雨、见世面中壮筋骨、长才干。
摘选自《在“不忘初心、牢记使命”主题教育工作会议上的讲话》
内    容:
我们这周主要学习《Java程序设计》这门课程第2章后半部分Java数组、Java静态方法以及Java字符串的相关内容。希望通过下面的内容能使同学们对Java语言的基础有更进一步的了解。
知识要点:
一维数组
数组的初始化
数组的引用赋值
静态方法
方法声明与调用
方法重载
字符串
重点难点:
数组初始化
数组的引用赋值
静态方法
方法重载
数组
数组(array)是具有相同数据类型的元素的有序集合,数组的元素个数称为数组长度。元素在数组中的位置称为元素的下标,采用一个下标唯一确定一个元素的数组称为一维数组,采用两个下标唯一确定一个元素的数组称为二维数组。一个一维数组占用一块内存空间,每个元素连续存储,即每个元素的存储单元地址是连续的。
Java数组都是动态数组,在声明数组变量之后,使用new运算符申请数组的存储空间。
一、一维数组     声明一维数组变量的语法格式有以下两种,两者功能相同。
数据类型[] 数组变量;
数据类型 数组变量[];
数据类型是数组元素的数据类型,数组变量是用户声明的标识符,[]是必需的括号运算符,不是可选项,一对[]表示一维数组。例如:int[] a 或int a[]。 ??? 使用new运算符申请数组所需要内存单元的语法格式如下:
数组变量 = new 数据类型[长度]
其中,new是关键字,数据类型是数组元素的数据类型,该数据类型必须与数组变量的数据类型匹配;长度是数组申请的存储单元个数,长度必须为大于0的正整数。例如,以下数组a获得5个存储单元的内存空间,存储单元的大小由元素的数据类型决定。
a = new int[5];
Java语言自动为每个数组变量提供length属性表示数组占用的存储单元个数。使用点运算符获得数组长度的格式如下:
数组变量.length
一维数组的一个元素由一个下标唯一确定,格式如下:
数组变量[下标]
其中,下标是确定数组元素位置的表达式,其数据类型是整数类型,取值为0-a.length-1。数组中各元素在内存中按下标的升序顺序连续存放。上述数组a的5个元素是a[0]-a[4]。
数组声明时赋初值
数组变量在声明时可赋初值。例如:int a[]={1,2,3,4,5};
数组元素的初始化
Java对所有使用new运算符动态分配的存储单元都进行初始化工作,变量根据其所属的数据类型获得相应初值。各种数据类型的初始值如表3.1。
表3.1 Java各种数据类型的初始值
数据类型
初始值
数据类型
初始值

byte、short、int、long
0
char
“\u0000”

float
0.0f
boolean
false

double
0.0
引用数据类型
null


二、数组的引用模型
Java不支持C/C++的指针,对数组的操作只能引用下标,不能使用指针。Java的数组与C/C++的数组还有一些区别,Java全部是动态数组。
引用数据类型,与基本的数据类型变量的共同点在于都需要声明,都可以赋值。不同点在于:存储单元的分配方式不同,两个变量之间的赋值方式也不同。
基本数据类型变量的传值赋值
基本数据类型的变量获得存储单元的方式是静态的,声明了变量就意味着该变量占据了存储单元。变量保存数据值,两个变量之间赋值,传递的是值。
数组变量的引用赋值
引用数据类型的变量获得存储单元的方式都是动态的,必须使用new运算符申请并动态获得存储单元。引用变量保存地址、长度、引用计数等特性。
数组是引用数据类型。一个数组变量保存一个数组的引用,即该数组占用的一块存储空间的首地址、长度及引用计数等特性。两个数组变量之间的赋值是引用赋值,传递地址等引用特性、没有申请新的存储空间。例如:
int a[]={1,2,3,4,5}, b[];
b=a;        //引用赋值
b[1]=10;
复制数组
Java的System类提供复制数组的arraycopy()方法,该方法声明如下:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
arraycopy()方法将src数组从srcPro下标开始的length个元素复制到dest数组从destPos开始的若干存储单元中。例如:
int a[]={1,2,3,4,5},b[];
arraycopy(a,0,b,1,4);
三、二维数组
如果数组元素又是数组,则称为多维数组,常用的是二维数组。
声明二维数组
在声明二维数组变量及申请存储空间时,用括号运算符[][]标明二维。例如:
int mat[][];
mat=new int[2][3];
声明和申请空间可以合起来写:
int mat[][]=new int[2][3];
声明时可以为二维数组赋初值,将值用多层花括号(不能省略)括起来。例如:int mat[][]={{1,2,3},{4,5,6}};
另外,请同学们看一下教材中的二维数组的引用模型和不规则的二维数组,看一下,稍作了解,不做重点内容。
静态方法
在程序设计语言中,函数是实现特定功能的、可被调用执行并能返回值的程序段。函数包括函数声明和函数体。函数声明定义函数名、形式参数及返回值;函数体由执行操作的语句序列组成。函数执行通过函数调用实现。函数调用时必须指定函数名和实际参数,函数执行后返回结果值。函数返回值可以参加其数据类型允许的运算。
Java语言没有全局函数、函数声明在类中,称为成员方法,有静态方法和实例方法两种。
一、方法声明与调用
方法声明用于命名方法标识符,指定方法的返回值类型,声明格式如下:
[修饰符] 返回值类型 方法([参数列表])
{
    语句序列;
    [return[返回值]]
}
其中,修饰符指定方法的访问权限等特性,如关键字public声明公有方法,static声明静态方法等。没有返回值用关键字void标记。参数列表声明形式参数的数据类型,参数名是标识符,多个参数之间以逗号分隔;即使没有参数,()也不能省略。
在方法体中声明的变量称为局部变量,局部变量和形式参数的作用域都是局部的,仅限于声明它的方法之内。Java不支持类之外的全程变量。局部作用域,既使得变量不会被非法访问或修改,增加了安全性,又可在不同作用域中声明变量,不会相互干扰。
方法调用必须指定方法名和实际参数,语法格式如下:
方法([参数列表]);
方法调用执行方法体,返回结果值,方法返回值可以参加其数据类型所允许的运算。例如:if(isPrime(k));
注意:return语句表示方法调用结束,写在return后的语句将不会被执行。
声明main方法
Java Application应用程序从main()方法开始执行。如果一个类包含main()方法,则该类可被Java虚拟机执行。main()方法必须声明如下:
Public static void main(String args[])
其中,参数args是一个字符串数组,它接受命令行参数。
main()方法能够调用该类中的其他静态方法,也可通过对象调用实例成员方法。main()方法自己只能被Java虚拟机调用执行,不能被其他方法调用。
二、参数传递
方法调用时给出的参数称为实际参数,可以是常量、变量、表达式或方法调用等,多个参数之间用逗号分隔。实际参数必须在数据类型、参数个数及次序等三方面与形式参数一一对应。
方法调用的参数传递原则与赋值相同,即实际参数向形式参数赋值。传递方式因形式参数的数据类型不同,若是基本数据类型,则传递值;若是引用数据类型,则传递引用。在方法体内,如果修改引用类型的形式参数,同时改变对应的实际参数。
同样,方法返回值也因数据类型不同,分别传递值或引用。
三、方法重载
一个类中如果有多个同名方法但带有不同的参数列表,称为方法的重载。重载方法的参数列表不同是指参数的数据类型或个数或次序不同。重载方法之间必须以参数列表相区别,不能以返回值相区别,即不能有两个参数列表相同但返回值不同的重载方法。
程序运行时,究竟执行重载同名方法中的哪一个,取决于调用该方法的实际参数的数据类型、个数和次序。
四、递归方法
递归是数学中一种重要的概念定义方式,即用一个概念本身直接或间接地定义它自己。
递归定义必须满足以下两个条件:
·边界条件—至少有一条初始定义是非递归的,如1!=1。
·递推通式—由已知函数值逐步递推计算出未知函数值,如用(n-1)!定义n!.
存在直接或间接调用自身的算法称为递归算法。
字符串
字符串是字符的有限序列。Java的字符串String是一个类,属于引用数据类型。
String类的特殊之处在于它具有某些基本数据类型的特性。对字符串变量的操作和运算,既可以像基本数据类型变量一样,进行赋值、连接和关系运算,也可以像类的对象一样,通过调用类的方法执行Java定义的操作。
字符串的基本数据类型特性
字符串常量:是由双引号括起来表示的字符序列,其中可包含转义字符,如"hello!"、"汉字\n"、""等。字符串只能在同一行,不能换行。字符串长度指其中包含的字符个数,空串长度为0,一个字母、汉字均是Java的一个字符,数据类型是char,占2字节。
声明字符串变量的语法格式同基本数据类型。例如:
String str;               //声明变量
String str2= "abc";       //声明时赋初值
字符串变量赋值运算:
str= "abc";
String str2=str;
注意:用单引号括起来的是字符常量,如'a';用双引号括起来的是字符串常量,如"a",所以有"",没有'',而且两者数据不兼容。
Java使用字符串连接运算符“+”将两个字符串首尾相连接起来。例如:
str="abc"+"xyz";          //连接结果为"abcxyz"
与C/C++语言不同,Java语言的字符串不是字符数组,不能以字符数组方式通过下标对指定位置的字符进行操作。
二、字符串的类特性
String是一个类,具有构造方法、实例方法等。可通过String对象调用String的方法实现获得字符串长度、获得指定位置字符、获得指定位置子串等功能。String类的常用方法如表3.2。
表3.2 String类的常用方法
方法
说明

int length()
返回字符串的长度

boolean equals(Object obj)
比较两个字符串是否相等

char charAt(int index)
返回index指定位置的字符,index从0开始

String substring(int begin)
返回序号从begin开始至字符串末尾的字串,begin从0开始

String substring(int begin,int end)
返回序号从begin开始至end-1的字串

Static String format(String format,Object…args)
返回format指定格式的字符串


调用String类中的方法,可执行Java定义的操作,实现相应的功能,语法格式如下:
字符串变量.方法([参数列表])
例题
1、Java的数组都是动态数组,必须使用new为其分配空间。()
2、Java字符串可以用字符串变量操作,也可以用字符数组操作。()
3、下列代码语句所表示的含义是:()
    int a[]={1,2,3,4,5},b[];
    arraycopy(a,0,b,1,4);
4、'a'和"a"的区别是()
5、下列关于方法的重载,说法正确的是()。
A.方法重载则方法名相同  B. 方法重载则参数列表必须不同  C. 方法重载则方法返回值必须不同  D. 重载方法或者以参数列表相区别,或者以返回值相区别
6、写出用递归方法求Fibonacci数列的方法。
7、用Java实现字符串"abcd"的倒置输出。
例题答案
正确
错误
将a数组的前4个元素复制到b数组
前者表示字符常量,后者表示字符串常量
ABpublic static int fibonacci(int n)
{
        if(n>=0)
                if(n==0||n==1)
                        return n;
                else
                        return fibonacci(n-2)+fibonacci(n-1);
                return-1;
}public class reverse{
        public static viod main(String[] args){
                String str="abcd";
                String res="";
                for(int i=0;i<4;i++)
                        res=str.charAt(i)+res;
                System.out.println(res);        }
}
本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-12-27 01:22

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表