第五周编程总结

一.继承

  (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);
    }

}

 

 

实验结果

 

 

 

 

 

 

posted @ 2019-09-27 20:41  你听说过妖刀吗  阅读(167)  评论(2编辑  收藏  举报