第五周总结&第三次实验报告
实验三 String类的应用
实验目的
掌握类String类的使用;
学会使用JDK帮助文档;
实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
统计该字符串中字母s出现的次数。
统计该字符串中子串“is”出现的次数。
统计该字符串中单词“is”出现的次数。
实现该字符串的倒序输出。
实验代码
public class Example1 {
public static void main(String args[]) {
String str = new String("this is test of java");
System.out.println("含有S的个数:"+Fangfa1(str));
System.out.println("is的字串:"+Fangfa2(str));
System.out.println("单词is的个数"+Fangfa3(str));
Fangfa4("倒序输出字符串"+str);
}
public static int Fangfa1(String str) {
int count1 = 0;
char c[] = str.toCharArray();
for(int i = 0; i < c.length;i++) {
if(c[i] == 's') {
count1++;
}
}
return count1;
}
public static int Fangfa2(String str) {
int count2 = 0;
char c[] = str.toCharArray();
for(int i = 0; i < c.length;i++) {
if(c[i] == 's' && c[i - 1] == 'i') {
count2++;
}
}
return count2;
}
public static int Fangfa3(String str) {
int count3 = 0;
String c[] = str.split(" ");
for(int i = 0;i < c.length ; i++) {
if(c[i].equals("is")) {
count3++;
}
}
return count3;
}
public static void Fangfa4(String str) {
String c[] = str.split(" ");
for(int i = c.length - 1; i > 0;i--) {
System.out.print(c[i] + " ");
}
}
}
实验结果

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

实验代码
import java.util.*;
public class Jiami {
public static void main(String args[]) {
Scanner in= new Scanner(System.in);
String str = in.nextLine();
char c[] = str.toCharArray();
for(int i = 0; i< c.length;i ++) {
c[i] = (char) (c[i] + 3);
}
String str2 = new String(c);
System.out.println(str2);
in.close();
}
}
实验结果

更改版
import java.util.*;
public class Jiami {
public static void main(String args[]) {
Scanner in= new Scanner(System.in);
int i,flag = 0;
while(true) {
String str = in.nextLine();
char c[] = str.toCharArray();
for(i = 0;i < c.length;) {
if(c[i] < 'A' ||c[i] > 'Z' && c[i] < 'a' || c[i] > 'z') {
System.out.println("输入错误,请输入英文字串!");
flag = 1;
break;
}
i++;
}
char d[] = {c[0],c[1],c[2]};
int j = 0;
for(i = 0; i< c.length;i ++) {
if(i >= c.length - 3) {
c[i] = (char)(d[j]);
j++;
}
else
c[i] = (char) (c[i] + 3);
}
if(flag == 0) {
String str2 = new String(c);
System.out.println(str2);
break;
}
flag = 0;
}
in.close();
}
}
结果

3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
实验代码
public class Panduanzifu {
public static void main(String args[]) {
String str = "ddejidsEFALDEfnef2357 3ed";
char c[] = str.toCharArray();
int count1 = 0, count2 = 0, count3 = 0;
for(int i = 0;i < c.length;i ++) {
if((int)c[i] >= 65 & (int)c[i] <= 90)
count1++;
if((int)c[i] >= 97 & (int)c[i] <= 122) {
count2++;
}
if((int)c[i] < 65 || (int)c[i] > 90 & (int)c[i] < 97 || (int)c[i] > 122) {
count3++;
}
}
System.out.println("大写字母数:"+count1);
System.out.println("小写字母数:"+count2);
System.out.println("非英文字数:"+count3);
}
}
实验结果

实验总结
这次实验主要是字符串的处理,大体过程没什么难度,就是统计单词is的时候,单词数为零,后来一想,直接比较是比较地址,用了equals后就没问题了。实验虽然简单,但是更加让我对字符串的处理更加得心应手。
第五周总结
本周主要讲了Java的第二个特性,继承性,final关键字进一步讲解了多态性,对象的多态,

注意:Java中只允许单继承,不允许多继承,即一个子类只能继承一个父类,可以多层继承,即一个子类可以有一个父类,一个父类还可以有一个父类。
继承的子类有时也被叫做派生类,extends本身含义为扩展,就是扩展父类的内容
注意:子类不能直接访问父类私有成员,可以调用非私有方法,可以间接调用私有成员,例如setter,getter。
子类对象在实例化之前会先默认调用父类中的构造方法,所以实例化子类对象之前,需要先将父类中的属性进行初始化,在子类中隐含了一个super()方法。
super()表示子类可以直接调用父类中的无参构造。
覆写:
存在子类继承父类中。
主意:子类中覆写的方法不能有比父类更严格的权限。

super关键字:
前面已经提到super可以直接调用父类中的方法。
super调用构造方法与this一样,super要方法子类构造方法的首行
super与this很相似,都是可以调用构造,普通方法,属性,但是两者还是有一点区别。

final关键字:
final在Java中表示最终的意思,可以使用final声明类,属性,方法
注意:
- 使用final声明的类不能有子类。
- 使用final声明的方法不能被子类覆写。
- 使用final声明的变量即成为常量,常量不可以修改。
final变量命名时要求全部大写。
抽象类:
抽象类是Java专门提供一种当父类的类
抽象类的定义和命名规则: - 包含一个抽象方法的类必须是抽象类。
- 抽象类和抽象方法都要使用abstract关键字声明;
- 抽象方法只须声明不需要实现。
- 抽象类必须被子类继承,子类如果不是抽象类那么必须要覆写抽象类的全部抽象方法。

抽象类不能使用final关键字声明,因为抽象类必须被继承,必须被覆写。
抽象类可以定义构造方法
抽象类实际上就是比普通类多了一个抽象方法,除此之外没有很大的区别。
多态:
一种是的方法的重载与覆写
另一种是对象的多态
对象的多态主要是两种类型

向上转型,程序会自动完成,向下转型,必须要明确转型的子类类型
向下转型前必须先发生向上转型。
主要作用

第五周总结&第三次实验报告的更多相关文章
- 第五周学习总结&第三次实验报告(String类的应用)
第五周学习总结 1.学习了继承的相关知识点: (1) 继承的格式为class 子类 extends 父类{} (2) 继承实际上是通过子类去扩展父类的功能 (3) 一个子类只能继承一个父类,也就是说, ...
- 20145211 《Java程序设计》实验报告五————Java网络编程及安全实验报告
实验内容 1.掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 这一部分是与我的partner合作的,详见他的博客- [20145326 <Java程序设计> ...
- 20155201 实验五《Java面向对象程序设计》实验报告
20155201 实验五<Java面向对象程序设计>实验报告 一.实验内容 1. 数据结构应用 2. 结对编程:利用IDEA完成网络编程任务,1人负责客户端,1人负责服务器 3. 密码结对 ...
- 20145240 《Java程序设计》第三次实验报告
20145240 <Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.22 实验 ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验五 《网络安全与编程》 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验五 <网络安全与编程> 实验报告 一.实验报告封面 课程:Java程序设计 班级:1753班 姓名:盛 ...
- 20145320《Java程序设计》第三次实验报告
20145320<Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 15: ...
- 20155217 《Java程序设计》第三次实验报告
20155217 <Java程序设计>第三次实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
- 20155227 《Java程序设计》实验五 Java网络编程及安全实验报告
20155227 <Java程序设计>实验五 Java网络编程及安全实验报告 实验内容 任务一: 编写MyBC.java实现中缀表达式转后缀表达式的功能. 编写MyDC.java实现从上面 ...
- 20155305 2016-2017-2 《Java程序设计》 实验五 Java网络编程及安全实验报告
20155305 2016-2017-2 <Java程序设计> 实验五 Java网络编程及安全实验报告 实验内容 1.掌握Socket程序的编写. 2.掌握密码技术的使用. 3.设计安全传 ...
随机推荐
- Vscode中解决Html文件中不能打断点问题
Vscode中解决Html文件中不能打断点问题: 默认情况下,VSCode是不能在Html文件里打断点的,但是可以修改设置,依次打开:文件->首选项->设置,然后功能->调试-> ...
- 无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 返回了消息"无法在此会话中启动更多的事务"。
无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务.由于 XACT_ABORT 选项已设置为 OFF,因 ...
- java 用RGB生成图片动态命名
import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java. ...
- linux运维、架构之路-cobbler无人值守
一.cobbler介绍 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等 1.主要功能:①Cobbl ...
- java 8 接口默认方法
解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类. 作用:解决接口的修改与现有的实现不兼容的问题.在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个 ...
- Java——面向对象编程
在面向对象的编程中,不能再有第一步.第二步怎么做的概念. [对象和类]
- bootstrap得动态进度条
Bootstrap的动态进度条: html: 创建一个modal 这里使用fade先将modal隐藏起来,然后modal里面嵌入progress 代码很简单 <div class=" ...
- 前端HTTP缓存
Web 缓存大致可以分为:数据库缓存.服务器端缓存(代理服务器缓存.CDN 缓存).浏览器缓存.其中前端比较关心的是浏览器缓存,包括今天要说的HTTP缓存和前面说过的cookie.localStora ...
- Socket网络通信编程(一)
1.学习基本概念.传统的同步阻塞式I/O编程.伪异步IO实现 2.学习基于NIO的同步非阻塞式编程 3.了解基于NIO2.0的异步非阻塞(AIO)编程 1.1 基本概念 Socket又称“套接字”,应 ...
- 3D Computer Grapihcs Using OpenGL - 03 OpenGL Buffer Data
本节绘制一个三角形,并讲解Buffer Object-缓冲对象 OpenGL的窗口坐标 屏幕中心为坐标原点,横向朝右为x正方向,纵向朝上为y正方向,最大值最小值分别为1,-1. Buffer Obje ...