第五周课程总结&试验报告(三)
第五周总结:
1.本周学习了继承。学习了类的继承格式。class 父类{}、class 子类 extends 父类{}。还有一个子类只能继承一个父类,一个父类还可以有一个父类。即老师讲的动物狗的例子。
2.学习了final关键字。使用final声明的类不能有子类、使用final声明的方法不能被子类所覆写、使用final声明的变量即成常量,常量不可修改。
3.this和super的区别。属性访问上this是访问本类中的属性如果本类中没有此属性,则从父类中继续查找。super只是访问父类中的属性。调用结构this调用本类构造。super调用父类构造,必须放在子类构造方法首行。方法上this访问本类中的属性如果本类中没有此方法,则从父类中继续查找。super直接访问父类中的方法。
4.对象数组的使用要分为声明数组和为数组开辟空间两步。开辟空间后数组中的每个元素的内容都是null。
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
统计该字符串中字母s出现的次数。
统计该字符串中子串“is”出现的次数。
统计该字符串中单词“is”出现的次数。
实现该字符串的倒序输出。
实验代码:
package hlha;
public class Tongji {
static class Test {
public static void main(String[] args){
int a=0,b=0,c=0;
String str="this is a test of java";
char[] d=str.toCharArray();
for(int i=0;i<d.length;i++){
if(d[i]=='s'){
a++;
}
if(d[i]=='i'&&d[i+1]=='s'){
b++;
if(d[i-1]==' '&&d[i+2]==' '){
c++;
}
}
}
System.out.println("字符串中字母s出现的次数:"+a);
System.out.println("字符串中字串“is”出现的次数:"+b);
System.out.println("字符串中单词“is”出现的次数:"+c);
System.out.print("字符串的倒序输出:");
for(int i=d.length-1;i>=0;i--){
System.out.print(d[i]);
}
}
}
}
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
实验代码:
package hlha;
import java.util.Scanner;
public class daoxu {
public static void main(String[] args){
Scanner n=new Scanner(System.in);
String ch=n.next();
char[] c=ch.toCharArray();
for(int i=0;i<c.length;i++){
c[i]+=3;
}
System.out.print("加密后的结果:");
for(int i=0;i<c.length;i++){
System.out.print(c[i]);
}
}
}
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
实验代码:
package hlha;
public class Jishu {
public static void main(String[] args) {
String num="ddejidsEFALDFfnef2357 3ed";
char tum[]=num.toCharArray();
int j,i,a=0,b=0,c=0;
for(j=tum.length,i=0;i<j;i++) {
if(tum[i]>='a'&&tum[i]<='z') {
a++;
}else if(tum[i]>='A'&&tum[i]<='Z') {
b++;
}else {
c++;
}
}
System.out.println("小写字母数:"+a);
System.out.println("大写字母数:"+b);
System.out.println("非英文字母数:"+c);
}
}
第二题改正:
实验代码:
package hlha;
import java.util.Scanner;
public class daoxu {
public static void main(String[] args) {
Scanner sum = new Scanner(System.in); //输入值
String num = sum.nextLine(); //赋值给num
char tum[]=num.toCharArray(),hum[]=num.toCharArray(); //将num转化为字符型数组
int j,i,xum;
for(j=xum=tum.length-1,i=0;i<=xum;i++) { //循环语句;
if(i+2<j) { //如果向后移两位后的位置数小于该字符数组的总长度
hum[i+2+1]=tum[i]; //把值放入变化后的位置数加一中去
}else if(i+2>=j) { //如果向后移两位后的位置数大于该字符数组的总长度
hum[i+2-j]=tum[i]; //把值放入多出该字符数组的总长度的数值的位置中
}
if(i==xum) { //条件成立则所有的数都进行了移位
System.out.print("加密后的结果");
for(j=tum.length,i=0;i<j;i++) { //循环输出变化后的数
System.out.print(hum[i]);
}
}
}
}
}