第三次实验报告及总结

String的主要方法:

1.Length():获取当前字串长度
2.charAt(int index):获取当前字符串对象下标index处的字符
3.getChars():获取从指定位置起的子串复制到字符数组中
4.replace(char ch1,char ch2):将字符串的字符ch1替换为字符串ch2.
5.toUpperCase():将字符串中的小写字符转换为大写字符
6.toLowerCase():将字符串中的大写字符转换为小写字符
7.toCharArray():将字符串对象转换为字符数组

Java基本方法命名

1.方法命名为【修饰符1,2,3】 返回值类型 方法名 (形式参数);并且是有return作为结束
2.无返回值的时候 必须要用指定为void
3.实参的数量,数值,及数据类型和次序,必须和形参的一致;
4.java进行方法调用的时候,数据传递是值传递,传递的都是数据的副本
5.基本数据类型传递的是值的copy值
6.引用数据类型传递的是对象引用的copy值,所指的是同一个对象

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

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

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

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

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

一、实验代码


public class text {

	public static void main(String[] args) {
		int count=0;
		String str="this is test a java";
		 for(int i=0;i<str.length();i++) {
			 if(str.substring(i,(i+1)).indexOf("s") != -1)//用substring截取字符串然后用indexOf进行查找
				 count++;
		 }
			System.out.println(count);
		
	}

}

实验结果截图:

二、实验代码:


public class text {

	public static void main(String[] args) {
		int count=0;
		String str="this is test a java";
		 for(int i=0;i<str.length();i++) {
			 if('i'==str.charAt(i)&&'s'==str.charAt(i+1)) {
			   count++;
			 }
		 }
			System.out.println("字符is出现的次数为:"+count);
		
	}

}

实验结果截图:

三、实验代码:


public class text {

	public static void main(String[] args) {
		int count=0;
		int a=0;
		String str="this is test a java";
		 for(int i=0;i<str.length();i++) {
			 if('i'==str.charAt(i)&&'s'==str.charAt(i+1)&&' '==str.charAt(i-1)) {
			   count++;
			 }
		 }
			System.out.println("单词is出现的次数为:"+count);
		
	}

}

实验结果截图:

四、实验代码:


public class text {

	public static void main(String[] args) {
		String str="this is test a java";
		StringBuffer buffer = new StringBuffer(str);
		System.out.println(buffer.reverse());
		
	}

}
/*此题我在网上查了一下有没有什么能直接倒叙的String方法,然后方法如下:
 * 定义成一个StringBuffer类,用StringBuffer类中的reverse()方法直接倒序字符串
 * public StringBuffer reverse() 将此字符序列用其反转形式取代。
 *  */
                   

实验结果截图:

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

实验代码:

import java.util.*;
public class text1 {
    static void change() {  
    	System.out.println("请输入字符串:");
  		Scanner in = new Scanner(System.in);
  		String str = in.nextLine();
  		char c[]= str.toCharArray();//实现数据的输入并将其转换为数组
    	char b[] = new char[50] ;//定义一个新的数组
    	int j=0;
    	for(int i = c.length-3;i<c.length;i++) {
    		b[j]=c[i];
    		j++;
    	}
    	for(int z=0;z<c.length-3;z++) {
    		b[j]=c[z];
    		j++;
    	}//实现密码的移位
    	   System.out.println("加密后的密码为");
    	   System.out.println(b);
    }
    public static void main(String args[]) {
    	change();

    }
}

实验结果截图:

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

实验代码:

	import java.util.*;
public class text {
   	
	
	public static void main(String[] args) {
		int a=0,b=0,d=0;
		System.out.println("请输入字符串:");
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		char c[]= str.toCharArray();
		for(int i=0;i<c.length;i++) {
			if(c[i]>='a'&&c[i]<='z') {
				a++;
			}
			else if(c[i]>='A'&&c[i]<='Z') {
				b++;
			}
			else
				d++;
		}
		System.out.println("大写字母的个数为:"+b);
		System.out.println("小写字母的个数为:"+a);
		System.out.println("其它字符个数为:"+d);
	}
	
	
}

实验结果截图:

学习总结:

继承的应用

this和super差异:

1.super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
2.super()和this()均需放在构造方法内第一行。
3.this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
4.this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

方法的重载与覆写:

重载的定义:方法名称相同,参数的类型或者个数不同。覆写的定义:方法的名称、参数的类型、返回值类型全部相同
对权限没有要求 被覆写的方法不能拥有更严格的权限。
范围: 发生在一个类中 发生在继承类中。

对于老师讲的那个继承问题:

1.狗类和猫类除了类名不一样,其他的都一样,写起来很浪费时间,也浪费内存.因此,用继承可以提高代码的复用性.
2.父类私有的成员不能继承,父类的构造方法不能继承,别的都可以继承。
3.种继承是单继承的关系,不支持多继承.
所以先构造一个父类(动物),再建立两个子类(猫狗)
先使用extends继承
再public Cat (){} //无参构造
public Cat(String cry,int num) { //有参构造
因为没有题目也就记得这么多了。

posted @ 2019-09-25 20:31  风靡心落  阅读(298)  评论(3编辑  收藏  举报