JAVA第二次作业
(一)学习总结
1.学习使用Eclipse关联jdk源代码,查看String类的equals()方法,截图,并学习其实现方法。举例说明equals方法和==的区别。
关联JDK源代码:
equals 方法
将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
区别:
equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。
==是用来比较值是否相等。
equals方法的使用
public class equals {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hello";
String str3 = "hi";
boolean a = str2.equals(str1);
boolean b = str2.equals(str3);
System.out.println("str2 is equal to str1 = " + a);
System.out.println("str2 is equal to str3 = " + b);
}
}
输出结果为:
==方法的使用
public class equal {
public static void main(String[] args) {
int n=3;
int m=3;
System.out.println(n==m);
}
}
输出结果为:
2.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?
构造方法是一种特殊的方法名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
方法重载就是同一个方法名,不同的传参。
不可以通过编译,构造函数 Foo()未定义;
修改:
将Foo obj = new Foo(); 改为:
Foo obj = new Foo(0);
3.运行下列程序,结果是什么?查阅资料,分析为什么。
运行结果:
对于不需要任何精确计算的数字计算可直接使用float或double,但如果进行精确计算的结果,必须使用BigDecimal类。
修改:
import java.math.BigDecimal;
public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if(add(add(a,b),c) == 0.3){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
public static double add(double d1,double d2){
BigDecimal b1=new BigDecimal(Double.toString(d1));
BigDecimal b2=new BigDecimal(Double.toString(d2));
return b1.add(b2).doubleValue();
}
}
4.运行下列程序,结果是什么?分析原因,应如何修改
结果:
5.在一个10000次的循环中,需要进行字符串的连接操作,那么,应该使用String类还是StringBuffer类,为什么?性能有差异吗?能否写出测试代码证明你的结论。(可查阅资料)
6.其他需要总结的内容
(二)实验总结
实验内容:
1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。
2.Email验证:在各种应用中,需要对用户输入的email地址进行验证,编写一个方法,判断一个email地址是否有效。(判断条件:A:@和.同时存在 B: @在.之前 C: 不能@开头 D: 以com|cn|net|gov|edu|org结尾 )
(三)代码托管
代码上传:
码云链接:http://git.oschina.net/hebau_cs15/Java-CS02wcy/tree/master