public class Father { public void print() { System.out.println("Father:print()"); } } public class Son extends Father{ // 方法的覆盖:子类重写父类的同名方法 Override public void print() { System.out.println("Son:print()"); } // Father obj1 = son; publi…
前文讲述了类名或方法的应用之一调试源码,具体请参阅:Java学习-025-类名或方法名应用之一 -- 调试源码 此文主要讲述类名或方法应用之二统计分析,通过在各个方法中插桩(调用桩方法),获取方法的调用关系.通过调用关系,我们可以统计出被调用次数比较多的方法,同时也可以构建全系统调用关系链:通过操作重要业务流程,可以统计组成重要业务流程的主要方法,加强相应的单元测试.功能.安全.性能等方面的测试.对于软件产品质量控制存在非凡的意义. 下面构建的演示示例调用关系如下所示: GetClassMeth…
上文讲述了如何获取类名和方法名,敬请参阅: Java学习-024-获取当前类名或方法名二三文 . 通常在应用开发中,调试或查看是哪个文件中的方法调用了当前文件的此方法,因而在实际的应用中需要获取相应的包名.类名.方法名.行数,从而快速定位,及统计方法被调用的次数,生成类方法关系链. 相信爱钻研的小主们,通过上篇文章,已经懂得了,如何获取主调方法.从调方法.那我直接上码了,敬请各位小主参阅,若有不足之处,敬请各位大神指正,不胜感激! GetClassMethodName.java 源码内容如下所示…
接下来几天会根据http://www.cnblogs.com/chenssy/category/525010.html中讲解的java内容做个学习笔记,在此感谢一下这位大仙!! 一.封装 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作. 使用封装有三大好处: 1.良好的封装能够减少耦合. 2.类内部的结构可以自由修改. 3.可以对成员进行更精确的控制. 4.隐藏信息,实现细节. 二.继承 继承定义了类如何相互关联,共享特性.对于若干个相同或者相…
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是Java中的多态以及利用多态形成的接口 多态 当时在学习C++时,要使用多态需要定义函数为virtual,也就是虚函数.类中存在虚函数时,对象会有一个虚函数表的头指针,虚函数表会存储虚函数的地址,在使用父类的指针或者引用来调用方法时会根据虚函数表中的函数地址来调用函数,会形成多态. 当时学习C++时对…
一.多态 1.对象的多种形态 (1)引用多态: 父类的引用可以指向本类的对象 父类的引用可以指向子类的对象 (2)方法多态: 创建本类对象时,调用的方法为本类方法: 创建子类对象时,调用的方法是子类方法,如果没重写,调用的就是继承父类的方法 (3)父类的引用是不可以调用子类特有的方法. 二.多态中的引用类型转换 1.向上类型转换(隐式/自动类型转换) 小类型到大类型的转换 2.向下类型转换(强制类型转换) 大类型到小类型的转换 3.instanceof运算符,来解决引用对象的类型,避免类型转换的…
我们上一节当中讲到了创建线程的第一种方法,就是继承Thread类,覆写Thread当中的run方法,然后创建子类对象,之后调用对象的start方法启动线程.但是这种方法有一个缺陷,因为我们知道在java当中类与类当中是单继承的关系,假如现在我们的子类是另外一个类的子类,这个时候如果这个子类想使用多线程的话,就没有办法了.我们之前说接口的时候,知道接口的存在就是为了扩展类的功能,而避免多继承.那么有没有一种方法可以通过实现接口来完成多线程的创建呢?我们查阅Api可以知道,在java当中为我们提供了…
接着前面的学习: java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note5.html,转载请注明源地址. 1.方法的控制流程 Java中的流程控制结构主要有三种: 顺序结构 选择结构 if语句(二路选择结构).switch语句(多路选择结构) 循环结构 for语句.w…
Java主类的main方法调用其他方法 方法1: funA()方法设为静态方法. 当主类加载到内存,funA()分配了入口地址,主要代码如下: public class test{ static void funA(){ System.out.println("we are students"); } public static void main(String args[]){ System.out.println("Hello, 欢迎学习JAVA"); funA…
继承的特点 单继承:每个子类最多只有一个直接父类,注意是直接父类,间接父类个数不限 注意父类的概念:A-->B-->C-->D,在这里,ABC都是D的父类,C是D的直接父类,AB是D的间接父类 父类和子类是一般和特殊的关系:子类扩展了父类,子类是一种特殊的父类 Object是所有类的直接或间接父类:定义一个类时,若没有直接指定父类,则默认继承Object类 子类从父类继承了哪些要素 子类不继承父类的构造方法,但是总要调用父类的构造方法 子类继承了父类的实例变量和实例方法.类变量和类方法,…