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

试验报告

1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
·统计该字符串中字母s出现的次数。
·统计该字符串中子串“is”出现的次数。
·统计该字符串中单词“is”出现的次数。
·实现该字符串的倒序输出。

代码

package text3;

//字符串中字母s出现的次数
public class Characters {
    public static void main(String[] args) {
        String str = "this is a test of java";
        int count=0;
        int i;
        char[] ch = str.toCharArray();
        for(i=0;i=0;i--)
        {
            System.out.print(ch[i]+" ");
        }
        
    }
}

//字母倒序输出
public class Characterprint {
    public static void main(String[] args) {
        String str = "this is a test of java";
    
        int i;
        
        char[] ch = str.toCharArray();
        
        for(i=ch.length-1;i>=0;i--)
        {
            System.out.print(ch[i]);
        }
        
    }
}

遇到的问题

1.统计该字符串中字母s出现的次数 时输出结果错误;
第五周课程总结&试验报告(三)_第1张图片

解决办法:不使用substring方法,改为使用indexOf方法查找到指定字符串就会返回字符串的最后的位置。
2.实现该字符串的倒序输出 时报错,字符串数组的最后字符串下标是长度减一;
第五周课程总结&试验报告(三)_第2张图片

解决办法:把i=ch.lenght;改为i=lenght-1。

运行结果

1.1第五周课程总结&试验报告(三)_第3张图片

1.2第五周课程总结&试验报告(三)_第4张图片

1.3第五周课程总结&试验报告(三)_第5张图片

1.4第五周课程总结&试验报告(三)_第6张图片

第五周课程总结&试验报告(三)_第7张图片

2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
第五周课程总结&试验报告(三)_第8张图片

代码

package Encrypt;


import java.util.*;
public class Encryptstr {
    private String str;
    
    public Encryptstr() {
        
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }
    
    //输入字符串
    public void Inputstr() {
        Scanner pw = new Scanner(System.in);
        String str = pw.next();
        
        this.str = str;
        pw.close(); 
    }
    
    //加密过程
    public String encrystr() {
        char[] ch = str.toCharArray();
        int i;
        for(i=0;i

遇到的问题

无。

运行结果

第五周课程总结&试验报告(三)_第9张图片

第五周课程总结&试验报告(三)_第10张图片

更正

代码

package Encrypt;


import java.util.*;
public class Encryptstr {
    private String str;
    
    public Encryptstr() {
        
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }
    
    //输入字符串
    public void Inputstr() {
        Scanner pw = new Scanner(System.in);
        String str = pw.next();
        
        this.str = str;
        
        pw.close(); 
    }
    
    //加密过程
    public String encrystr() {
        char[] ch = str.toCharArray();

        char[] st = null;
        st = new char[str.length()];
        int i;
        
        for(i=0;istr.length()/2)
            {
                st[i+3-str.length()]=ch[i];
            }
            else
                st[i+3]=ch[i];
        }
        
        //重新连成字符串
        String str = new String(st);
        this.str = str;
        return str;
    }
    
    //解密
    public String deciphering() {
        char[] ch = str.toCharArray();
        char[] st = null;
        st = new char[str.length()];
        
        int i;
        for(i=0;i

运行结果

第五周课程总结&试验报告(三)_第11张图片

第五周课程总结&试验报告(三)_第12张图片

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

代码

package Count;

public class Countchar {
    public static void main(String args[]) {
        String str = "ddejidsEFALDfnef2357 3ed";
        
        int i;
        int countcapitals=0;   //大写英文字母数
        int countsmall=0;     //小写英文字母数
        int countnoletter=0;    //非英文字母数
        
        for(i=0;i='A'&& str.charAt(i)<='Z')
                countcapitals++;
            
            else if(str.charAt(i)>='a'&& str.charAt(i)<='z')
                    countsmall++;
            
            else
                countnoletter++;
        }
        
        System.out.println("大写英文字母数:"+countcapitals);
        System.out.println("小写英文字母数:"+countsmall);
        System.out.println("非英文字母数:"+countnoletter);
    }
}

遇到的问题

无。

运行结果

第五周课程总结&试验报告(三)_第13张图片

课程总结

本周学习了

继承

概念
类的继承方式:class 父类{}
class 子类 extends 父类{}
继承的实现:通过继承的功能可以直接把父类中的操作直接拿到子类中使用,子类也可以定义自己的属性或方法。
注意:只可多层继承,不可多重继承;子类不能直接访问父类中的私有成员,可以调用父类中的非私有方法,但不能直接调用父类中的私有成员。
方法覆写:指子类定义了与父类中同名的方法。
super()可以从子类中调用父类中的构造方法、普通方法、属性。
super调用父类的构造方法:语句必须放在子类构造方法的首行,父类没有构造方法时,会在父类中自动生成一个空的构造方法,然后通过在子类中用super();调用,若父类中构造了非空的构造方法,则不会再自动生成空构造方法,此时子类中调用父类的构造方法super();括号中要带参数。
this与super的区别

抽象类

定义及使用:
(1)包含一个抽象方法的类必须是抽象类;
(2)抽象类和抽象方法都要用abstract声明;
(3)抽象方法只需声明而不需实现;
(4)抽象类必须被子类继承,如果子类不是抽象类,必须覆写抽象类的全部抽象方法。

final关键字

声明时注意:
(1)final声明的类不能有子类;
(2)final声明的方法不能被子类覆写;
(3)final声明的变量会成为常量。

对象的多态性

(1)子类对象->父类对象 (向上转型)
(2)父类对象->子类对象 (向下转型)
注:向上转型是自动的,向下转型是强制的,必须明确指明要转型的子类的类型,(为保证转型成功)向下转型之前必须先有对象向上转型。
格式:
向上 父类 父类对象 = 子类实例;
向下 子类 子类对象 = (子类)父类实例;

你可能感兴趣的:(第五周课程总结&试验报告(三))