zoukankan      html  css  js  c++  java
  • 课件中动手动脑1

    (1)String类为字符串常量即经过初始化赋值后无法改变,StringBuffer类为字符串变量,用法为StringBuffer a=new StringBuffer(“”),括号中可以进行初始化也可以不用当用string a=“abc”,b=“abc”;时,二者是由字符串常量产生的变量,由于二者值相等,二者地址也就相等,而当用string a=new string(“abc”);string b=new string(“abc”);时,是为二者分配了不同的空间,所以二者的值虽然相等但是他们的首地址并不相等。 (2)equals与==的异同:对于字符串来说,当比较用String来定义的字符串时,==比较两个对象在内存中的首地址。equals()比较字符串中所包含的内容是否相同。如String s1,s2,s3 = "abc", s4 ="abc" ;s1 = new String("abc");s2 = new String("abc");那么s1==s2 是 false //两个变量的内存地址不一样,也就是说它们指向的对象不一样,故不相等。s1.equals(s2) 是 true //两个变量的所包含的内容是abc,故相等。而对于StringButter类,其并没有对equals这个方法进行重新定义,因此这个方法就来自Object类,而Object类中的equals方法是用来比较“地址”的。所以当用来比较用stringbuffer定义的字符串时,equals是用来比较地址的,当不是对于字符串来说时,equals与==是相同的,其都是表示比较对象的首地址。而对于用字符串常量产生的对象,当其值相等时是放在相同的位置的,所以二者地址相等,值也相等,即上述的s1.equals(s2)为true。对于符号“=”是将后者的值与地址都赋给前者。 而且equals不能用于基本类型的比较。 (3)枚举类型:利用enum来定义新的枚举类型: 如:public enum Light {        RED (1), GREEN (3), YELLOW (2); //利用构造函数传递参数        private int nCode ;        // 构造函数,枚举类型只能为私有        private Light( int _nCode) {            this . nCode = _nCode;        }            public String toString() {            return String.valueOf ( this . nCode ); //string.valueof()就是将括号中的参数转化为string类型。        } } (4)同名变量屏蔽原则:是指当全局变量与局部变量同名时,是允许的,而且在局部变量所控制的范围内屏蔽全局变量的影响,当父类中的变量与子类中变量同名时,父类和子类的变量是同时存在的,即使是同名。子类中看到的是子类的变量,父类中看到的是父类中的变量。它们互相隐藏,而同名的方法则是实实在在的覆盖(重写)。
  • 相关阅读:
    推荐一款超棒的阅读App
    IntelliJ中的main函数和System.out.println()快捷键
    oracle中varchar2字段存入blob字段及blob转成varchar2
    闭包
    some of the properties associated with the solution could not be read解决方法
    Visual Studio 2010如何利用宏
    中高级程序员成长必备素质
    WORD小技巧
    de4dot 用法
    JavaScript学习记录
  • 原文地址:https://www.cnblogs.com/123456www/p/9750837.html
Copyright © 2011-2022 走看看