第五周课程总结&试验报告(三)
第五周课程总结
本周主要学习了
1.继承和方法的重载与覆写
2.Super关键字
|this与super的区别|
| ------------ | ------------ | ------------ | ------------ |
|序号 | 区别点 | this | super |
| 1 | 属性访问 | 访问本类中的属性,如果本类中没有此属性则从父类中继续查找| 访问父类中的属性 |
| 2 | 方法|访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 | 直接访问父类中的方法 |
|3 |调用构造 |调用本类构造,必须放在构造方法的首行 | 调用父类构造,必须放在子类构造方法的首行 |
| 4 | 特殊 | 表示当前对象(可指向子类) |无此概念(不可指向父类) |
3.抽象类和对象的多态性(这节在下周与接口一起总结)
实验三 String类的应用
一、实验目的
- 掌握类String类的使用;
- 学会使用JDK帮助文档;
二、实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
- 统计该字符串中字母s出现的次数。
- 统计该字符串中子串“is”出现的次数。
- 统计该字符串中单词“is”出现的次数。
- 实现该字符串的倒序输出。
实验源码:
package homework;
public class Statistics {
public static void main(String[] args) {
String str1 = "this is a test of java";
String word = "is";
int counts = 0, countis = 0, countword = 0;
String s[] = str1.split(" ");
char c[] = str1.toCharArray(); //方法一
for(int i=0; i<str1.length(); i++) {
//char c = str1.charAt(i); //方法二
if(c[i] =='s')
counts ++;
}
System.out.println("s = "+counts);
for(int j=0; j<str1.length()-1; j++) {
if(c[j] =='i'&&c[j+1] == 's')
countis ++;
}
System.out.println("子串is = "+countis);
for(int k=0; k<6; k++) {
if(s[k].equals(word))
countword ++;
}
System.out.println("word is = "+countword);
for (int m = str1.length()-1; m>=0; m--) {
char n= str1.charAt(m);
System.out.print(n);
}
}
}
实验中遇到的问题:明明编译的时候没有提示错误但结果一直在报错,不理解报错语句的含义。
解决办法:翻译了一下报错语句,结果发现好像是循环时超过了它原有的长度。
将上图中的i<=str.length(),改为i<str.length()。
实验结果:
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
package homework;
import java.util.Scanner;
public class Encryption {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char c[] = str.toCharArray();
for(int i=0; i<str.length(); i ++) {
System.out.print((char)((int)c[i]+3));
}
}
实验中遇到的问题:
无,上课都提示过是阿斯克码值往后移3位了,没啥好错的咯。
实验结果:
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
package homework;
public class Classify {
public static void main(String[] args) {
String str="ddejidsEFALDFfnef2357 3ed";
char c[] = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
if (c[i] >= 'A' && c[i] <= 'Z')
System.out.print(str.charAt(i));
}
System.out.println();
for (int j= 0; j < str.length(); j++) {
if (c[j] >= 'a' && c[j] <= 'z')
System.out.print(str.charAt(j));
}
System.out.println();
for (int k= 0; k < str.length(); k++){
if(c[k]<'A'||c[k]>'z')
System.out.print(str.charAt(k));
}
}
}
实验中遇到的问题:
无
实验结果:
三、 总结
1.在写第一题的过程中发现了两种解决(- 统计该字符串中字母s出现的次数。)的办法,但是🐖教表示第二种可以保护字符串,所以一般使用第二种办法。