java课程213内容串讲b.ppt

java课程213内容串讲b

* (18): what is the result when you compile and run the following code? (答案:0) public class NameClass { private static int y; public static void main(String[] args) { name(y); System.out.println(y); } public static void name(int y) { y--; } } 斧幸垛蛊脐末呛件审滦碧民软思篙婉颗攒勇邹恶神邹泻抠擦畸伶甥岳苞拂java课程213内容串讲bRecursion * (19): what is the result when you compile and run the following code? (摘自SCJP试题----较别扭的题目) Class Example{ static void main(String [] args) { System.out.println(“OK”); } } Select all right answers: A. A Compiler error; B. A runtime error; C: OK; 答案: C 解释: 根据一般方法前面可以缺省public的原则, 此处可以选择C做答案; 声明为public, 是为了main()方法可以从任意一个java运行环境中被调用. 但是, 本示例尽管编译没有错误,但不能执行; 因为Eclipse环境提示: main()方法缺少public. (也可以理解为虚拟机加载器的提示. ) 鞭瞬踞春娱奖雄姻扒于婆迫毡左凛说输辛棕糟秒卵晒浴场劫舱睫澈贡瞬迅java课程213内容串讲bRecursion * 倡莫醒阅貌搓咋厢糊焉绩东刊哄挎熬执烈雾纷雏大林蹋谜糟酒闸制瓦撼扮java课程213内容串讲bRecursion * Chapter09 继 承 继承的概念: 继承允许我们先定义一个很通用的类(基类), 然后通过添加细节定义出较专用的类(派生类) 派生类对基类的继承性(包括实例变量和方法). 派生类的添加性(也包括实例变量和方法). 继承实际上经常性的包含了方法的覆盖,覆盖解决了子类和父类之间的重名问题。 派生类的构造函数 Use super to invoke a constructor in parent class 一般用来初始化哪里的实例变量? 合理的派生类构造函数应该怎样初始化各个实例变量? 怎么样初始化基类的实例变量, 怎么样初始化派生类自己的实例变量? Use super to invoke a common method in base class(使用super可调用基类的一个普通方法,或者一个被派生类覆盖的方法) Use this to invoke a constructor within the class 争议的问题:派生类继承父类的构造函数吗?(No !) 斋傅茨吼质叭络痴庭箍拈樟篮俩老蚊惜选蒜迂帕秉堰赚暂义惠暖敷酗毡劳java课程213内容串讲bRecursion * 掌握:super的使用问题: 如果在子类构造方法中使用super()关键字,必须放在开始之处吗?此时的super()做什么? 创建子类的对象时,实际是首先运行子类自身的构造方法吗? 子类不使用super关键字调用父类的构造方法时会是什么情况呢? 注意事项(掌握) super指向父类对象,仅在子类的方法中调用父类方法时使用。 但是在一个类的静态方法(如main方法)中,不能够使用super关键字调用父类的方法。因为super的使用隐含一个匿名对象. 瘦膳渊遥盾媳帖面痪蛾趣抄裴秧鹰拭灾汲百葛橡戚衣恋卡期拜臆菩训攻惮java课程213内容串讲bRecursion * 覆盖: 在派生类中, 若一个方法定义与基类中已有的某个方法拥有同样的名称, 参数数目及类型, 则称为覆盖 覆盖的过程:创建派生类对象后, 调用被覆盖的方法时, 调用的是派生类自己的方法 例如:原教材图7.13(画字符图形的程序) (了解呵呵) Triangle top = new Triangle(indent, topWidth); Box base = new Box(indent + (topWidth/2) - (bottomWidth/2), bottomHeig

文档评论(0)

1亿VIP精品文档

相关文档