第五周学习总结&第三次实验报告(String类的应用)
时间:2019-09-27
本文章向大家介绍第五周学习总结&第三次实验报告(String类的应用),主要包括第五周学习总结&第三次实验报告(String类的应用)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第五周学习总结
1.学习了继承的相关知识点:
(1) 继承的格式为class 子类 extends 父类{}
(2) 继承实际上是通过子类去扩展父类的功能
(3) 一个子类只能继承一个父类,也就是说,继承只允许多层继承不能多重继承
(4) 子类不能直接访问父类中的私有属性,但是可以调用父类中的getter或者setter去访问
(5) 子类对象在实例化之前必须首先调用父类中的构造方法再调用子类自己的构造方法,子类也可以直接使用super()调用父类中的无参构造
(6) 方法的覆写即子类定义了与父类同名的方法,但被子类覆写的方法不能有比父类更为严格的访问权限,当方法被覆写之后,子类对象调用的将是被覆写后的方法
7) 子类如果和父类定义了相同名称的属性,则在子类中直接访问时采用就近原则,即先找到本类中的属性,直接用super属性
(8) 还学习了重载和覆写的区别
区别点 | 重载 | 覆写 |
单词 | Overloading | Overriding |
定义 | 方法名称相同,参数的类型和个数不同 | 方法名称,参数的类型,返回值类型全部相同 |
定义 | 对权限没有要求 | 被覆写的方法不能拥有更为严格的权限 |
范围 | 发生在一个类中 | 发生在继承类中 |
(8)super关键字的运用
使用super可以从子类中调用父类的构造方法,普通方法以及属性
区别点 | this | super |
属性访问 | 访问本类中的属性,如果本类中没有此属性则从父类中查找 | 访问父类中的属性 |
方法 | 访问本类中的方法,如果没有则从父类中继续查找 | 直接访问父类中的方法 |
调用构造 | 调用本类构造,必须放在构造方法的首行 | 调用父类构造,必须放在子类构造方法的首行 |
特殊 | 表示当前对象 | 无此概念 |
(9)final关键字
使用final声明的类不能有子类
使用final声明的方法不能被子类所覆写
使用finai声明的变量即为常量,不可更改
(10)抽象类
一个子类只能继承一个抽象类
包含一个抽象方法的类必须是抽象类
抽象方法只需要声明而不需要实现,子类必须覆写抽象类中的抽象方法
(11)接口以及对象的多态性
在进行对象的向下转型之前,必须首先发生对象向下转型
第三次实验报告
实验三 String类的应用
实验目的
掌握类String类的使用;
学会使用JDK帮助文档;
实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
(1)统计该字符串中字母s出现的次数。
package project;
public class Test1 {
public static void main(String[] args) {
String str = "This is a test of Java";
int count = 0;
char[] c = str.toCharArray();
for(int i = 0;i<c.length;i++){
if(c[i]=='s'){
count++;
}
}
System.out.println(count);
}
}
(2)统计该字符串中子串“is”出现的次数
package project;
public class Test2 {
public static void main(String[] args) {
String str = "This is a test of java";
int count = str.indexOf("is");
System.out.println(count);
}
}
(3)统计该字符串中单词“is”出现的次数
package project;
public class Test3 {
public static void main(String[] args) {
String str = "This is a test of java";
int count = 0;
String[] s = str.split(" ");
for(String e:s){
if(e.equals("is")){
count++;
}
}
System.out.println(count);
}
}
(4)实现该字符串的倒序输出
package project;
public class Test4 {
public static void main(String[] args) {
String str = "This is a test of java";
StringBuffer sb = new StringBuffer(str);
System.out.println(sb.reverse().toString());
}
}
总结:感觉第一大题没有什么难度,就是String类方法的简单应用,老师上课也讲过其中的一些题
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图
package project;
import java.util.Scanner;
public class Coad {
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);
}
}
总结:直接用public char[] toCharArray(),将字符串变成字符数组,然后用数组去解决问题,先前不知道应该怎么去解决问题,但有自己的思考方向与朋友讨论解决了问题.
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
package project;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
String str="ddejidsEFALDFfnef2357 3ed";
int letters = 0;
int capitalLetters = 0;
int noEnglishLetters = 0;
char c[] = str.toCharArray();
for(char a:c){
if(a>='a'&&a<='z'){
capitalLetters++;
}
else if(a>='A'&&a<='Z'){
letters++;
}
else{
noEnglishLetters++;
}
}
System.out.println("小写英文字母数:"+letters);
System.out.println("大写英文字母数:"+capitalLetters);
System.out.println("非英文字母数:"+noEnglishLetters);
}
}
总结:直接用String类方法将字符串转换为字符数组,然后用数组,for循环就可以解决问题
时间过得很快,转眼间就第五周了,感觉对知识点还不是很熟悉,也缺乏一定的练习,希望自己能利用课外的时间好好加油,不忘初心,方得始终.
原文地址:https://www.cnblogs.com/buxiu888/p/11577193.html
- 论如何高效的挖掘漏洞
- Rxjava + retrofit + dagger2 + mvp搭建Android框架
- 走进科学:如何正确的隐藏自己的行踪
- 比特儿(Bter.com) 比特币交易平台被盗事件全解析
- BitTorrent Bleep:无法被监控的聊天软件
- QQ蠕虫的行为检测方法
- 趋势OfficeScan系列产品漏洞分析
- [置顶] 浅谈我为什么选择用Retrofit作为我的网络请求框架
- 基于HTML5的Canvas指纹跟踪技术
- 有关 Android 应用桌面角标 (BadgeNumber) 实现的探讨
- XSS的原理分析与解剖
- Hold安全公司公布俄罗斯大型泄密事件细节
- 走近科学:如何搞定各种各样的终端机
- android 打造不同的Seekbar
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- BERT源码分析(PART I)
- FTP文件管理项目(本地云)项目日报(二)
- FTP文件管理项目(本地云)项目日报(一)
- 【奇技淫巧】-- 朋友圈(并查集)
- 【奇技淫巧】-- 岛屿的最大面积
- LeetCode精选好题(三)
- 【LeetCode两题选手】算法类题目(7.29)
- 【LeetCode两题选手】算法类题目(7.27)
- 【奇技淫巧】-- 走地图的不同路径
- 【奇技淫巧】-- 搜索旋转数组
- 【奇技淫巧】-- 原地旋转链表
- 【奇技淫巧】-- 盛水最多的容器
- 【leetcode两题选手】MySQL类题目(八)
- 【leetcode两题选手】MySQL类题目(七)
- 【leetcode两题选手】MySQL类题目(六)