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

实验三 String类的应用

一、实验目的

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

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

二、实验内容

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

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

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

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

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

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

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

1.实验源码

package test;

public class 实验三1 {

public static void main(String[] args) {
		String s="this is a test of java";
		text pr=new text();
		pr.s出现的次数(s);
		pr.子串is出现的次数(s);
		pr.单词is出现的次数(s);
		pr.倒序输出(s);
	}
}

class text {
public void s出现的次数(String n){
	int count=0;
		char ss[]=n.toCharArray();//将字符串变为字符数组
		for(int i=0;i<ss.length;i++)
			if(ss[i]=='s')
				count++;
		System.out.println("s出现的次数="+count);
}
public void 单词is出现的次数(String n){
	int count=0;
	String ss[]=n.split(" ");//按空格将字符串拆分
	for(String e:ss)
	{
		if(e.equals("is")) {
			count++;
		}
	}
	System.out.println("单词is出现的次数="+count);
}

public void 子串is出现的次数(String n) {
	int count =0,i=0;
	int m=n.indexOf("is",i);//从零开始寻找字符串is
	while(m!=-1) {
		count++;//找到后计数加一
		i=m+1;
		m=n.indexOf("is",i);//从找到的位置的后一位继续寻找
	}
	System.out.println("子串is出现的次数="+count);
}

public void 倒序输出(String n) {
	char c[]=n.toCharArray();
	System.out.print("倒序输出的结果为:");
	for(int i=n.length()-1;i>=0;i--)
	{
		System.out.print(c[i]);
	}
}
}

实验结果

2.实验源码

package test;
import java.util.Scanner;
public class 实验三2 {

public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	String c=s.nextLine();
	int j=0;
	char[] n=c.toCharArray();
	char[] m=new char[100];//定义新数组
	for(int i=n.length-3;i<n.length;i++)
	{
		m[j]=n[i];//将数组的最后三位存储到新数组中
		j++;
	} 
	for(int i=0;i<n.length-3;i++)
	{
		m[j]=n[i];//将除最后三位的其他数一次存储到新数组中实现数组循环
		j++;
	}
	System.out.print(m);//输出新数组
}

}

实验结果

3.实验源码

package test;

public class 实验三3 {

public static void main(String[] args) {
	int i;
	int a=0,b=0,c=0;
	String ss="ddejidsEFALDFfnef2357 3ed";
	char s[]=ss.toCharArray();//将ss转化为字符数组
	for(i=0;i<s.length;i++)
	{
		if(s[i]<='Z'&&s[i]>='A')
			a++;
		else if(s[i]<='z'&&s[i]>'a')
			b++;
		else
			c++;
	}
	System.out.println("大写字母数="+a);
	System.out.println("小写字母数="+b);
	System.out.println("非英文字母数="+a);
}
}

实验结果

课程总结

1.继承

类的继承格式

class 父类{}
class 子类 extends 父类{}

通过继承,可以将父类的内容保留在子类中,子类也可以定义自己的属性或方法

class Person{
private String name;
private int age;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
}
class Student extends Person{
private  String school;
public String getSchool() {
	return school;
}
public void setSchool(String school) {
	this.school = school;
}
}

在Java中,一个子类只能继承一个父类,一个父类还可以有一个父类。

:子类是不能直接访问父类中的私有成员,但子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。

子类对象在实例化之前会默认调用父类中的构造方法。所以在实例化子类对象之前需要先将父类中的属性进行初始化。

2.方法的覆写

方法的覆写是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有父类方法更加严格的访问权限。

权限大小:private<defaut<public

方法的重载与覆写的区别

序号 区别点 重载 覆写
1 单词 Overloadig Overriding
2 定义 方法名称相同,参数的类型或个数不同 方法名称、参数类型、返回值类型全部相同
3 对权限没有要求 被覆写的方法不能拥有更严格的权限
4 范围 发生在一个类中 发生在继承类中

3.super关键字

1).使用super可以从子类中调用父类中的构造方法、普通方法、属性
2).super语句必须放在子类构造方法的首行,因此与this不能同时出现
3).在主方法中不能使用this和super方法

4.final关键字

1).使用final声明的类不能有子类
2).使用final声明的方法不能被子类所覆写
3).使用final声明的变量即为常量,不可修改
4).使用final声明变量时,要求全部的字母大写

原文地址:https://www.cnblogs.com/jk-liulei/p/11579663.html