美文网首页
面向对象语言特性

面向对象语言特性

作者: 风景凉 | 来源:发表于2017-08-14 19:08 被阅读0次

    ——Java中的equals()==

    Java中的equals和==不仅是笔试面试中的常客,同时也是我们在写代码的时候常用到的知识点,并且不理解其中的详情的话在使用代码的时候非常容易出错。

    ——==

    int a=4; int b=4b==a

    如果作用于基本数据类型的变量,则直接比较其存储的是否相等;

    如果作用于引用类型的变量,则比较的是所指向的对象的地址

    ——equals()

    equals方法不能作用于基本数据类型的变量,只能是一个对象来调用,然后参数也是要传一个对象的

    所以下面是错误的写法:

    int a = 1;

    a.equals(1);

    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

    诸如StringDate等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

    —— toString()

    Object类中的方法,所以,在每一个java类中,都会有这个方法,因为每一个java类都是直接或者间接的Object类的子类,会继承到这个方法。

    当前用一个引用指向一个对象的时候,比如:Student s = new Student(),然后如果直接打印这个引用s,其实是调用了s.toString()方法,然后就会把这个引用里面的存放的堆区对象的地址值显示出来。

    所以我们会常常在类中重写这个toString()方法,然后让这个类的引用按照我们要求来返回内容。

    ——getClass()

    Object类中的方法,所以,在每一个java类中,都会有这个方法,并且这个方式final修饰的,不能被子类重写,这个方法可以返回某一个引用在运行的时候指向对象的类型

    例如:Person p = new Student()

    //会输出:class com.briup.chap06.Student

    //说明这个引用p在运行时指向的是Student这个类的对象

    //注意这个引用p的类型是Person的(多态)

    System.out.println(p.getClass());

    ——String(字符串)

    虽然之前我们在程序中举例子的时候大多数时候用的是int类型变量,但是其实在实际开发中,String类型才是用的最多的没有之一,并且这个类较为特殊,也会经常出现在笔试面试题中。

    String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法。在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法。

    String类其实是通过char数组来保存字符串的。

    ——研究String类的构造方法

    ——字符串是常量,它的值在创建之后不能更改

    Q1:String s = “hello”; s += “world”;问s的结果是多少?//helloworld

    Q2:String s = new String(“hello”)和String

    s = “hello”;的区别?

    String s = new String(“hello”)会创建2(1)个对象,String s = “hello”创建1(0)个对象。注:当字符串常量池中有对象hello时括号内成立

    ——String类的比较方法

    boolean

    equals(Object obj):比较字符串的内容是否相同,区分大小写

    booleanequalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写

    boolean contains(String str):判断大字符串中是否包含小字符串

    boolean startsWith(String str):判断字符串是否以某个指定的字符串开头

    boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾

    boolean isEmpty():判断字符串是否为空。

    Test:实现验证码验证功能

    ILJ0OQ92Z这些字母都不应当出现在验证码,且验证码不应区分大小写。出现这些字母和区分大小写的验证码都是程序员和产品经理不专业的表现。

    ——String类的遍历方法

    ——封箱和装箱

    Java中,数据类型总体可以分为两大类:基本数据类型(值类型)和类类型(数据引用类型)。

    基本数据类型的数据不是对象,不能作为对象调用其toString(),getClass(),hashCode() ,equail()等等。

    所以Java就专门针对8大基本类型封装了类

    包装类:short

    Shortbyte Byteint Integerlong Longdouble

    Doublefloat Filoatchar Charboolean

    Boolean

    所谓的装箱:就是把基本类型用他们相应的引用类型包起来,使他们具有对象的特质。如int封装成Integer

    所谓的拆箱:正好和装箱相反,就是把Integer的这种引用类型的对象重新简化为基本类型数据。

    Q3:如何将字串String转换成整数int?

    Integer.parseInt()

    Q4:如何将整数int转换成字串String ?

    Integer.toString();

    ,

    相关文章

      网友评论

          本文标题:面向对象语言特性

          本文链接:https://www.haomeiwen.com/subject/syqprxtx.html