java基础案例教材

java基础案例教材目录 写在前面 使用教材 实验二 Java 语言基础 实验三 Java 语言基础 实验四 类与对象基础 实验五 类与对象基础 实验六 类与对象基础 实验七 类的设计与封装 java 基础案例教材 写在前面 关于题目 涉及 Java 语言基础 类与对象基础 类的设计与封装 类继承与接口的设计 集合框架与泛型 异常类

大家好,我是讯享网,很高兴认识大家。



目录

    • 写在前面
    • 使用教材
    • 实验二:Java语言基础
    • 实验三:Java语言基础
    • 实验四:类与对象基础
    • 实验五:类与对象基础
    • 实验六:类与对象基础
    • 实验七:类的设计与封装
    java基础案例教材

写在前面

  • 关于题目
    涉及Java语言基础、类与对象基础、类的设计与封装、类继承与接口的设计、集合框架与泛型、异常类、嵌套类、枚举类型、输入/输出流、多线程与网络编程基础等大内容,知识点包括标识符、关键字与字面值、变量与类型、运算符与表达式、语句、类与对象、Math类、字符串:String类与StringBuffer类、数组对象、包装类、大数处理与BigInteger类、时间处理、类设计的基本思路、矩形类的初步设计、类声明与域的定义……
    题目来自实验课老师布置,由于课本不在手边,所以涉及课本例题的,没有办法提供原例题。
  • 关于答案
    主要是我作业里自己写的代码,如果和老师发的参考答案差别较大,会发上两个答案。能力有限,如果有错误的地方,欢迎指正。
  • 持续更新中……

使用教材

  • Java面向对象程序设计

出版社:高等教育出版社
作者: 苏健
版次:1
重点项目: “十一五”国家规划课题研究成果

实验二:Java语言基础

  1. 结合C语言课程的代码,将例2.4更改为判断素数的总个数。
 
讯享网 
  1. 阅读课本P32中2.5.2关于Java基本类型的内容。试回答:C语言中是否有对应的数据类型? 如果有,两者有差异吗,如果没有,C语言中有没有实现类似功能的内容?

Java基本类型在C语言中对应的基本类型:
整数类型:int-int、short-short、long-long;
浮点类型:float-float、double-double;
字符类型:char-char。
C语言没有byte和boolean类型。
对应的类型中,Java的long类型取值范围比C语言的更广,Java的char类型占用2个字节(16位),C语言的char类型占用1个字节(8位)。
C语言中,unsigned char可以实现Java的byte类型;而要实现Java中的boolean布尔类型,需要在代码运算后用return功能返回一个表达式,表达式0表示假,非0表示真。

实验三:Java语言基础

  1. 首先判断下列语句是否有错,然后上机检验,如果有错的请更正并说明错误原因。
    在这里插入图片描述
  2. 假设已定义变量int a=9; int b=2; 请判断以下表达式的值以及运行后a和b的值,然后上机检验。

逻辑运算符左右两边只接受boolean类型,具有短路特性
位运算符可以使用所有整数类型和boolean类型的数据,没有短路特性

  1. (a–>7) || (b++>7)
    表达式的值为true,a=8,b=2
  2. ((a–)>7) | (b++>7)
    表达式的值为true,a=7,b=3
  3. (b++>7) && ((a–)>7)
    表达式的值为false,a=7,b=3
  4. (b++>7) & ((a–)>7)
    表达式的值为false,a=7,b=3
  1. 试判断下面两段程序是否有错误。
讯享网
  1. 阅读类StringExample1的代码,通过搜索引擎或猜测三个println语句输出的结果,然后运行程序验证你的结果。
 
  1. 类ArrayAverage用于对两个数组计算平均值,main中通过调用getAver函数来计算平均值,补充两个函数中的语句使其能正常工作。
讯享网
 
  1. 完成课本P57的习题15,类名定义为TestDigi,题中的“输入若干个数字”可以直接初始化一个数组,然后依次判断数组的元素,无须使用Scanner类。
 
 

实验四:类与对象基础

  1. 阅读并运行课本P.66中的例子3.2,两个类都加上public限定符号,两个类放在同一个包下。
    //注意:由于加了public,两个类要分别放在自己的类文件中,文件名和类型一致。
 
  1. 编写程序通过Math类的方法和域来实现如下功能:首先生成3个随机数,然后以这3个数为半径,分别计算其面积,最后输出这三个面积的最大值。
    //相关方法在P71
 
 
  1. 阅读并运行课本P.78中的例3.8,然后编写类SStrLoc来实现功能:给定一个字符串,通过程序判断该字符串中是否包含某个子串。如果包含,求出子串的所有出现位置。如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12。注意找到子串后,再次搜索可以直接从这个子串后开始,无须再从第二个字符开始,例如前述例子中,找到第一个bcb后,可以直接从第5个字符开始第二次搜索。
 
 
  1. 回答问题:如何判断两个String对象是否相等?如何判断两个String对象在忽略大小写的情况下是否相等?并补充下列代码,通过代码判断几个String对象的关系。
    //P77中有判断字符串是否相等的方法,==只能判断引用(对象地址)是否相等。
    //注意S1和S2的关系、S1和S3的关系,注意阅读P74中例3.4前面的一段话。
 
  1. 首先阅读并运行课本P80中的例3.11。假定有字符串对象s,String s=”name=zhangsan age=18 classNo=090728” ; 编写类SplitStr将上面的字符串拆分,结果如下: zhangsan 18 090728。
    //提示:首先使用空格进行拆分,再使用=进行拆分。
 
 
  1. 编写类RevStr将输入的字符串反转并变更为大写,例如将”test” 变为 “TSET”。
    //提示:查找类String或StringBuffer,看有没有类似的方法。
    //P81,String和StringBuffer的相互转换
 
  1. 编写类SymStr来实现功能:给定一个字符串,判断该字符串是否对称,例如abcdcba和abcddcba都是对称的。
 
 

实验五:类与对象基础

  1. 回答以下问题。
    1)如定义对象 StringBuffer ch = new StringBuffer(“Shanghai”) 则ch.length()=( 【1】 )。
    2)对于数组int t[ ][ ]={{1,2,3},{4,5,6}}来说,t.length等于( 【2】 ),t[0].length等于( 【3】 )。
    3)判断下列两个程序的输出:
    在这里插入图片描述
    在这里插入图片描述

//注意字符串使用成员方法length()来获取长度,数组使用成员变量length来获取长度。
//数组名是一个对象引用。第一个例子最后a和b指向同一个数组。

【1】 8
【2】 2
【3】 3
第一个输出:10
第二个输出:1

  1. 下图是数组myArray在内存堆上的示意图,写出可以生成这个数组的语句。
    在这里插入图片描述
 
 
  1. 数组ca的数值如下:{{1,3,4,5},{7,8,9},{1,2},{8,7,6,5,4,3,2,1}};编写程序,使用for语句遍历整个数组的元素。
 
  1. 编写程序实现下列功能:
    1)使用Random类随机填充一个长度为20的整数数组a,0<=数组元素<=100,输出所有的数组元素;
    2)查找数组a中是否包含值为60的元素;
    3)将数组a的前10个元素复制到数组b,输出b的元素;
    4)分别计算数组a和数组b的平均值。
 
 
  1. 包装类的函数主要用于(基本数据类型/字符串/包装类)三者间的转换。通过阅读课本或搜索,通过语句举例回答如下问题(以int/Integer/String为例):

(1) 现有基本数据类型变量,如何转换为对应的包装类?如何转换为字符串?

int i = 10;
Integer i1 = new Integer(i);
String si = Integer.toString(i);

(2)现有字符串形式表示的基本数据类型,如何转换为对应的包装类?如何转换为基本数据类型?

String si = “10”;
Integer i1 = new Integer(si);
int i = Integer.parseInt(si);

(3) 现在包装类对象,如何转换为对应的基本数据?如何转换为字符串?

Integer i1 = new Integer(10);
int i = i1. intValue( );
String si = i1.toString();

实验六:类与对象基础

  1. concat是String类的成员函数,用于连接两个字符串。编写程序验证下列语句能否实现连接字符串的功能。
    string x = “abc”;
    x.concat(“def”);
    System.out.println("x = "+x);

不能,因为conta函数只能调用,而不能修改字符串本身的内容。要获取新的字符串需要创建新的字符串对象。实现字符串连接可以使用下列语句:
String y = x.concat(“def”);
System.out.println("y = " + y);

  1. append是StringBuffer类的成员函数,同样用于连接两个字符串。下列语句能否实现连接字符串的功能?编写程序验证。
    StringBuffer sb = new StringBuffer(“abc”);
    sb.append(“def”);
    System.out.println("sb = " + sb);

能,因为append函数是StringBuffer类通过重载方法得到的。

  1. 下面的代码主要用来统计通过String类连接10000个字符所花费的时间。Random类主要用来生成随机数;nanoTime()是System类的静态函数,用来返回当前时间(纳秒)。读懂下列代码并上机运行。然后使用StringBuffer类改写EX51,并对比两个程序的运行结果,哪个更快?为什么?
 
 
  1. 阅读课本例3.30(P110)和例3.31(P112),然后完成课本习题3中的第15小题(P126)。
 
  1. 编程实现(Calendar类/Date类):
    (1) 给定一个身份证号(可以直接在程序中定义,不需要从键盘输入),输出生日的年、月、日,并计算当天是星期几。
    (2) 计算下一个生日还有多少天(注意今年的生日可能已经过了)。
 
 

实验七:类的设计与封装

  1. 阅读课本P138中的例4.2,并上机运行。对比例4.1,例4.2改进了什么地方?

例4.2为Rectangle类提供了一个构造器,并在这个构造器中提供了对象的初始化代码,这样既方便Rectangle对象的创建和使用,同时也避免了对象初始化代码的简单重复。因为nextId是类变量,所以nextId的值可被多个对象共享。由于构造器在每次执行创建对象时,都对nextId进行自增,这就保证在创建下一个对象时,其编号都是唯一的。

  1. 阅读课本P147中的例4.4,并上机运行。对比例4.3,例4.4改进了什么地方?

例4.4演示了如何在一个构造器中通过“this(参数)”形式调用重载的其他构造器。在这个例子中,Rectangle类的构造器2和构造器3中都通过this(参数)调用了构造器1,从而避免了对象创建功能代码的重复。

  1. 模仿课本P150中的例4.5,上机运行,然后给例4.5添加一个成员方法,这个成员方法用来判断一个矩形是否为一个正方形。
 
 
  1. 模仿课本的例4.5的矩形类,编程实现一个类似的三角形类。

                    
小讯
上一篇 2025-01-03 07:01
下一篇 2024-12-29 23:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5325.html