• 第五周课程总结&试验报告(三)


    第五周课程总结&实验报告三

    第五周课程总结

    随着时间的推移,一个月过去了,我们学习的java只是也在慢慢的开始出现沉淀。我们开始慢慢熟悉这门语言,尽管只窥见其冰山一角,但足以令人深思。尽管我不是java大佬,也不是专业尖子生,但至少我能做出来,并且还在慢慢变得熟练。这也是令人足以兴奋的。好的,来简单复盘下本周学习及复习到的的知识点:
    1.this关键字与supe关键字

    (1)this关键字代表了所属函数的调用者对象,this代表了对象的内存地址(在构造函数中打印this会发现结果是一个内存地址),也就是说哪个对象调用了this所在的函数,那么this就指代哪个对象;
    (2)this是指向本类中某一个对象的一个变量,this相当于文章中第一人称的“我”,所有人描述自己的时候都会说“我”,只要读“我”的这个人发生变化,这个“我”指向的人就变了;而this关键字与之类似,this是抽象的,刚开始并不知道是指代谁,this是每一个对象携带的变量,这个变量所指向的都是自己,this只是起到了一个描述的作用:只要有一个具体的对象来执行的时候,this就用这个对象的this,换一个对象,this就变成另一个对象的this,所以只有在执行的时候才知道指向谁。就像文章中的“我”,只有确定了谁是读这篇文章的,才能确定这个“我”指代谁;
    (3)this关键字代表的是对象的引用,也就是this在指向一个对象,所指向的对象就是调用该函数的对象引用;
    4.this关键字的作用:
    (1)如果存在同名的成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据;
    (2)在一个构造函数中可以调用另外一个构造函数初始化对象;
    5.this关键字要注意的事项:
    (1)存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(Java采取的是“就近原则”的机制访问的);
    (2)如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下,那么Java编译器会在该变量的前面添加this关键字;
    6.this关键字调用其他的构造函数要注意的事项:
    (1)this关键字调用其他的构造函数时,this关键字必须要位于构造函数中的第一个语句;
    (2)this关键字在构造函数中不能出现相互调用的情况,因为是一个死循环;引用自《this关键字与super关键字详解》

    2.本周还深入讲解了java的继承
    其中就有讲到super关键字的部分,相关资料见上文。还讲解了子类对象的实例化过程方法的覆写

    3.final关键字的作用和实例还有抽象类
    讲解了final关键字的使用和实例展现。还了解了抽象类和abstract关键字。
    4.对象的多态性

    对象向上转型: 父类 子类对象 = 子类实例;
    对象向下转型: 子类 子类对象 = (子类)父类实例;

    我查阅相关资料,找到一篇相当易懂的讲解多态性博文《Java之对象的多态性》

    实验报告:

    实验三 String类的应用

    实验目的
    掌握类String类的使用;
    学会使用JDK帮助文档;
    实验内容
    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
    统计该字符串中字母s出现的次数。
    统计该字符串中子串“is”出现的次数。
    统计该字符串中单词“is”出现的次数。
    实现该字符串的倒序输出。
    2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

    3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。**

    第一题:

    源代码:

    package test;
    
    import java.util.Scanner;
    
    public class test1 {
    	
    public static void main(String args[]) {
    	int count1=0,count2=0,count3=0;
    	int x=0;
    	String str1="this is a test of java";
    	for(int i=0;i<str1.length();i++) {
    		if(str1.indexOf("s", x)!=-1) {
    			x=str1.indexOf("s",x)+1;
    			count1++;
    		}
    	}
    	x=0;
    	for(int i=0;i<str1.length();i++) {
    		if(str1.indexOf("is", x)!=-1) {
    			x=str1.indexOf("is",x)+2;
    			count2++;
    		}
    	}
    	x=0;
    	for(int i=0;i<str1.length();i++) {
    		if(str1.indexOf(" is ", x)!=-1) {
    			x=str1.indexOf(" is ",x)+2;
    			count3++;
    		}
    	}
    	
    	System.out.println("s出现次数为:"+count1);
    	System.out.println("子串is出现次数为:"+count2);
    	System.out.println("单词is出现次数为:"+count3);
    	char c[]=str1.toCharArray();
    	for(int i=str1.length()-1;i>=0;i--) {
    		System.out.print(c[i]);
    	}
    }
    	
    }
    

    实验截图:

    第二题:

    源代码:

    package test;
    
    import java.util.Scanner;
    
    public class test2 {
        
    public static void main(String args[]) {
        System.out.println("输入密码:");
        Scanner pa=new Scanner(System.in);
        String password1 = pa.nextLine();
        char c[]=password1.toCharArray();
        System.out.print("加密后密码为:");
        System.out.print(c[password1.length() - 3]);
        System.out.print(c[password1.length() - 2]);
        System.out.print(c[password1.length() - 1]);
        
        for(int i=0;i<password1.length()-3;i++) {	
        	System.out.print(c[i]);
        }
        
        
        
        /*System.out.println("子串is出现次数为:"+count2);
        System.out.println("单词is出现次数为:"+count3);*/
    }
        
    
    }
    

    实验截图:

    第三题:

    源代码:

    package test;
    
    import java.util.Scanner;
    
    public class test3 {
    	
    public static void main(String args[]) {
    	int count1=0,count2=0,count3=0;
    	String str1 ="ddejidsEFALDFfnef2357 3ed";
    	char c[]= str1.toCharArray();
    	int len=str1.length();
    	for(int i=0;i<str1.length();i++) {
    		if(c[i]>='A'&&c[i]<'Z') {
    			count1++;
    		}
    		else if(c[i]>='a'&&c[i]<'z') {
    			count2++;
    		}
    		else {
    			count3++;
    		}
    	}
    	
    	
    	System.out.println("大写字母数:"+count1);
    	System.out.println("小写字母数:"+count2);
    	System.out.println("非英文字母数:"+count3);
    	System.out.println("字符串长度 :"+len);
    }
    	
    
    }
    

    实验截图:

  • 相关阅读:
    eclipse3.2 汉化 汉化包下载
    JAXB 操作XML 与 Object
    具体解释三层架构图
    四个好看的CSS样式表格
    LinearGradient线性渲染
    JAVA wait(), notify(),sleep具体解释
    System.currentTimeMillis();
    nefu117 素数个数的位数,素数定理
    java jdk缓存-128~127的Long与Integer
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/LfanWyuXooo/p/11597534.html
Copyright © 2020-2023  润新知