静态方法调用非静态方法: 在类中静态方法中,需要实例化对象,然后再调用类中的方法 非静态方法调用静态方法: 可以self 或者 类名加::的形式调用 如下面的案例: <?php class A{ public function noneStaticFun(){ echo __CLASS__." none static function<br/>"; } public static function staticFun(){ echo __CLASS__."
1.首先来澄清一些观点 由于静态方法在内存中只有一份,无论你调用多少次,都是共用的,而且没有对象的概念,所以不能在静态方法里面使用$this调用,如果非得调用的话,只能实例化自身类 而实例化不一样,每一个实例化是一个对象,在内存中是多个的 <?php Error_reporting(E_ALL|E_STRICT); class A{ public function bar(){ echo 'bar'.PHP_EOL; } public static function foo(){ echo 'f
创建一个ArrayList对象,传入整型参数 @Test public void arrayListConstructor(){ ArrayList<Object> objects = new ArrayList<>(5); System.out.println(objects.size()); // 0 } 结果调用size方法,返回结果却是0. 难道是真的没生效吗? ArrayList对象的size()方法源码: /** * Returns the number of elem
1.Class.newInstance()只能调用public的无参数构造方法 public class Main { public static void main(String[] args) throws InstantiationException,IllegalAccessException{ String s = (String) String.class.newInstance(); Integer n = (Integer) Integer.class.newInstance()
转载:http://blog.csdn.net/seattle1215/article/details/6657814 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cash { class Program { static void Main(string[] args) { (new Program()).run(); // writeFee(ca
解释:这里的super()仅仅是用来占位的,实际上,必须是严格按照分层初始化的过程:1.先初始化父类X的成员变量,即初始化成员变量Y,打印出:Y2.初始化父类X的构造方法,打印出:X3.父类初始化完成之后,初始化子类Z,先初始化子类的成员变量y,打印出:Y4.接着初始化子类Z的构造方法,打印出:Z 可以看出,super()在这里不影响初始化的顺序 class X { Y b = new Y(); X() { System.out.print("X"); } } class Y { Y(
方法一: class foo { static public function test() { var_dump(get_called_class()); } } class bar extends foo { } foo::test(); bar::test(); 输出: string(3) "foo" string(3) "bar" 方法二: class Bar { public static function test() { var_dump(static
今天来研究一下含继承.静态成员.非静态成员时Java程序的执行顺序: 一.不含继承,含有静态变量.静态代码块 创建一个子类,该类包含静态变量.静态代码块.静态方法.构造方法 /** * @createtime 2017年3月17日 下午5:17:02 * @description 创建一个子类 */ public class Son{ public static String name = "子类name"; public static long date = new Date().g