创建类的实例的方法,如何生成类的实例

1 , 如何生成类的实例使用new关键字,调用类的构造方法比如类名是:Student创造一个Student类实例方法如下Student stu = new Student();//这里注意stu是你自己给这个实例取的名字 , 不一定要叫stu//另外需要注意,如果构造函数有参数的话,要传入对应参数才可以生成实例,否则编译无法通过比如Student类的构造方法是:public Student(string p_name) Student stu = new Student("张三");//这样就创建了一个名字叫做【张三】的学生实例有问题继续Hi我java中的类如果要实例化的话,必须手动编写,不能由系统自动生成,实例如下: public class ceshi int i; public static void main(string[] args) ceshi ce = new ceshi(); } }手动编写的例子如上述代码 , java中还提供了clone克隆的方式来生成实例变量,只需要该类实现clone接口 。【创建类的实例的方法,如何生成类的实例】
2,java类实例化有哪几种方法1、用new语句创建对象 , 这是最常见的创建对象的方法 。2、通过工厂方法返回对象,如:String str = String.valueOf(23); 3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法 。如:Object obj = Class.forName("java.lang.Object").newInstance(); 4、调用对象的clone()方法 。5、通过I/O流(包括反序列化),如运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法 。静态工厂方法(static factory method)和普通的构造器相比优点:1)静态工厂方法有名称 。2)不必在每次调用静态工厂方法时,都创建一个新对象 。3)静态工厂方法可以返回原返回类型的任何子类型的对象 。4)在创建参数化类型实例的时候,静态工厂方法使代码变得更加简洁 。缺点:1)类如果不含公有的或者受保护的构造函数 , 就不能被子类化 。2)静态工厂方法与其他的静态方法没有实际上区别 。在api文档中没有像构造函数那样被javadoc明确标识出来 。要想查明如何实例化一个类 , 变得非常困难 。回避方法:使用惯用名称来弥补 。例如:valueof、of、getinstance、newinstance、gettype、newtype
3,java中怎样创建一个类有那些方法请举例说明谢谢1、定义一个类,class A=2、继承java已有的类,以异常类为例,class A extends Exception3、实现java已有接口或者抽象类,class A implements Runnable4、单继承多实现,class A extends B implements C,D{} 。创建一个类,1,用new2,用反射楼主请看吧,不过建议下次想快速得到答案 , 就得给分的,不然没多少人愿意跟我一样当免费劳动力的 。看看吧,很详细了 。public class teststring str;public test()}public void getcat()system.out.println("this is a cat!");}public void getdog()system.out.println("this is a dog!");}public void getanimal()getcat();//在除了main()方法中调用其他方法需要new实例之外,其他内中调用不需要getdog();}public static void main(string[] args)test test = new test();//构造出本类的实例,然后用实例去调用方法名test.getcat();test.getdog();}file--->new--->javaproject. 然后写名字 比如mainclass main()public static void main (String[] args)System.out.println("I love java"); } }
4,C如何用类名创建实例“反射”其实就是利用程序集的元数据信息 。反射可以有很多方法 , 编写程序时请先导入 System.Reflection 命名空间,假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型):Assembly assembly = Assembly.LoadFile(程序集路径,不能是相对路径); // 加载程序集(EXE 或 DLL)object obj = assembly.CreateInstance(类的完全限定名(即包括命名空间)); // 创建类的实例若要反射当前项目中的类可以为:Assembly assembly = Assembly.GetExecutingAssembly(); // 获取当前程序集object obj = assembly.CreateInstance(类的完全限定名(即包括命名空间)); // 创建类的实例 , 返回为 object 类型,需要强制类型转换也可以为:Type type = Type.GetType(类的完全限定名);=======================================================补充:1)反射创建某个类的实例时,必须保证使用类的完全限定名(命名空间 + 类名) 。c#中自定义类和系统类如string是一样的,可以进行相同的类似操作 。一、新建一个类twodrumparametersmaching_class,并编写构造函数 /// /// 设备参数匹配类构造函数 /// 配置设备名称 /// /// 设备名称 public twodrumparametersmaching_class(string _strmachinename) { strmachinename = _strmachinename; } 二、在另一个自定义类中定义自定义类组,由于定义时不知道具体的设备数量,因此定义一个无指定长度的数组,/// /// 定义处理类组 /// twodrumparametersmaching_class[] twodrumparametersmachings; 三、 根据读取配置文件后获取的设备数量(strtwodrummachinenames.length),实例化自定义类组 twodrumparametersmachings = new twodrumparametersmaching_class[strtwodrummachinenames.length]; 四、实例化好自定义类组后,就可以编程调用自定义类的各种功能 for (int i = 1; i < strtwodrummachinenames.length; i++) { twodrumparametersmachings[i].startini(); }5,关于Java类的实例化有两个类A类和B类!如果B继承A类就可以A car=new B();意思是用用之类B指向父类A;这个问题非常简单 。A car=new A();这种方式是直接创建类A的实例化对象.A car=new B();这种方式是间接的创建类A的实例化对象 。以下分两种情况:1.一个父类引用可以指向于继承了该类的对象的实例.即A为父类,B为类A的子类:class B extends A;我想你就应该在想类A的实例怎么等于类B的实例,那是因为类B是类A的子类 , 子类拥有父类的所有属性所以就可以写成A car=new B();但是不能写成B car=new A();这种方式是不安全的 。因为子类不仅拥有父类的所有属性,而且还拥有自己的属性 。class Personpublic int eyes=2;public int head=1;}class Student extends PersonString name="Merlini";Public void Show()System.out.println("大家好我是:"+name+"我有一个"+super.head+"头"+super.eyes+"只眼睛");}}public class test public static void main(String[] args)Person person=new Student();person.Show(); }}2.一个接口的引用可以指向于实现了该接口的对象的实例即A为一个接口,类B为实现该接口的一个类: class B implements Ainterface Personpublic void fun();}class Student implements PersonString name="Merlini";public void fun()System.out.println("name:"+name);}}public class testpublic static void main(String[] args)Personperson=new Student();person.fun();}}有两种情况!第一种:A是B是父类 即:class B extends A}第二种,A是个接口!class B implements A}好像父类变量可以接受子类对象B应该是A的子类吧class B extends A}是类的构造方法 A()就是不带参数的构造方法初始化对象

    推荐阅读