在许多时候,我们会写一个类,这个类只是用来提供一些静态方法或静态属性,就好像C++的函数一样,比如 java.lang.Math,java.util.Arrays等,但是有时候这些类的用户可能会在无意思的情况下是构造函数生成一个这个类的对象,但是这个对象没有任何意义. 这样实例类(utility classes)原本不使用来实例化的,但是编译器会在没有显示提供构造函数的情况下提供一个公共的,无参的构造函数.为了避免这种情况,我们可以直接包含一个私有的构造方法来防止这种类的实例化: public
package com.imooc.practice; class Parent{ public Parent(){ System.out.println("Parent构造方法执行!"); } { System.out.println("Parent非静态语句块执行!"); } static{ System.out.println("Parent静态语句块执行!"); } } public class Child extends Parent{
反射获取私有构造方法并且使用: 1.获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person"); 2.获取私有构造方法对象 //Constructor con = c.getConstructor(String.class);这个方法是获取公共构造器,而这是私有构造,所以报错:NoSuchMethodException //Constructor con = c.getDeclaredConstru
1. 反射获取私有构造方法并且使用: (1)获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person"); (2)获取私有构造方法对象 //Constructor con = c.getConstructor(String.class);这个方法是获取公共构造器,而这是私有构造,所以报错:NoSuchMethodException //Constructor con = c.getDeclaredCon
4.指出下面程序的运行结果. class A { static { System.out.print("1"); } public A() { System.out.print("2"); } } class B extends A{ static { System.out.print("a"); } public B() { System.out.print("b"); } } public class Hello { pu
先看看下面几个类,然后判断它们的输出public class A { static{System.out.print(1);}public A(){System.out.print(2);}} public class B extends A{ static{System.out.print("a");}public B(){System.out.print("b");}} public class C { public static void main(Strin