从零基础接触java第五周第一节

来源:互联网 发布:互联网企业 知乎 编辑:程序博客网 时间:2024/05/22 07:46

  上次与大家分享了封装,其实面对java,小编突然觉得,如果换种方法去看待,去学期,我们也许会变得更积极。比如有目的性的去学习java。

  上次与大家介绍了封装,今天给大家介绍介绍一个引用类型,String,字符串。以前跟大家讲过int,float,double等数据类型,而且当时我还给大家介绍了一个叫char的不知道大家是否还记得,也就是定义一个字符,字符串说简单了就是由数个char组成的。一个char是定义一个字符,比如a,b,c这些字符,而这些字符的定义写法是char a = 'a';用单引号来表示。而字符串的定义比如:String a = "a";用双引号来表示。如果大家学过数据结构,那么肯定会知道,在数据的交换上,数据类型是在原有的内存空间上交换,而字符串却不一样,它会开辟一个新的空间,然后将栈里面的地址指向新的空间来改变赋值,如果这儿关于内存的内容看不懂没关系,知道就行了。所以简单的说,我们用String可以定义一个字符串,比如char只能定义单个字母,而String可以定义一长串。比如:String a = "abced1234";其中数字也能定义为字符串类型。只要是Ascii码对应有的都能使用字符串来定义。字符串不仅可以定义多个字符,还可以定义单个字符,并且里面还封装了许多方法供我们使用,在后期会有很大帮助,至于具体哪些方法小编就不一一列举啦,毕竟是先给大家了解第一印象。

  这儿关于String我要说一下,虽然String是引用数据类型,但是毕竟也属于数据类型当中的,所以是可以经行毕竟的。比如String a = "abc";String b = "abc";那么a==b?这儿a和b相等吗?就内容而言,它们确实是相等的,但是结果却会告诉我们,这两个不想等?为什么呢?因为在字符串的比较当中,用==符号还会同时比较它们的地址,定义字符串a在栈上开辟了一个地址指向内存,定义b又在栈上开辟了一个地址指向内存,而栈的地址永远不会有相同的,所以当进行对比地址的时候,便会首先出现不一样的道理。所以a和b对比的结果便不一样。那么有没有其他方法呢?答案是有的,比如equals,单纯的只是对比字符串的内容,列如:a.equals(b),那么这样输出的结果就是相等的啦。如果大家把数据结构学了以后,学习字符串会有更深的了解。

  接下来最后再给大家讲一个知识点,this,表示当前对象。前面我跟大家分享过所谓的对象,也就是图纸和生产物的关系。而这this就指向的是那生产物,毕竟this在英文中的含义也是这,那的意思,所以意义相同。列如,我们在定义一个对象的时候:

class ThisDemo{

    String name="zhangsan";

    public void pln(){

        sysotem.out.plintln(this.name);

}

}

以上代码中大家可以看到,输出语句中我写的是this.name,所代表的就是当前对象,也就是ThisDemo中的name。用于强调指向的作用。以及后期我们在构造函数中传参时也会用到调用set和get方法。列如:

class ThisDemo{

    String name = "lisi";

    public ThisDemo(){}

    public ThisDemo(String name){

        this.setName(name);

}

    public void setName(String name){

        this.name = name;

}

    public String getName(){

        return name;

}

}

以上代码中构造函数中的setName方法的调用便用了this.关于this小编就简单介绍这么多了,只要大家有个了解有个大概印象就差不多了,本节的分享就这么多了,希望能对大家有所帮助,同时大家如果在后期的学习中发现小编有什么错误希望在评论下说出来小编好改正,同时祝大家早日进入java的殿堂。

0 0
原创粉丝点击