第五周课程总结&试验报告(三)

第五周总结:
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]);
	                }
	            }
	        }
	    }
	}


posted @ 2019-09-27 19:58  马大鹏  阅读(174)  评论(2编辑  收藏  举报