第五周总结 & 实验报告(三)
第五周总结
一、继承
1.类的继承格式
class 父类{}
class 子类 extends 父类{}
2.扩展类的功能
class 父类{
父类属性;
..........
..........
}
class 子类 extends 父类{
新定义属性;
...........
...........
注意:只允许多层继承不能多重继承,(即一个子类只能继承一个父类,一个父类还可以有一个父类)
子类不能直接访问父类的私有操作
二、方法的覆写
概念:指子类定义了与父类中同名的方法(被子类覆写的方法不能拥有比父类方法更严格的访问权)
例:
class 父类{
void print(){
System.out.println("父类 --》void print(){}"); }
} class 子类 extends 父类{
public void print(){ //覆写父类中的方法,扩大了权限
System.out.println("子类 --》void print(){}"); } }
方法的重载与覆写的区别
|
区别点 |
重载 |
覆写 |
|
单词 |
Overloading |
Overriding |
|
定义 |
方法名称相同,参数的类型或个数不同 |
方法名称、参数类型、返回值类型全部相同 |
|
对权限没有要求 |
被覆写的方法不能拥有更严格的权限 |
|
|
范围 |
发生在一个类中发生 |
发生在继承类中 |
三、super关键字
1.super关键字可以从子类中调用父类中的构造方法
2.super关键字可以从子类中调用父类中的属性
3.super关键字可以从子类中调用父类中的方法
class 父类{
定义属性
构造方法设置属性
...........
...........
}
class 子类 extends 父类{
(可增加属性扩展父类)
..........
..........
public 方法名(参数){
super(父类属性); //指定调用父类中的构造方法
}
.........
}
this与super 的区别
|
区别点 |
this |
super |
|
属性访问 |
访问本类中的属性如果本类中没有此属性,则从父类中继续查找 |
访问父类中的属性 |
|
方法 |
访问本类中的属性如果本类中没有此方法,则从父类中继续查找 |
直接访问父类中的方法 |
|
调用构造 |
调用本类构造 |
调用父类构造,必须放在子类构造方法首行 |
|
特殊 |
表示当前对象 |
无 |
三、final关键字
注意:
1.使用final声明的类不能有子类
2.使用final声明的方法不能被子类所覆写
3.使用final声明的变量即成常量,常量不可修改
四、抽象类
(1)定义及使用规则:
1.包含一个抽象方法的类必须是抽象类
2.抽象类和抽象方法都要使用abstract关键字声明
3.抽象方法只需声明而不需要实现
4.抽象类必须要被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法
(2)抽象类的定义格式
abstract class 抽象类名称{
属性;
访问权限 返回值类型 方法名称 (参数){ //普通方法
........
........
}
访问权限 abstract 返回值类型 方法名称 (参数); //抽象方法
//在抽象方法中是没有方法体的
}
注意:抽象方法不要使用private声明
五、对象的多态性
(1)两种体现
1.方法的重载与覆写
2.对象的多态性
(2)两种类型
1.向上转型:子类对象--->父类对象
2.向下转型:父类对象--->子类对象
(3)对象转型
对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;
注意:对象向下转型的要求
在进行对象的向下转型前,必须首先发生对象向上转型,否则将出现对象转换异常
实验报告(三)
实验三 String类的应用
一、 实验目的
(1) 掌握类String类的使用;
(2) 学会使用JDK帮助文档;
二、 实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
① 统计该字符串中字母s出现的次数。
② 统计该字符串中子串“is”出现的次数。
③ 统计该字符串中单词“is”出现的次数。
④ 实现该字符串的倒序输出
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
一、
实验源码:
package zifuc;
class Zifu {
private String str;
private String str1;
public Zifu(String str,String str1) {
this.setStr(str);
this.setStr1(str1);
}
public Zifu(String str) {
this.setStr(str);
}
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public void finds(String str,String str1) {
int index;
int count = 0;
while((index = str.indexOf(str1)) > -1){
count++;
str = str.substring(index + 1);
}
System.out.print(str1+"的个数:");
System.out.println(count);
}
public void finds1(String str,String str1) {
int cout=0;
String[] stringA=str.split(" ");
for(int i=0;i<stringA.length;i++) {
if(str1.equals(stringA[i])==true){
cout++;
}
}
System.out.println("单词“is”的个数:"+cout);
}
public void finds2(String str) {
String[] stringA=str.split("");
String[] stringB=str.split(" ");
System.out.print("倒叙:");
for(int i=stringA.length-1;i>=0;i--)
System.out.print(stringA[i]);
System.out.print("\n"+"单词倒叙:");
for(int i=stringB.length-1;i>=0;i--)
System.out.print(stringB[i]+" ");
}
}
package zifuc;
public class zifc1 {
public static void main(String[] args) {
Zifu st = new Zifu("this is a test of java","s");
st.finds("this is a test of java", "s");
Zifu st1 = new Zifu("this is a test of java","is");
st1.finds("this is a test of java", "is");
st1.finds1("this is a test of java","is");
Zifu st3 = new Zifu("this is a test of java");
st3.finds2("this is a test of java");
}
}
实验结果:

二、
实验源码:
package jiami;
class Jiami {
private String str;
public Jiami(String str){
this.setStr(str);
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public void jiami(String str) {
char[] Array = str.toCharArray();
int a = str.length();
char[] Array1 = new char[a];
for(int i=0;i<Array.length;i++) {
if(i<a-3)
Array1[i]=Array[i+3];
else
Array1[i]=Array[i-a+3];
System.out.print(Array1[i]);
}
}
}
package jiami;
import java.util.*;
public class Jiami1 { public static void main(String[] args) {
System.out.print("请输入:");
Scanner str = new Scanner(System.in);
String n =null;
n=str.nextLine();
Jiami st = new Jiami(n);
st.jiami(n);
} }
实验结果:

三、
实验源码:
package jisuan;
class Shuru {
private String str;
public Shuru(String str){
this.setStr(str);
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public void jisuan(String str) {
char[] Array = str.toCharArray();
int upcase=0;
int lowcase=0;
int count=0;
for(int i=0;i<Array.length;i++) {
if(Array[i]>='a' & Array[i]<='z')
lowcase++;
else if(Array[i]>='A' & Array[i]<='Z')
upcase++;
else
count++;
}
System.out.println("小写:"+lowcase+"个"+"\n"+"大写:"+upcase+"个"+"\n"+"非字母:"+count+"个");
}
}
package jisuan; import java.util.Scanner;
public class Shuru1 { public static void main(String[] args) {
System.out.print("请输入:");
Scanner sc = new Scanner(System.in);
String str = null;
str = sc.nextLine();
Shuru st = new Shuru(str);
st.jisuan(str); } }
实验结果:

四、总结
在写第一题时遇到了要使用String常用的方法,对于这些都不是很熟练
第五周总结 & 实验报告(三)的更多相关文章
- 第五周总结&实验报告三
第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s ...
- 20135231 JAVA实验报告三:敏捷开发与XP实践
---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习 ...
- 第五周课程总结&试验报告三
第五周课程总结 一.第五周课程总结 1.this关键字 this可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用.当一个类的属性(成员变量)名与访问该 ...
- 20145221 《Java程序设计》实验报告三:敏捷开发与XP实践
20145221 <Java程序设计>实验报告三:敏捷开发与XP实践 实验要求 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址 记录TDD和重构的过程,测试代码不要少 ...
- 20155310第一周JAVA实验报告
20155310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
- 20145310第一周JAVA实验报告
20145310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
- 第五周总结&实验·
本周总结 1.final声明的变量即成为常量,常量不可以修改. 2.子类能够 ...
- 第五周学习总结&实验报告三
第五周课程总结 1.this和super的区别: this:访问本类中的属性,如果本类没有此属性则从父类中继续查找:访问本类中的方法,如果本类中没有此方法则从父类中继续查找:调用本类构造,必须放在构造 ...
- 第五周学习总结&第三次实验报告(String类的应用)
第五周学习总结 1.学习了继承的相关知识点: (1) 继承的格式为class 子类 extends 父类{} (2) 继承实际上是通过子类去扩展父类的功能 (3) 一个子类只能继承一个父类,也就是说, ...
随机推荐
- python中常见的一些错误异常类型
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的 ...
- 2019icpc徐州网络赛
A Who is better? 题意 excrt+斐波那契博弈 分析 Java的BigInteger对象默认为null,不能直接比较. 代码 import java.math.BigInteger; ...
- Timetable CodeForces - 946D (区间dp)
大意: n天, 每天m小时, 给定课程表, 每天的上课时间为第一个1到最后一个1, 一共可以逃k次课, 求最少上课时间. 每天显然是独立的, 对每天区间dp出逃$x$次课的最大减少时间, 再对$n$天 ...
- 对Elastic集群内部配置TLS加密通信及身份验证
1.介绍 官方宣布从6.8和7.1开始,免费提供多项安全功能.其中包括tls加密通信,基于角色访问控制等功能. 可以使用企业CA证书来完成这一步骤,但是一般情况下,我们可以通过elasticsearc ...
- RabbitMQ入门教程(三):Hello World
原文:RabbitMQ入门教程(三):Hello World 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog. ...
- Spring Boot缓存注解@Cacheable、@CacheEvict、@CachePut使用
从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...
- vim 文本编辑器
vim 文件名:命令模式 i 编辑模式 :输入模式 vim +n 文件名:打开文件,将光标置于第N行首部 命令模式进入输入模式进行编辑: i 当前光标位置插入文本 I 在当前行行首插入文本 o 在光标 ...
- jquery判断 input type="file"上传文件是否为空
要想获取type="file"的input内容,用var file = $("id").val();肯定是不行的,下面是代码: html上传按钮为: <i ...
- 查看 MySQL 数据库的编译参数
grep CONFIGURE_LINE /app/mysql/bin/mysqlbug 提示:还发现很多人先 cat,在 grep,很不专业,应杜绝. 范例 3: [root@VM-001~]# gr ...
- poj 1915 KnightMoves(bfs)
Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 24094 Accepted: 11364 De ...