第五周总结&实验报告三
总结:这周的学习效果没有达到目标,对各种的方法的使用不是很熟悉,还是要多理解书上的内容,多看看书,把每周的实验做好!
以下是这周的基本知识点:
一.构造方法可以为类中的属性初始化,构造方法与类名称相同,无返回值类型声明,如果在类中没有明确地定义构造方法,则会自动生成一个无参数的什么都不做的构造方法,在一个类中的构造方法可以重载,但是每个类都至少有一个构造方法。
二.String类在Java中较为特殊,String可以使用直接赋值的方式或者通过构造方法进行实例化。在String中比较内容时使用equals方法,而“==”比较的只是两个字符串的地址值。字符串的内容一旦声明则不可改变。
三.在Java中使用this关键字可以表示当前的对象,通过“this.属性”可以调用本类中的属性,通过“this.方法()”可以调用本类中的其他方法,通过this()的形式调用本类中的构造方法。
四.对象数组的使用要分为声明数组和为数组开辟空间两步。开辟空间后数组中的每个元素的内容都是null。
六.Java中使用包可以实现多人协作的开发模式,避免类名重复的麻烦。使用package关键字将一个类放入一个包中,使用import语句导入一个已有的包。
七.Java中的访问控制权限分为4种,private、default、protected、public。
八.类的继承格式
在Java中使用extends关键字完成类的继承关系
九.访问限制
子类是不能直接访问父类中的私有成员的,但是子类可以调用父类中的非私有方法
十.子类对象实例化过程
子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法。
十一.方法的覆写
1.在继承的关系中也存在着方法覆写的概念,即在子类中定义与父类中同名的方法。
2.方法覆写时必须考虑到权限,被子类覆写的方法不能拥有比父类方法更加严格的访问权限。
十二.super关键字的作用
使用super可以从子类中调用父类中的构造方法、普通方法、属性。
十三.Final
1.使用final声明的类不能有子类;
2.使用final声明的方法不能被子类所覆写;
3.使用final声明的变量及成为常量;
实验三 String类的应用
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
一、统计该字符串中字母s出现的次数。
实验源码:
package first; public class test { public static void main(String[] args) { String juzi = "this is a test of java"; char c[] = juzi.toCharArray() ; int i=0; for(char a:c) { if(a=='s') { i++; } } System.out.println("字母s的数量:"+i); } }
实验结果
二、统计该字符串中子串“is”出现的次数。
实验源码
package first; public class test { public static void main(String[] args) { String str = "this is a test of java"; char c[]; int count=0; c=str.toCharArray(); for(int i=0;i<c.length;i++){ if(c[i]=='i'){ for(int j=i;j<c.length;j++){ if(c[j]=='s'){ count++; break; } } } } System.out.println("is的数量:"+count); } }
实验结果
三、统计该字符串中单词“is”出现的次数。
实验源码:
package first; public class test { public static void main(String[] args) { String str = "this is a test of java"; String atr[]; int count=0; atr=str.split(" "); for(String c:atr){ if(c.equals("is")){ count++; } } System.out.println("单词is的数量:"+count); } }
实验结果
四、实现该字符串的倒序输出。
实验源码:
package first; public class test { public static void main(String[] args) { StringBuffer str = new StringBuffer("this is a test of java"); System.out.println(str.reverse()); } }
实验结果
二.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
实验源码
package first; import java. util.*; public class test { public static void main(String[] args) { Scanner sc =new Scanner(System.in); String str1 = sc.nextLine(); char c[] = str1.toCharArray(); char a[] = new char[str1.length()]; int i,j=0; if(str1.length()==1) { System.out.println(c); } else if(str1.length()==2) { System.out.print(c[1]); System.out.print(c[0]); } else { for(i = c.length-3;i<c.length;i++) { a[j] = c[i]; j++; } for(i=0;i<c.length-3;i++) { a[j]=c[i]; j++; } } System.out.println(a); } }
实验结果
三、已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
实验源码
package first; import java. util.*; public class test { public static void main(String[] args) { String str="ddejidsEFALDFfnef2357 3ed"; int daxiezimu=0,xiaoxiezimu=0,feiyingwenzimu=0; char c[]=str.toCharArray(); for(char a:c){ if(a>='a'&&a<='z'){ daxiezimu++; } else if(a>='A'&&a<='Z'){ xiaoxiezimu++; } else{ feiyingwenzimu++; } } System.out.println("小写英文字母数:"+xiaoxiezimu); System.out.println("大写英文字母数:"+daxiezimu); System.out.println("非英文字母数:"+feiyingwenzimu); } }
实验结果
这周的实验前面的几题比较简单,到后面就有点难了,需要一些构造方法,在看书和查资料的结合下才写完的!还是要多学习书上的知识点。