第五周

实验报告
一、实验目的
(1) 掌握类 String 类的使用:
(2) 学会使用JDK 帮助文档:
二、实验内容
1.已知字符串:"this is a test of Java".按要求执行以下操作:(要求源代码、结果
截图。)
1 统计该字符串中字母s出现的次数,
实验代码

public class aaa {
	public static void main(String[] arges) {
		String str1 ="this is a test of java";
		char a[]=str1.toCharArray();
		int b=0;
		for(int i=0;i<a.length;i++) {
		    if(a[i]=='s') {
			    b++;
		    }
		}
		System.out.print(b);
	}
	
}

运行结果截图

2 统计该字符串中子串“is”出现的次数。
实验代码

public class aaa {
	public static void main(String[] arges) {
		String str1 ="this is a test of java";
		char a[]=str1.toCharArray();
		int b=0;
		for(int i=0;i<a.length;i++) {
		    if(a[i]=='i'&&a[i=1]=='s') {
			    b++;
		    }
		}
		System.out.print(b);
	}
	
}

运行结果截图

3 统计该字符串中单词“is”出现的次数。
实验代码

public class aaa {
	public static void main(String[] arges) {
		String str ="this is a test of java";	
		int b=0;
		if(str.contains("is")) {
			b++;		
		}
		System.out.print(b);
	}
}

运行结果截图

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

public class aaa {
	public static void main(String[] arges) {
		String str="this is a test of java";
		String a[]=str.split(" ");
		for(int i=a.length-1;i>=0;i--) {
			System.out.print(a[i]+" ");
		}
	}
}

运行结果截图

2.请綿写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结
果截图。
开始将每个字符向后移动3位
实验代码

public class aaa {
	public static void main(String[] arges) {
		String str="12jdjfkgj";
		char s[]=str.toCharArray();
		int a=s.length;
		int d=0,i=3;
		while(d<a) {
			d++;
			System.out.print(s[i]);
			i=(i+1)%a;
		}
}
    }

运行结果截图

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

package 官方;

import java.util.Scanner;

public class aaa {
	public static void main(String[] arges) {
		String str="ddejidsEFALDFfnef2357 3ed";
		char s[]=str.toCharArray();
		System.out.print("大写字母:");
		for(int i=0;i<s.length-1;i++) {
			
			if(s[i]<='Z'&&s[i]>='A') {
				System.out.print(s[i]);
			}
			}
		System.out.print("\n");
		System.out.print("小写字母:");
		    for(int i=0;i<=s.length-1;i++) {
		    
			if(s[i]<='z'&&s[i]>='a') {
				System.out.print(s[i]); 
			}
		
		    }
		    System.out.print("\n");
		    System.out.print("其他字符:");
		    for(int i=0;i<=s.length-1;i++) {
		   
		      if((s[i]>90&&s[i]<97)||s[i]<65||s[i]>122)
			{
				System.out.print(s[i]);
			}
			
		}
		
    }
}

运行结果截图

实验总结:
这几道题重点是String类的运用,书上都有,第二题密码那个问题,我借用了约瑟夫环的那个问题的解决方法,用取余的方法,来实现循环;

学习总结:
本周学习学习了继承.重载与覆写.final关键字.抽象类。
关于继承需要注意以下几点:
子类能够继承父类的public和protected成员变量但不能够继承父类的private成员变量;
对父类的包访问权限成员变量,如果子类和父类在同一个包下,子类才可以继承;
对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,子类的成员变量会屏蔽掉父类的同名成员变量;如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用;
能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
父类的包访问权限成员方法,当子类和父类在同一个包下,子类能够继承,否则,子类不能够继承;
子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用;
隐藏是针对成员变量和静态方法,覆盖是针对普通方法;
子类不能继承父类的构造器,注意如果父类的构造器都是带有参数的,则必须在子类的构造器中通过super关键字调用父类的构造器,如果父类有没有参构造器,在子类的构造器中可不用super关键字,如果没有使用super关键字,系统会自动调用;
一个子类只能继承一个父类,可以用多层继承来实现多重继承,继承要用到extends,格式见书p163;
子类实例化前会先调用父类构造方法再用子类。
关于重载与覆写:
重载 方法名相同参数不同,两个可以同时用,用参数区分开;覆写 方法名相同参数相同,即上一个方法作废。
覆写的两个函数的函数特征相同,重载的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。
final关键字:
final声明的类不能有子类;
final声明的方法不能被子类所覆写;
final声明的变量即成为常量,常量不可以修改。
抽象类:
包含一个抽象方法的类必须是抽象类;
抽象类和抽象方法都要使用abstract关键字声明;
抽象方法只需要声明而不需要实现;
抽象类必须被子类继承,子类必须覆写抽象类中全部抽象方法。

posted @ 2019-09-27 20:18  hshsr  阅读(135)  评论(0编辑  收藏  举报