java的第2周作业

---恢复内容开始---

(一)学习总结

1.学习使用Eclipse关联jdk源代码,查看String类的equals()方法,截图,并学习其实现方法。举例说明equals方法和==的区别。1079951-20170328100315514-1264121806.jpg

运行结果:str1==str2->true;str1==str3->true;str2==str3->true;
equals是用于字符串的比较,”=="是只用于数值的比较;用equals比较,相同则为true,不同则为false。

2.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?

构造方法是一种特殊的成员方法,在创造每个新的类对象时会自动执行,一个类中可以有多种构造方法,它的作用是完成对象的初始化。
构造方法的重载是指多个方法具有相同的名字,但是这些方法的参数必须是不同的,或者是参数个数不同或者是参数类型不同。在类中,可以通过方法的重载来提供多个构建器。构造函数重载可以用来适应在调用函数时候不同返回值和参数的要求 不明白您说的什么属性都写在一个里面的意思.

1下面的程序是否可以通过编译?为什么?

public class Test {
public static void main(String args[]) {
Foo obj = new Foo();
}
}
class Foo{
int value;
public Foo(int intValue){
value = intValue;
}
}
不能通过编译。没有定义Foo().

3.运行下列程序,结果是什么,分析为什么。

public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c) == 0.3){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
结果不等于0.3;因为没有考虑到double的精度问题。

4运行下列程序,结果是什么?分析原因,应如何修改.

public class Test {
public static void main(String[] args) {
MyClass[] arr=new MyClass[3];
arr[1].value=100;
}
}
class MyClass{
public int value=1;
}
程序只声明了,没有正常初始化。
public int value=1;
更改为
int value=1;
public MyClass(int i){value=1;}

5.在一个10000次的循环中,需要进行字符串的连接操作,那么,应该使用String类还是StringBuffer类,为什么?性能有差异吗?能否写出测试代码证明你的结论。(可查阅资料)

string类
public class StringBufferstring{
public static void main(String[] args){
String str1="wangming";
for(int i=0;i<10000;i++){
str1+=i;
}
System.out.println(str1);
}
}
StringBuffer类
public class StringBuffterstring{
public static void main(String[] args){
StringBuffer buf=new StringBuffter();
buf.append("wangming")
for(int i=0;i<10000;i++){
str1+=i;
}
System.out.println(str1);
}
}
用string类编写的程序用的时间明显比StringBuffer类时间长,而且一旦中间产生错误,前者需要重新编写,后者不需要,只需更改某些数据即可。

6其他需要总结的方面。

学习程序必须多看,然后再按照他们敲一遍,理解他们是如何去写的。
6.其他需要总结的内容。

(二)实验总结

实验内容:
##1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。
问题1,如何调出最大值,最小值的?
解决办法:1079951-20170328104038092-2014197115.png

2.Email验证:在各种应用中,需要对用户输入的email地址进行验证,编写一个方法,判断一个email地址是否有效。(判断条件:A:@和.同时存在 B: @在.之前 C: 不能@开头 D: 以com|cn|net|gov|edu|org结尾 )

3.统计文件:输入一个字符串,包含各种文件类型的文件名。文件名之间用“,”分隔,要求将各个文件名的首字母大写后分别输出,并统计各种类型文件的文件个数。

问题1,如何将小写转变成大写的?
解决方法:1079951-20170328104430592-1650992204.png

4.身份证识别:公民身份证号码由十八位数字组成。从左至右依次为:六位地址码,八位出生日期码,三位顺序码和一位校验码。顺序码的奇数分配给男性,偶数分配给女性。编写一个识别身份证基本信息的小工具,输入一个居民身份证号,则输出居民所属省份(直辖市、自治区),生日(格式:xxxx-xx-xx)和性别信息。

问题1,不用一个一个的条件怎么实现更简单的查找籍贯省份?
解决方法:1079951-20170328104715795-199832539.png
三 代码托管
1079951-20170328130036295-258009512.png
git@git.oschina.net:hebau_cs15/java-CS02gwh2.git

转载于:https://www.cnblogs.com/gwhwyx/p/6633876.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值