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

Java实验报告

班级 计科二班 学号 20188423 姓名 邹健

完成时间 2019.9.27

评分等级

实验三 String类的应用

一、实验目的

(1) 掌握类String类的使用;

(2) 学会使用JDK帮助文档;

二、实验内容

1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

① 统计该字符串中字母s出现的次数。

② 统计该字符串中子串“is”出现的次数。

③ 统计该字符串中单词“is”出现的次数。

④ 实现该字符串的倒序输出。

2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

(一)已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

① 统计该字符串中字母s出现的次数。

② 统计该字符串中子串“is”出现的次数。

③ 统计该字符串中单词“is”出现的次数。

④ 实现该字符串的倒序输出
实验代码

package First;

public class Demo31 {

	public static void main(String[] args) {
		 int a=0,b=0,l=0;
	        String str="this is a test of java";
	        char[] c=str.toCharArray();
	        for(int i=0;i<c.length;i++){
	            if(c[i]=='s'){
	                a++;
	            }
	            if(c[i]=='i'&&c[i+1]=='s'){
	                b++;
	                
	            if(c[i-1]==' '&&c[i+2]==' '){
	                    l++;
	                }
	            }
	        }
	        System.out.println("s个数:"+a);
	        System.out.println("is次数:"+b);
	        System.out.println("单词is次数:"+l);
	        
	        System.out.print("倒序输出:");
	        for(int i=c.length-1;i>=0;i--){
	            System.out.print(c[i]);

	}

}
}



实验结果

(二)请编写一个程序,使用下述算法加密或解密用户输入的英文字串
实验代码:

package First;
import java.util.Scanner;
public class Demo32 {

	public static void main(String[] args) {		
		   System.out.println("输入一个字符串");
	        Scanner sc=new Scanner(System.in);
	        String  s=sc.nextLine();
	        char x[]=s.toCharArray();//数据输入并转换为数组
	        char y[]=new char [x.length];
	        int i=0,k=0;
	        if (x.length==1 ||x.length==2 ) {
	            System.out.println("请输入三位及以上字符");
	        }
	        else {
	        for(i=x.length-3;i<x.length;i++) {
	            y[k]=x[i];
	            k++;
	        }
	        for(i=0;i<x.length-3;i++) {
	            y[k]=x[i];
	            k++;
	        }//将密码后移
	        System.out.println("加密的密码为");
	        System.out.println(y);
	    }
	    
	 }
	 }

实验结果

(三).已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
实验代码

package First;

public class Demo33 {

	public static void main(String[] args) {
	     		 String str = "ddejidsEFALDEfnef2357 3ed";
	        char c[] = str.toCharArray();//将字符串转换为数组
	        int x = 0, y = 0, z = 0;
	        for(int i = 0;i < c.length;i ++) {
	            if((int)c[i] >= 65 & (int)c[i] <= 90) 
	            x++;
	            if((int)c[i] >= 97 & (int)c[i] <= 122) {
	                y++;
	            }
	            
	            if((int)c[i] < 65 || (int)c[i] > 90 & (int)c[i] < 97 || (int)c[i] > 122) {
	                z++;
	            }
	        }
	        System.out.println("大写字母数:"+x);
	        System.out.println("小写字母数:"+y);
	        System.out.println("非英文字数:"+z);
	    }

	
	}

实验结果

学习总结:
本周学习了对象的多态性
1)向上转型:子类对象→父类对象(自动转换)
2)向下转型:父类对象→子类对象(强制转换)

final关键字(表示的意思是最终的意思,也可以称为完结器)
1)使用final声明的类不能有子类
2)使用final声明的方法不能被子类所覆写
3)使用final声明的变量级成为常量,常量不可以修改

继承:在Java类中只允许单一继承,即一个子类只可以继承一个父类,允许进行多层继承,即一个子类可以有一个父类,一个父类还可以有一个父类,且子类将继承父类的非私有属性和方法,但父类与子类只能一对一,即一个父类下面只有一个子类,但是那个子类可以作为父类进行下一次的继承。

方法的重载与复写:在重载中,方法名称相同,参数的类型或者个数不同,而覆盖都是相同的。覆盖只有发生在父类与子类之间,而重载可以发生在同一类中。
main方法不能使用this与super
继承中super 可以调用父类的构造方法(非私有),调用父类的属性及其方法,this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

posted @ 2019-09-27 18:25  青衫拓落  阅读(204)  评论(0编辑  收藏  举报