`
Anddy
  • 浏览: 197961 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

2008年期末考试复习总结

    博客分类:
  • java
阅读更多
类成员访问修饰符与继承的关系
  • 私有的(private)类成员不能被子类继承
  • 公共的(public)和保护性的(protected)类成员能被子类继承,且子类和父类可以属于不同的包
  • 无修饰的父类成员,仅在本包中才能被子类继承
  • 构造函数不是类成员,所以不被继承


继承与子类的构造方法
子类的构造方法
必须要对父类的构造方法进行调用,
不管以任何形式,否则编译出错

  • Subclasses inherit those superclass members declared as public or protected.
  • Subclasses inherit those superclass members declared with no access specifier as long as the subclass is in the same package as the superclass.
  • Subclasses don't inherit a superclass's member if the subclass declares a member with the same name. In the case of member variables, the member variable in the subclass hides the one in the superclass. In the case of methods, the method in the subclass overrides the one in the superclass.


类的继承
  • 重写: 子类和父类的方法名、返回类型和参数相同,与重载(overload)的区别
  • 如果是实例方法,则称为子类重写(overriding)父类的实例方法
  • 如果是类方法,则称为子类隐藏父类的类方法(static)
  • 实例方法不能重写静态方法
  • 静态方法不能重写实例方法
  • final/private方法不能被重写或隐藏


注: 实例变量可隐藏静态变量
     静态变量可隐藏实例变量
再谈重写(覆盖)和重载注意的地方

在覆盖要注意以下的几点
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖


在使用重载要注意以下的几点
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果



== 和 equals
String s1 = new String(“java”);
String s2 = new String(“java”);
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
System.out.println(s1.compareTo(s2));

String s3 = “java”;
String s4 = “java”;
System.out.println(s3 == s4);
System.out.println(s3.equals(s4));
System.out.println(s3.compareTo(s4));
System.out.println(s2 == s4);
System.out.println(s2.equals(s4));
System.out.println(s2.compareTo(s4));


输出结果:
false
true
0
true
true
0
false
true
0

结论:
  • String s1 = “abc”;  字符串常量对象 (immutable)
  •     String s2 = “abc”;     不同常量对象共享同一对象
  • 其他字符串对象则可理解为对字符串常量对象进行了
  •     一层包装
  • == 永远比较的是地址
  •     equals 比较的是内容是片面的: Object类equals比较的还是地址;
    String类中equals首先比较地址,如果地址相同则返回true ,其次在比较内容
  • 原来,程序在运行的时候会创建一个字符串缓冲池当使用 s3 = "java" 这样的表达是创建字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在第一个程序中,s3先被放到了池中,所以在s4被创建的时候,程序找到了具有相同值的 s3将 s4 引用 s3 所引用的对象"java"第二段程序中,使用了 new 操作符,他明白的告诉程序:“我要一个新的!不要旧的!”与是一个新的"java"Sting对象被创建在内存中。他们的值相同,但是位置不同,一个在池中游泳一个在岸边休息。

public class TestString { 
    public static void main(String[] args) { 
        String s1 = "Monday"; 
        String s2 = new String("Monday"); 
        s2 = s2.intern(); 
        if (s1 == s2) 
            System.out.println("s1 == s2"); 
        else 
            System.out.println("s1 != s2"); 
        if (s1.equals(s2)) 
            System.out.println("s1 equals s2"); 
        else 
            System.out.println("s1 not equals s2"); 
    } 
} 

加入:s2 = s2.intern();
程序输出:s1 == s2s1 equals s2原来,程序新建了 s2 之后,又用intern()把他打翻在了池里哈哈,这次 s2 和 s1 又引用了同样的对象了我们成功的减少了内存的占用5. == 与 equals() 的争斗String 是个对象,要对比两个不同的String对象的值是否相同明显的要用到 equals() 这个方法可是如果程序里面有那么多的String对象,有那么多次的要用到 equals ,哦,天哪,真慢啊更好的办法:把所有的String都intern()到缓冲池去吧最好在用到new的时候就进行这个操作String s2 = new String("Monday").intern();

再谈Array 数组之间的equals

 // null 元素是相等的. 
boolean[] bArr1 = null; 
boolean[] bArr2 = null; 
boolean b = Arrays.equals(bArr1, bArr2); // 

//比较两个boolean
bArr1 = new boolean[]{true, false}; 
bArr2 = new boolean[]{true, false}; 
b = Arrays.equals(bArr1, null); // false 
b = Arrays.equals(bArr1, bArr2); // true 

// 对于原生类型的数组可以用equals(). 
b = Arrays.equals(new byte[]{0}, new byte[]{0}); // true 
b = Arrays.equals(new char[]{'a'}, new char[]{'a'}); // true 
b = Arrays.equals(new short[]{0}, new short[]{0}); // true 
b = Arrays.equals(new int[]{0}, new int[]{0}); // true 
b = Arrays.equals(new long[]{0L}, new long[]{0L}); // true 
b = Arrays.equals(new float[]{0F}, new float[]{0F}); // true 
b = Arrays.equals(new double[]{0D}, new double[]{0D}); // true 


假如比较的是Object型的数组,null元素是相等的.
假如于元素不是
null, Java虚拟机会自动调用Object.equals().
b = Arrays.equals(new String[]{"a"}, new String[]{"a"}); // true 
b = Arrays.equals(new String[]{null}, new String[]{null}); // true 
b = Arrays.equals(new String[]{"a"}, new String[]{null}); // false 


参考资料:http://blog.csdn.net/gzaqq/archive/2007/04/15/1565275.aspx
分享到:
评论

相关推荐

    2008年C++大学期末考试复习参考题

    2008年C++大学期末考试复习参考题旨在帮助学生深入理解并掌握C++的基础概念以及高级特性,为他们应对期末考试做好充分准备。这份资料包含了选择题、程序编写题和程序补全题等多种题型,覆盖了C++语法、类与对象、...

    西南科技大学 期末考试 2008-2013年 历年考题 期末资料.rar

    本资料集合了2008年至2013年间的高数期末考试试题,是西科大学生备考期末考试的重要参考资料。 高数,全称高等数学,是理工科学子必修的基础课程,它涵盖了微积分、线性代数、概率统计等多个领域。对于学生来说,...

    广东外语外贸大学《国际贸易》期末考试复习资料.pdf

    《国际贸易》课程期末考试复习资料,通常包括理论知识的复习、计算题的演练以及历年试题的分析。以下是对给定资料中涉及的国际贸易知识点的详细解读: 1. 国际贸易基础知识 - 国际贸易是指不同国家之间进行的商品...

    南昌大学数电期末考试

    本压缩包提供了2007至2008学年第二学期以及2009年第一学期的数电期末考试试卷和答案,共计四套,为备考的学生提供了一份宝贵的参考资料。 1. 试卷结构分析: 从文件名可以推断,试卷分为A卷和B卷,每卷又包含答案...

    中南大学抽象代数期末考试试题

    此份中南大学的抽象代数期末考试试题涵盖了多个核心概念,包括置换的分解、群论基础、环论以及模理论。 1. **置换的分解**:置换是群论中的基本概念,特别是在对称群中。题目要求将置换分解为互不相连的循环置换的...

    哈工大C语言2003~2009年期末考试真题

    《哈工大C语言2003~2009年期末考试真题解析》 哈工大,作为中国顶级的工程学府之一,其计算机科学教育在全球范围内享有盛誉,尤其是在C语言的教学方面,更是严谨细致。这些年间,哈工大C语言课程的期末考试真题成为...

    计算机控制期末考试试卷;中南大学

    这个要分重些 因为还要本人前天考试时的2010年的计算机考试试卷...本卷包括往届 3年的所有试卷和答案 却少2008年考试的 以后再发上来 包含2006 年2008年 2009年的试卷 供大家复习使用 中南大学这个是开卷的哦 信息院的

    武汉大学计算机学院操作系统期末考试试卷.zip

    武汉大学计算机学院的这份期末考试试卷集合涵盖了2008年至2016年间的多份考卷,其中包括部分带有答案的版本,这对于复习操作系统知识,了解考试重点和题型具有很高的参考价值。 在这些试卷中,我们可以预期涉及以下...

    计算机网络期末复习资料

    全国2008年4月自考计算机网络原理试题.doc则是自考的试题,可能涉及更深入的理论知识,如网络协议的工作原理、网络性能分析等。 最后,计网复习资料.doc是对整个学科的综合回顾,可能包括了所有的重要概念、技术和...

    云计算期末试题.doc

    IBM在2007年推出了“蓝云”平台,微软则在2008年推出了Azure云计算操作系统。 2. **主要云计算服务商**:IBM、Google、Amazon和微软都是云计算市场的关键参与者。例如,IBM在2008年分别在无锡和北京建立了云计算...

    2008年会计从业资格考试总复习资料.rar

    《2008年会计从业资格考试总复习资料》是一个非常宝贵的资源,它涵盖了PPT课件、历年真题以及模拟试题,对于备考会计从业资格考试的考生来说,无疑是提升学习效果的重要工具。下面,我们将深入探讨这个压缩包中可能...

    SSD7课程考试复习参考.rar

    通过研究2008年的数据库考试题目和答案,学生可以发现考试的常见模式,了解教授们关注的重点领域,例如数据库设计原则、SQL查询优化、并发控制和事务处理等。这些内容不仅涉及到数据库理论知识,同时也反映了SSD技术...

    高等教育高级财务会计期末复习PPT学习教案.pptx

    高级财务会计的命题遵循中央广播电视大学的教学大纲,教材采用杨有红主编的《高级财务会计》第二版,该书由中央广播电视大学出版社于2008年出版。该教材及教学大纲应成为学生复习的主要参考。 考核要求方面,课程将...

    专题资料(2021-2022年收藏)哈工大模电期末考试题及答案收集资料.doc

    【哈工大模电期末考试题及答案】的专题资料主要涵盖了模拟电子技术的相关知识点,这份资料是2008年秋季学期的试题,适用于学习和复习电子技术基础的学员。以下是部分关键知识点的详细解释: 1. **双极型晶体管与场...

    期末考试离散数学历届考题.zip

    吉林大学珠海学院的离散数学期末考试题目,无疑是对学生理解和掌握这门课程的关键检验。 2008年和2011年的考题涵盖了离散数学的主要内容,我们可以从以下几个方面来深入理解这些知识点: 1. **集合论**:集合是...

    2008年秋季三年级语文科期末考试题(2)-.pdf

    在2008年秋季三年级语文科期末考试题中,涉及了小学语文教学的核心内容,这些内容不仅涵盖了基础的字词句学习,还包括了传统文化和阅读理解能力的培养,下面将对这些知识点进行详细解读。 首先,在语言学习方面,...

    中央电大《财务报表分析》期末复习资料必备考试小抄(拼音排序版本).doc

    10. 总资产周转率计算:根据提供的数据,可以计算出企业的总资产周转率,如某公司2008年的总资产周转率为3次。 11. 市盈率、市净率:分别表示股票价格与每股收益、每股净资产的比率,是评估股票价值的重要指标。...

    二年级语文下册 期末总复习 强化训练四 综合学习试题 语文版-语文版小学二年级下册语文试题.doc

    同时,我们希望孩子们能够以积极的态度面对即将到来的期末考试,相信在老师、家长的支持和自己的努力下,每个人都能取得自己满意的成绩。让我们一起为美好的未来努力学习,为我们的中国梦贡献力量。

    北航数值分析B期末试题

    由于文档中包含了2001年、2002年、2003年、2006年、2008年、2009年和2010年的试题,我们可以推断出试题中必定包括以下几个核心知识点: 1. **插值法**:插值法是数值分析中用于构造给定点集间曲线的方法,包括线性...

Global site tag (gtag.js) - Google Analytics