第五周课程总结&试验报告(三)

第五周课程总结:
这一周学了很多知识,如下:
一、继承:
继承,顾名思义,就是“子承父业”,在Java里面就是子类继承父类的属性,构造方法等等,这其中最重要的就是extends关键词了,可以用它来实现继承,继承的基本格式:

class Student extends Person

子类只有一个父类,但是父类可以有多个子类,因为在Java中只允许单继承,不能使用多重继承,extends关键词也可以实现继承,但它本意是拓展,与其说是继承,不如是一个类拓展已有类的功能,又称派生类。
子类不能直接访问父类中私有操作,但可以通过其他操作间接访问。

二、方法覆写与重载的区别
覆写的单词为:Overriding,重载的单词是:Overloading;重载的方法名称相同,但参数的类型或个数不同,覆写的所有方法名称,参数类型,返回值类型全部相同;被覆写的方法不能拥有更严格的权限;重载是发生在一个类中,而覆写是发生在继承类中。

三、super关键词
super可以从子类中调用父类的构造方法、普通方法、属性。super与this一样,都是要放在构造方法首行。
super与this非常相似,但还是存在很大的区别
在访问方法和属性时,this是先访问本类,如果没有则去父类中继续查找,而super是直接访问父类;在调用构造方法是,this必须放在构造方法首行,而使用super必须放在子类构造方法首行。

四、final关键词
final是结束的意思,所有final就是说明此类不能被继承了就是没有子类了,在使用final声明变量时,要求全部字母大写!

五、抽象类:
抽象类的作用就是比普通类多了一些抽象方法:

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

}

其中可以得知抽象类和抽象方法都需要使用abstract关键词声明,抽象方法只需要声明,而不用实现,抽象类必须被子类继承,子类必须覆写抽象类中的全部抽象方法

六、对象的多态性
在Java中对象主要以方法的重载与覆写和对象的多态性体现,
多态性主要分为向上转型和向下转型,向上转型是子类对象转向父类对象,向下转型则相反,在这其中在发生向下转型之前必须先发生向上转型,不然将会出现对象转换异常。

试验报告(三)
一、已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
1.统计该字符串中字母s出现的次数。

package 作业;

public class Java1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str=new String("this is a test of java");
		char c[]=str.toCharArray();
		int count =0;
		for(int i=0;i<c.length;i++) {
			if(c[i]=='s') {
				count++;
				}
			
}
System.out.println("s个数:"+count);
	}
	}

截图:

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

package 作业;

public class Java3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str=new String("this is a test of java");
		int count=0;
		int i=0;
		while(str.indexOf("is",i)!=-1){
			count++;
			i=str.indexOf("is",i)+1;
			
		}
		System.out.println("is个数:"+count);

	}

}

截图:

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

package 作业;

public class Java4 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str="this is a test of java";
		int count=0;
		
		String[] c=str.split(" ");
		for(String e:c) {
			if(e.equals("is")) {
				count++;
			}
		}
		System.out.println("is作为字串出现的次数:"+count);
	}

}

截图:

4.实现该字符串的倒序输出。

package 作业;

public class Java5 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根


				StringBuffer str=new StringBuffer();
				str.append("this is a test of java");
				System.out.print("倒序:"+str.reverse());


	}

}

截图:

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

package 作业1;

import java.util.Scanner;

public class Java {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int j=0,i=0;
		System.out.println("输入一个字符串:");
		Scanner sc=new Scanner(System.in);
		String str=sc.nextLine();
		char c[]=str.toCharArray();
		char[] c1=null;
		c1=new char[str.length()];                        
		for(i=c.length-3;i<c.length;i++) {
			c1[j]=c[i];
			j++;
		}
		for(i=0;i<c.length-3;i++) {
			c1[j]=c[i];
			j++;
		}
		System.out.print("加密后:");
		System.out.println(c1);


	}

}

截图:

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

package 作业1;

public class Java4 {
	public static void main(String[] args) {
		String str="ddejidsEFALDFfnef2357 3ed";
		int c1=0,c2=0,c3=0;
		char c[]=str.toCharArray();
		for(int i=0;i<str.length();i++) {
			if('A'<=c[i]&&c[i]<='Z') {
				c1++;
			}
			else if('a'<=c[i]&&c[i]<='z') {
				c2++;
			}
			else {
				c3++;
			}
		}
		System.out.println("大写字母数:"+c1);
		System.out.println("小写字母数:"+c2);
		System.out.println("非字母数:"+c3);
	}

}

截图:

posted @ 2019-09-26 23:35  有灵魂的蚂蚁  阅读(134)  评论(3编辑  收藏  举报