第五周学习总结&第三次实验报告(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循环就可以解决问题
时间过得很快,转眼间就第五周了,感觉对知识点还不是很熟悉,也缺乏一定的练习,希望自己能利用课外的时间好好加油,不忘初心,方得始终.
第五周学习总结&第三次实验报告(String类的应用)的更多相关文章
- 第六周学习总结&第四次实验报告
第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...
- 第五周学习总结&实验报告(三)
第五周学习总结&实验报告(三) 这一周又学习了新的知识点--继承. 一.继承的基本概念是: *定义一个类,在接下来所定义的类里面如果定义的属性与第一个类里面所拥有的属性一样,那么我们在此就不需 ...
- 20145213《Java程序设计》第五周学习总结
20145213<Java程序设计>第五周学习总结 教材学习内容总结 "素衣莫起风尘叹,犹及清明可到家."每每念此,不得不心疼自己.古人清明长假都进城耍了,还担心自己清 ...
- 20145337 《Java程序设计》第五周学习总结
20145337 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 JAVA中的所有错误都会被包装成对象,如果你愿意,可以尝试执行并捕捉代表错误的对象后做一些处理.使用了try ...
- 20145218 《Java程序设计》第五周学习总结
20145218 <Java程序设计>第五周学习总结 教材学习内容总结 异常 程序中总有些意想不到的状况所引发的错误,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失 ...
- 《Java程序设计》第五周学习总结
20145224 <Java程序设计>第五周学习总结 教材学习内容总结 第八章异常处理 8.1.1使用try.catch ·教材范例用户连续输入整数,输入0结束后显示输入数的平均值(代码如 ...
- 20155304 2016-2017-2 《Java程序设计》第五周学习总结
20155304 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 try catch JVM会先尝试执行try区块中的内容,若发生错误且与catch后 ...
- 201521123038 《Java程序设计》 第五周学习总结
201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...
- 201521123061 《Java程序设计》第五周学习总结
201521123061 <Java程序设计>第五周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1.代 ...
随机推荐
- Linux安装redis,启动配置不生效(指定启动加载配置文件)
一.今天有个同学问我,为什么明明安装了redis,修改了配置,启动的时候,配置还是不生效.如下图是安装后的redis文件图. 二.想加载上图中的redis.conf,进入到src中寻找到启动文件red ...
- Django 创建 hello world
前言 用Django 创建 hello 哈哈,对这个还是有点意思的 创建文件 在你的目录下 比如我是 F:\python\django 的输入下面的代码: django-admin startproj ...
- python 脚本制作
U盘拷贝 当U盘插入主机时 被系统识别挂载后 通过python代码自动的去读取U盘中的资料并且进行拷贝 寄存在U盘上的 把硬盘上的资料进行读取并移动到U盘里 有点像 繁殖性 传输性 破坏性 破坏系统或 ...
- 牛客挑战赛34 A~E
闷声发大财 A O(nmk)dp即可,因为带了1/2的常数+2s所以很稳 #include <algorithm> #include <iostream> #include & ...
- java中System类
System作为系统类,在JDK的java.lang包中,可见它也是一种java的核心语言特性.System类的构造器由private修饰,不允许被实例化.因此,类中的方法也都是static修饰的静态 ...
- UNIX标准C - socket套接字
一.计算机网络 1.计算机网络的功能 a.数据通信 b.资源共享 c.提高系统的可靠性 d.分布式网络处理和负载均匀. 2.计算机网络的组成 1.通信子网:由网卡.线缆.集线器.中继器.交换器.路由器 ...
- TTTTTTTTTTTTTTTTTT POJ 1330
题意:给一个有根树,一个查询节点(u,v)的最近公共祖先: #include <iostream> #include <cstdio> #include <cstring ...
- [BZOJ3812]主旋律:状压DP+容斥原理
分析 Miskcoo orz 令\(f[S]\)表示使得\(S\)这个点集强连通的方案数. 然后呢?不会了 考虑到将一个有向图SCC缩点后,得到的新图是一个DAG,所以我们可以类比带标号DAG计数的解 ...
- android自定义camera以及uri和文件路径之间的转换
相对直接调用系统的camera,这种方法使用得相对还少一些.根据api文档,步骤如下: 定义一个预览类 可以参照<android高薪之路>这本书上面,有这种方法的一种完整实现 而对应的ac ...
- xml文件中 xmlns xmlns:xsi 等解释
http://bbs.csdn.NET/topics/390751819 maven 的 pom.xml 开头是下面这样的 <project xmlns="http://maven.a ...