第五周学习总结

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类的应用)的更多相关文章

  1. 第六周学习总结&第四次实验报告

    第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...

  2. 第五周学习总结&实验报告(三)

    第五周学习总结&实验报告(三) 这一周又学习了新的知识点--继承. 一.继承的基本概念是: *定义一个类,在接下来所定义的类里面如果定义的属性与第一个类里面所拥有的属性一样,那么我们在此就不需 ...

  3. 20145213《Java程序设计》第五周学习总结

    20145213<Java程序设计>第五周学习总结 教材学习内容总结 "素衣莫起风尘叹,犹及清明可到家."每每念此,不得不心疼自己.古人清明长假都进城耍了,还担心自己清 ...

  4. 20145337 《Java程序设计》第五周学习总结

    20145337 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 JAVA中的所有错误都会被包装成对象,如果你愿意,可以尝试执行并捕捉代表错误的对象后做一些处理.使用了try ...

  5. 20145218 《Java程序设计》第五周学习总结

    20145218 <Java程序设计>第五周学习总结 教材学习内容总结 异常 程序中总有些意想不到的状况所引发的错误,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失 ...

  6. 《Java程序设计》第五周学习总结

    20145224 <Java程序设计>第五周学习总结 教材学习内容总结 第八章异常处理 8.1.1使用try.catch ·教材范例用户连续输入整数,输入0结束后显示输入数的平均值(代码如 ...

  7. 20155304 2016-2017-2 《Java程序设计》第五周学习总结

    20155304 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 try catch JVM会先尝试执行try区块中的内容,若发生错误且与catch后 ...

  8. 201521123038 《Java程序设计》 第五周学习总结

    201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...

  9. 201521123061 《Java程序设计》第五周学习总结

    201521123061 <Java程序设计>第五周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1.代 ...

随机推荐

  1. Jmeter启动jmeter-server.bat 报java.io.FileNotFoundException:rmi_keystore.jks 解决方法

    解决方法:1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl ...

  2. Java面试之基础篇(5)

    41.a.hashCode() 有什么用?与 a.equals(b) 有什么关系?        hashCode() 方法对应对象整型的 hash 值.它常用于基于 hash 的集合类,如 Hash ...

  3. JS几种数组遍历方式总结

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...

  4. Linux基础教程 linux下使用find命令根据系统时间查找文件用法

      LinuxFind 兄弟连Linux培训 总结这些时间戳包括 复制代码代码如下: mtime 文件内容上次修改时间 atime 文件被读取或访问的时间 ctime 文件状态变化时间 mtime 和 ...

  5. SQL基础测试

    SQL 测验 结果:20/20 您的回答: 1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT ...

  6. sh_03_程序计数

    sh_03_程序计数 # 打印 5 遍 Hello Python # 1. 定义一个整数变量,记录循环次数 i = 0 # 2. 开始循环 while i < 3: # 1> 希望在循环内 ...

  7. 【转载】自动化运维系列之Cobbler给Openstack节点安装操作系统

    preface 我们在一篇博文知道了如何搭建Cobbler,那么下面就通过Cobbler来安抓Openstack所有节点吧. 服务器配置信息如下: 主机名 IP 角色 Cobbler.node.com ...

  8. es入门--curl的使用

    文档介绍: 首先要讲什么是文档,我们中大多是java程序员,java是面向对象的,那么在elasticsearch看来:对象和文档是等价的.只不过这个对象是可以被序列化成key-value形式的jso ...

  9. djangle中模板系统的使用

    django相关的命令行命令: 创建一个djaongo的应用:在已经创建号的应用文件夹中运行:django-admin.py startproject projectName 开启系统自带的服务器在网 ...

  10. spring boot + mybatis + layui + shiro后台权限管理系统

    后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...