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

第五周课程总结

本周主要学习了

1.继承和方法的重载与覆写

2.Super关键字

|this与super的区别|
| ------------ | ------------ | ------------ | ------------ |
|序号 | 区别点 | this | super |
| 1 | 属性访问 | 访问本类中的属性,如果本类中没有此属性则从父类中继续查找| 访问父类中的属性 |
| 2 | 方法|访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 | 直接访问父类中的方法 |
|3 |调用构造 |调用本类构造,必须放在构造方法的首行 | 调用父类构造,必须放在子类构造方法的首行 |
| 4 | 特殊 | 表示当前对象(可指向子类) |无此概念(不可指向父类) |

3.抽象类和对象的多态性(这节在下周与接口一起总结)

实验三 String类的应用

一、实验目的

  • 掌握类String类的使用;
  • 学会使用JDK帮助文档;

二、实验内容

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

  • 统计该字符串中字母s出现的次数。
  • 统计该字符串中子串“is”出现的次数。
  • 统计该字符串中单词“is”出现的次数。
  • 实现该字符串的倒序输出。

实验源码:

package homework;

public class Statistics {

	public static void main(String[] args) {
		String str1 = "this is a test of java";
		String word = "is";
		int counts = 0, countis = 0, countword = 0;
		String s[] = str1.split(" ");
		char c[] = str1.toCharArray();        //方法一
		
		for(int i=0; i<str1.length(); i++) {
			//char c = str1.charAt(i);         //方法二
			if(c[i] =='s')
				counts ++;
		}
		System.out.println("s = "+counts);
		
		for(int j=0; j<str1.length()-1; j++) {
			if(c[j] =='i'&&c[j+1] == 's')
				countis ++;
		}
		System.out.println("子串is = "+countis);
		
		for(int k=0; k<6; k++) {
			if(s[k].equals(word))
				countword ++;
		}
		System.out.println("word is = "+countword);
		
		for (int m = str1.length()-1; m>=0; m--) {
	            char n= str1.charAt(m);
	               System.out.print(n);
	       }
	}
}


实验中遇到的问题:明明编译的时候没有提示错误但结果一直在报错,不理解报错语句的含义。

解决办法:翻译了一下报错语句,结果发现好像是循环时超过了它原有的长度。
将上图中的i<=str.length(),改为i<str.length()。

实验结果:

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

package homework;

import java.util.Scanner;

public class Encryption {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next(); 
		char c[] = str.toCharArray();
		
		for(int i=0; i<str.length(); i ++) {
			System.out.print((char)((int)c[i]+3));
		}
	}

实验中遇到的问题:

无,上课都提示过是阿斯克码值往后移3位了,没啥好错的咯。

实验结果:

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

package homework;

public class Classify {

	public static void main(String[] args) {
        String str="ddejidsEFALDFfnef2357 3ed";
        char c[] = str.toCharArray();
        for (int i = 0; i < str.length(); i++) {
            if (c[i] >= 'A' && c[i] <= 'Z')
                System.out.print(str.charAt(i));
        }
          System.out.println();
        
        for (int j= 0; j < str.length(); j++) {
                if (c[j] >= 'a' && c[j] <= 'z') 
                    System.out.print(str.charAt(j));
          }
           System.out.println();
        
        for (int k= 0; k < str.length(); k++){
                    if(c[k]<'A'||c[k]>'z')
                    	System.out.print(str.charAt(k));
            }
    }
}

实验中遇到的问题:

实验结果:

三、 总结

1.在写第一题的过程中发现了两种解决(- 统计该字符串中字母s出现的次数。)的办法,但是🐖教表示第二种可以保护字符串,所以一般使用第二种办法。

posted @ 2019-09-27 00:33  LILI6  阅读(207)  评论(0编辑  收藏  举报