zoukankan      html  css  js  c++  java
  • 第五周编程总结

    一.继承

      (1)类的继承格式

    class 父类{}       //定义父类
    class 子类  extends  父类{}      //使用extends关键字实现继承

    (2)通过子类继承父类

    只准多层继承不能多重继承,在java中只准单继承,不能使用多重继承,即:一个子类只能继承一个父类。

    (3)继承注意事项

    子类是不能直接访问父类的私有成员的,但是子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。子类直接访问父类的私有属性受限制,而要通过setter()或者getter()调用,就可以访问了

    二.继承的进一步研究

    序号 区别点 重载 覆写
    1 单词 Overloading Overriding
    2 定义

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

    或个数不同

    对权限没有要求

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

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

    3 范围 发生在一个类中 发生在继承类中
    序号 区别点                                   this super
    1 属性访问 访问本类中的属性,如果本类中没有此属性则中父类中继续查找 访问父类中的属性
    2 方法 访问本类中的方法,如果本类中没有此方法,则从父类中查找 直接访问父类的方法
    3 调用参数 调用本类的构造,必须放在构造方法的首行 调用父类构造,必须放在子类构造方法的首行
    4 特殊 表示当前对象 无此概念

     

    三.final关键词

    (1)使用final声明的类不能又子类

    (2)使用final声明的方法不能被子类调用

    (3)使用final声明的变量即成为常量,常量不可以修改

    四.抽象类的基本概念

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

    (2)抽象类和抽象方法都要使用abstract关键声明:

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

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

    五.对象的多态性

         一.两种体现

            (1)方法的重载与覆写

            (2)对象的多态性

         二.对象的多态性:

               1.向上转型:子类对象->父类对象,对于向上转型,程序会自动完成,格式:父类 父类对象=子类实例

               2.向下转型:父类对象->子类对象,对于向下转型,必须明确指明要转型的子类类型,格式:子类 子类对象=(子类)父类实例

    六.实验题

    (1)

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

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

    实验代码

    package hello;
    public class gg {
        public static void main(String[] args) {
            String str = "this is a test of java";
            String str1=str.replaceAll("is","x");
            char b[] = str1.toCharArray();
            int y=0;
            for(int i=0;i<b.length;i++)
            {
                if(b[i]=='x')
                {
                    y++;
                }
            }
            char c[] = str.toCharArray();
            int count = 0,z = 0;
            for(int i=0;i<c.length;i++)
            {
                if(c[i]=='s')
                {
                    count++;
                }
            }
            System.out.println("该字符串中字母s出现的次数:"+count);
            for(int i=0;i<c.length;i++)
            {
                if(c[i]=='i'&&c[i+1]=='s')
                {
                    z++;
                }
            }
           System.out.println("该字符串中子串“is”出现的次数:"+z);
           System.out.println("该字符串中单词“is”出现的次数:"+y);
           String k="";
           for(int i=c.length-1;i>=0;i--)
           {
               k=k+c[i];
           }
           System.out.print("该字符串的倒序输出:"+k);
      }
    }

     

    实验结果

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

    实验代码

    package hello;
    import java.util.Scanner;
    public class qqqq {

    public static void main(String[] args) {
    System.out.print("请输入一个字符串:");
    Scanner sc = new Scanner(System.in);

    String str=sc.nextLine();

    char a[]=str.toCharArray();

    char[] b=null;

    b = new char[str.length()];

    int j=0;
    for(int i=a.length-3;i<a.length;i++) {

    b[j]=a[i];
    j++;
    }
    for(int i=0;i<a.length-3;i++)
    {

    b[j]=a[i];
    j++;

    }
    System.out.print("加密结果为:");
    System.out.print(b);
    }
    }

    注:这里必须先给后面的数输出到前面来,先把j从0+到3,然后从3把后面的数依次输出

    实验结果

     

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

    实验代码

    package hello;
    
    public class ooo {
    
        public static void main(String[] args) {
           
                String str ="ddejidsEFALDFfnef2357 3ed";
                
                char a[] = str.toCharArray();
                int x=0,z=0,y=0;
                for(int i=0;i<a.length;i++)
                {
                    if(a[i]>='A'&&a[i]<='Z')
                    {
                        x++;
                    }
                    else if(a[i]>='a'&&a[i]<='z')
                    {
                        y++;
                    }
                    else
                    {
                        z++;
                    }
                }
               System.out.println("大写字母数;"+x);
               System.out.println("小写字母数;"+y);
               System.out.println("非英文字母数;"+z);
        }
    
    }

    实验结果

     

  • 相关阅读:
    洛谷 P4297 [NOI2006]网络收费
    bzoj 5072: [Lydsy1710月赛]小A的树
    树形背包
    loj #2071. 「JSOI2016」最佳团体
    bzoj 2427: [HAOI2010]软件安装
    bzoj 4987: Tree
    loj #2007. 「SCOI2015」国旗计划
    loj #2006. 「SCOI2015」小凸玩矩阵
    loj #2020. 「AHOI / HNOI2017」礼物
    loj #547. 「LibreOJ β Round #7」匹配字符串
  • 原文地址:https://www.cnblogs.com/tb-0706/p/11600261.html
Copyright © 2011-2022 走看看