201671010114 2016-2017-2 《Java程序设计》第六周学习总结
在第六周学习了接口,接口中包含抽象方法和常量。抽象类中既可以抽象方法也以包含具体的方法,接口中的方法被自动设置为public。使用接口的类不是抽象类必须实现接口中的所有抽象方法。一个类只能有一个父类但可以有多个接口。Timer类可以使用它在到达特定时间间隔时发出通告。在String类中可以直接使用Arrays.sort()方法。但要是其他类的话就必须实现Comparable接口。在lambda表达式中在比较字符串的长度时可以通过参数+->+一个表达式。它是一个可传递的代码块,可以在以后执行一次或多次。
在这次的编程实验中,对身份证文件中姓名按字典序排序用Arrays.sort()方法会出错。可能只适用于字母排序,要把汉字转化为拼音。深拷贝还是不太懂,程序中的有些注释不是特别会。
上次出现的问题
for(int i=0;i<n;i++)
{
System.out.println("请输入图形形状:");
String a = in.nextLine();
if(a.equals("rect"))
{
System.out.println("请输入长宽:");
Rectangle rec = new Rectangle(in.nextDouble(),in.nextDouble());
arr[i] = rec;
rec.getArea();
peri[i] = rec;
rec.getPerimeter();
}
if(a.equals("cir"))
{
System.out.println("请输入半径:");
Circle cir = new Circle(in.nextDouble());
arr[i] = cir;
cir.getArea();
peri[i] = cir;
cir.getPerimeter();
}
}
i++在for里面不可以执行;
for(int i=0;i<n;)
{
System.out.println("请输入图形形状:");
String a = in.nextLine();
if(a.equals("rect"))
{
System.out.println("请输入长宽:");
Rectangle rec = new Rectangle(in.nextDouble(),in.nextDouble());
arr[i] = rec;
rec.getArea();
peri[i] = rec;
rec.getPerimeter();
i++;
}
if(a.equals("cir"))
{
System.out.println("请输入半径:");
Circle cir = new Circle(in.nextDouble());
arr[i] = cir;
cir.getArea();
peri[i] = cir;
cir.getPerimeter();
i++;
}
}
i++写在语句里面就可以执行。