第五周学习总结

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. python大佬养成计划----HTML网页设计(表格)

    制作网页时,要合理规划网页布局.比如,在网页中添加一个表格,可分为上.中.下三部分,上部存放网页标题或LOGO图片,中间部分是整个网页的主体内容,底部就是相关制作信息.此外,单元格里还可再添加单元格, ...

  2. 跨平台开发框架DevExtreme v19.1.4正式发布|附下载

    DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...

  3. Python pickle模块学习(超级详细)

    from  http://blog.csdn.net/sxingming/article/details/52164249

  4. asp.net mvc 异步控制器

    参考:https://blog.csdn.net/niewq/article/details/20490707 https://www.cnblogs.com/visonme/p/5537190.ht ...

  5. 6423. 【NOIP2019模拟11.11】画

    题目描述 Description Input Output Sample Input 3 2 3 3 6 5 1 2 1 3 Sample Output 15 Data Constraint 题解 迫 ...

  6. luoguP1197 [JSOI2008]星球大战 x

    P1197 [JSOI2008]星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中 ...

  7. 2019 Multi-University Training Contest 3 T7 Find the answer

    Find the answer Time Limit: 4000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...

  8. 容器适配器————heap

    堆(heaps)不是容器,而是一种特别的数据组织方式.堆一般用来保存序列容器. 堆是一个完全二叉树,每个节点与其子节点位置相对.父节点总是大于或等于子节点,这种情况下被叫作大顶堆,或者父节点总是小于或 ...

  9. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)

    今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点: 一.oauth中的角色 client:调用资源服务器API的应用 O ...

  10. Spring Data JPA(一)简介

    Spring Data JPA介绍 可以理解为JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL(Java Persistence Query Language) ...