zoukankan      html  css  js  c++  java
  • 第五周总结 & 实验报告(三)

    第五周总结

    一、继承

          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("
    "+"单词倒叙:");
            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+"个"+"
    "+"大写:"+upcase+"个"+"
    "+"非字母:"+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常用的方法,对于这些都不是很熟练

  • 相关阅读:
    网页布局色块
    多物体运动
    elasticsearch基础命令
    mysiam,innodb
    git常用命令
    redis内存淘汰机制
    PHP运行模式
    MySQL主从延迟
    ip、uv、pv
    缓存出现的几种情况
  • 原文地址:https://www.cnblogs.com/xu23/p/11593559.html
Copyright © 2011-2022 走看看