第五周课程总结&试验报告(三)
第五周课程总结
1、this和super的区别:
this:访问本类中的属性,如果本类没有此属性则从父类中继续查找;访问本类中的方法,如果本类中没有此方法则从父类中继续查找;调用本类构造,必须放在构造方法的首行;表示当前对象。
super:访问父类中的属性;直接访问父类中的方法;调用父类构造,必须放在子类构造方法的首行。
注意:this和super都可以调用构造方法,但两者是不可以同时出现的,因为两者调用构造方法时都必须放在构造方法首行。
2、final的使用:
final:final声明的类不能有子类;;final声明的方法不能被子类所覆写;final声明的变量及成为常量。
3、抽象类的定义及使用规则:
包含一个抽象方法的类必须是抽象类;抽象类和抽象方法都要使用abstract关键字声明;抽象方法只需要声明而不需要实现;抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。
4、实验中遇到的问题:
第一题比较简单,老师在上课的时候讲过了;第二题有一点麻烦,就是在输入的字符串小于3的时候该怎么输出,想了一下应该就是倒序输出,大于3的时候就先输出后三位字符。(第二题没明白题目意思不知道是‘a'变’d',还是移动字母位置,所以写了两个源码)第三题也比较简单,老师在课上讲了大概的思路,然后在c语言中又做过类似的题目,很快就写出来了。
实验报告
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
统计该字符串中字母s出现的次数。
统计该字符串中子串“is”出现的次数。
统计该字符串中单词“is”出现的次数。
实现该字符串的倒序输出。
源码1:
package shiyan3;
public class sis {
public static void main(String[] args) {
String r = "this is a test of java";
int a=0,b=0,d=0;
char[] c = r.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 's') {
a++;
}
if (c[i] == 'i' && c[i + 1] == 's') {
b++;
}
}
String t[] = r.split(" ");
for (int i = 0; i < t.length; i++) {
if (t[i].equals("is")) {
d++;
}
}
System.out.println("s的个数为:"+a);
System.out.println("is的个数为:"+b);
System.out.println("单词is的个数为:"+d);
System.out.print("倒序输出: ");
for (int i = c.length-1; i >= 0; i--) {
System.out.print(c[i]);
}
}
}
截图1:
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
源码2:
package shiyan3;
import java.util.Scanner;
public class jiami {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String v = sc.nextLine();
char[] r = v.toCharArray();
if (v.length() <= 3) {
for (int i = v.length()-1; i >= 0; i--) {
System.out.print(r[i]);
}
}
else {
System.out.print(r[v.length() - 3]+""+r[v.length() - 2]+""+r[v.length() - 1]);
for (int i = 0; i < v.length() - 3; i++) {
System.out.print(r[i]);
}
}
}
}
源码2.1:
package shiyan3;
import java.util.Scanner;
public class Jiami2 {
public static void main(String []args) {
@SuppressWarnings("resource")
Scanner v=new Scanner(System.in);
String a=v.next();
char[] c=a.toCharArray();
System.out.print("加密后密码为:");
System.out.print(c[c.length-3]);
System.out.print(c[c.length-2]);
System.out.print(c[c.length-1]);
for(int i=0;i<c.length-3;i++) {
System.out.print(c[i]);
}
}
}
截图2:
截图2.1:
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
源码3:
package shiyan3;
public class zifushu {
public static void main(String[] args) {
String b="ddejidsEFALDFfnef2357 3ed";
int big=0,small=0,another=0;
char[] c=b.toCharArray();
for(int i=0;i<b.length();i++) {
if('a'<=c[i]&&c[i]<='z') {
small++;
}
else if('A'<=c[i]&&c[i]<'Z') {
big++;
}
else if('1'<=c[i]&&c[i]<='9'){
another++;
}
}
System.out.println("大写字母数:"+big);
System.out.println("小写字母数:"+small);
System.out.println("非字母数:"+another);
}
}
截图3: