第五周总结 & 实验报告(三)

第五周总结

一、继承

      1.类的继承格式

          

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

        2.扩展类的功能

class 父类{
       父类属性;
       ..........
       ..........
}


class 子类 extends 父类{
           新定义属性;
           ...........
           ...........

注意:只允许多层继承不能多重继承,(即一个子类只能继承一个父类,一个父类还可以有一个父类)

          子类不能直接访问父类的私有操作

 

二、方法的覆写

概念:指子类定义了与父类中同名的方法(被子类覆写的方法不能拥有比父类方法更严格的访问权)

 

 

例:
class
父类{ void print(){ System.out.println("父类 --》void print(){}"); } } class 子类 extends 父类{ public void print(){ //覆写父类中的方法,扩大了权限 System.out.println("子类 --》void print(){}"); } }

 

 

方法的重载与覆写的区别

 

区别点

重载

覆写

单词

Overloading

Overriding

定义

方法名称相同,参数的类型或个数不同

方法名称、参数类型、返回值类型全部相同

对权限没有要求

被覆写的方法不能拥有更严格的权限

范围

发生在一个类中发生

发生在继承类中

三、super关键字

1.super关键字可以从子类中调用父类中的构造方法

2.super关键字可以从子类中调用父类中的属性

3.super关键字可以从子类中调用父类中的方法

class 父类{
         定义属性
         构造方法设置属性
         ...........
         ...........
}

class 子类 extends 父类{
           (可增加属性扩展父类)
             ..........
             ..........
             public 方法名(参数){
                      super(父类属性);         //指定调用父类中的构造方法
             }
                 .........
}

 

this与super 的区别

区别点

this

super

属性访问

访问本类中的属性如果本类中没有此属性,则从父类中继续查找

访问父类中的属性

方法

访问本类中的属性如果本类中没有此方法,则从父类中继续查找

直接访问父类中的方法

调用构造

调用本类构造

调用父类构造,必须放在子类构造方法首行

特殊

表示当前对象

三、final关键字

注意:

1.使用final声明的类不能有子类

2.使用final声明的方法不能被子类所覆写

3.使用final声明的变量即成常量,常量不可修改

 

四、抽象类

        (1)定义及使用规则:

                1.包含一个抽象方法的类必须是抽象类

                2.抽象类和抽象方法都要使用abstract关键字声明

                3.抽象方法只需声明而不需要实现

                4.抽象类必须要被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法

           (2)抽象类的定义格式

abstract class 抽象类名称{
           属性;
           访问权限  返回值类型  方法名称 (参数){          //普通方法
                  ........
                  ........           
            }

            访问权限  abstract  返回值类型  方法名称 (参数);          //抽象方法
                 //在抽象方法中是没有方法体的
}

注意:抽象方法不要使用private声明

 

五、对象的多态性

(1)两种体现

          1.方法的重载与覆写

          2.对象的多态性

(2)两种类型

          1.向上转型:子类对象--->父类对象

          2.向下转型:父类对象--->子类对象

(3)对象转型

对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;

注意对象向下转型的要求

在进行对象的向下转型前,必须首先发生对象向上转型,否则将出现对象转换异常

 

 

实验报告(三)

 

实验 String类的应用

 

一、 实验目的

 

(1) 掌握类String类的使用

 

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

 

二、 实验内容

 

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

 

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

 

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

 

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

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

 

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

 

 

 

 

 

 

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

 

一、

实验源码:

 

package zifuc;

class Zifu {
    private String str;
    private String str1;
    
    public Zifu(String str,String str1) {
        this.setStr(str);
        this.setStr1(str1);
    }
    public Zifu(String str) {
        this.setStr(str);
    }
    
    public String getStr1() {
        return str1;
    }

    public void setStr1(String str1) {
        this.str1 = str1;
    }

    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    
    public void finds(String str,String str1) {
        int index;
        int count = 0;
        while((index = str.indexOf(str1)) > -1){
            count++;
            str = str.substring(index + 1);
        }
        System.out.print(str1+"的个数:");
       System.out.println(count);
    }
    public void finds1(String str,String str1) {
        int cout=0;
        String[] stringA=str.split(" ");
        for(int i=0;i<stringA.length;i++) {
            if(str1.equals(stringA[i])==true){
                cout++;
            }
        }
        System.out.println("单词“is”的个数:"+cout);
    }
    public void finds2(String str) {
        String[] stringA=str.split("");
        String[] stringB=str.split(" ");
        System.out.print("倒叙:");
        for(int i=stringA.length-1;i>=0;i--) 
            System.out.print(stringA[i]);
        System.out.print("\n"+"单词倒叙:");
        for(int i=stringB.length-1;i>=0;i--) 
            System.out.print(stringB[i]+" ");
    }
}

 

package zifuc;

public class zifc1 {

    public static void main(String[] args) {
        Zifu st = new Zifu("this is a test of java","s");
        st.finds("this is a test of java", "s");
        Zifu st1 = new Zifu("this is a test of java","is");
        st1.finds("this is a test of java", "is");
        st1.finds1("this is a test of java","is");
        Zifu st3 = new Zifu("this is a test of java");
        st3.finds2("this is a test of java");
        
        
        
    }            
}

 

实验结果:

 

二、

 

实验源码:

 

 

package jiami;

class Jiami {
    private String str;
    public Jiami(String str){
        this.setStr(str);
    }
    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    public void jiami(String str) {
        char[] Array = str.toCharArray();
        int a = str.length();
        char[] Array1 = new char[a];
        for(int i=0;i<Array.length;i++) {
if(i<a-3) Array1[i]
=Array[i+3];
else
Array1[i]=Array[i-a+3];
System.out.print(
Array1[i]); } } }

 

package jiami;
import java.util.*;
public class Jiami1 {

    public static void main(String[] args) {
        System.out.print("请输入:");
        Scanner str = new Scanner(System.in);
         String n =null;
         n=str.nextLine();
         Jiami st = new Jiami(n);
         st.jiami(n);
    }

}

 

 

 

实验结果:

三、

实验源码:

 

package jisuan;

class Shuru {
    private String str;
    public Shuru(String str){
        this.setStr(str);
        
    }
    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    public void jisuan(String str) {
        char[] Array = str.toCharArray();
        int upcase=0;
        int lowcase=0;
        int count=0;
        for(int i=0;i<Array.length;i++) {
            if(Array[i]>='a' & Array[i]<='z')
                lowcase++;
            else if(Array[i]>='A' & Array[i]<='Z')
                upcase++;
            else
                count++;
        }
        System.out.println("小写:"+lowcase+"个"+"\n"+"大写:"+upcase+"个"+"\n"+"非字母:"+count+"个");
    }
    
}

 

package jisuan;

import java.util.Scanner;
public class Shuru1 {

    public static void main(String[] args) {
        System.out.print("请输入:");
        Scanner sc = new Scanner(System.in);
        String str = null;
         str = sc.nextLine(); 
             Shuru st = new Shuru(str);
             st.jisuan(str);
             
    }

}

 

 

实验结果:

四、总结

在写第一题时遇到了要使用String常用的方法,对于这些都不是很熟练

 

posted @ 2019-09-26 18:21  林衍  阅读(280)  评论(3编辑  收藏  举报