第五周课程总结&试验报告(三)
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
(1)统计该字符串中字母s出现的次数。
public class aaa { public static void main(String[] arges) { String str1 ="this is a test of java"; char a[]=str1.toCharArray(); int b=0; for(int i=0;i<a.length;i++) { if(a[i]=='s') { b++; } } System.out.print(b); } }
(2)统计该字符串中子串“is”出现的次数。
public class aaa { public static void main(String[] arges) { String str1 ="this is a test of java"; char a[]=str1.toCharArray(); int b=0; for(int i=0;i<a.length;i++) { if(a[i]=='i'&&a[i=1]=='s') { b++; } } System.out.print(b); } }
(3)统计该字符串中单词“is”出现的次数。
public class aaa { public static void main(String[] arges) { String str ="this is a test of java"; int b=0; if(str.contains("is")) { b++; } System.out.print(b); } }
(4)实现该字符串的倒序输出。
public class aaa { public static void main(String[] arges) { String str="this is a test of java"; String a[]=str.split(" "); for(int i=a.length-1;i>=0;i--) { System.out.print(a[i]+" "); } } }
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
public class aaa { public static void main(String[] arges) { String str="12jdjfkgj"; char s[]=str.toCharArray(); int a=s.length; int d=0,i=3; while(d<a) { d++; System.out.print(s[i]); i=(i+1)%a; } } }
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
public class aaa { public static void main(String[] arges) { String str="ddejidsEFALDFfnef2357 3ed"; char s[]=str.toCharArray(); System.out.print("大写字母:"); for(int i=0;i<s.length-1;i++) { if(s[i]<='Z'&&s[i]>='A') { System.out.print(s[i]); } } System.out.print("\n"); System.out.print("小写字母:"); for(int i=0;i<=s.length-1;i++) { if(s[i]<='z'&&s[i]>='a') { System.out.print(s[i]); } } System.out.print("\n"); System.out.print("其他字符:"); for(int i=0;i<=s.length-1;i++) { if((s[i]>90&&s[i]<97)||s[i]<65||s[i]>122) { System.out.print(s[i]); } } } }
第五周课程总结
本周学习学习了继承.重载与覆写.final关键字.抽象类。
关于继承需要注意以下几点:
子类能够继承父类的public和protected成员变量但不能够继承父类的private成员变量;
对父类的包访问权限成员变量,如果子类和父类在同一个包下,子类才可以继承;
对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,子类的成员变量会屏蔽掉父类的同名成员变量;如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用;
能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
父类的包访问权限成员方法,当子类和父类在同一个包下,子类能够继承,否则,子类不能够继承;
子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用;
隐藏是针对成员变量和静态方法,覆盖是针对普通方法;
子类不能继承父类的构造器,注意如果父类的构造器都是带有参数的,则必须在子类的构造器中通过super关键字调用父类的构造器,如果父类有没有参构造器,在子类的构造器中可不用super关键字,如果没有使用super关键字,系统会自动调用;
一个子类只能继承一个父类,可以用多层继承来实现多重继承,继承要用到extends,格式见书p163;
子类实例化前会先调用父类构造方法再用子类。
关于重载与覆写:
重载 方法名相同参数不同,两个可以同时用,用参数区分开;覆写 方法名相同参数相同,即上一个方法作废。
覆写的两个函数的函数特征相同,重载的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。
final关键字:
final声明的类不能有子类;
final声明的方法不能被子类所覆写;
final声明的变量即成为常量,常量不可以修改。
抽象类:
包含一个抽象方法的类必须是抽象类;
抽象类和抽象方法都要使用abstract关键字声明;
抽象方法只需要声明而不需要实现;
抽象类必须被子类继承,子类必须覆写抽象类中全部抽象方法。
对象向上转型:父类 父类 = 子类实例
向下转型:子类 子类 = 父类实例