创建对象的两种方式

一、通过加载类机制创建对象

  主要过程:

1 String str = “asdf” ;
2 Class t = Class.forName(str);
3 Object obj = t.newInstance();

  先来认识一下Class.forName():

 Class.forName(xxx)返回的是名字为xxx的一个类,利用反射机制。
 Class.forName(xxx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。

 接着使用newInstance方法来创建对象,前提必须该类已经加载,这里上述的方法已经完成。

 工厂模式就常通过该方法创建对象以及JDBC连接驱动也常用该方法加载驱动类,此分步骤创建的对象的好处是可以获得更多的灵活性,其缺点是创建对象时只能默认调用无参的构造方法,效率低。

二、通过创建一个新类并实例化创建对象

  一个常用的通过new关键字实例化对象,强类型,可以调用各种含参构造器,效率相对高些。

  

原文地址:https://www.cnblogs.com/chenloveslife/p/8901651.html

时间: 2024-11-08 21:53:40

创建对象的两种方式的相关文章

浅谈创建对象的两种方式

经常使用IDE不容易看出编译和运行的明显区别,因为像eclipse这样的开发工具会自动进行编译.当你创建一个类的时候就编译成一个class文件,在此基础上做的修改保存后又会触发一次编译.所以我们可以借助记事本来看看什么是运行时调用,来体验一下创建对象的两种方式. 首先来看一个例子,有以下的接口和两个实现类: public interface Fruit { public void color(); } public class Apple implements Fruit { @Override

Java反射获取class对象的三种方式,反射创建对象的两种方式

Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName 静态方法. 前提:已明确类的全路径名. 第二种,使用 .class 方法. 说明:仅适合在编译前就已经明确要操作的 Class 第三种,使用类对象的 getClass() 方法. 适合有对象示例的情况下 package com.reflection; /** * Created by Liuxd

反射动态的创建对象的两种方式

一种是通过默认的构造器通过Class的newInstance()方法来获取 另一种是通过指定的构造器来创建 import java.lang.reflect.Constructor; public class ReflectDemo2 { public static void main(String[] args) throws Exception { /* * 如何根据给定名称获取到指定的Class对象后建立该类的对象呢? */ // getObject_1(); //通过默认构造器new对象

java 创建对象的两种方式

一: Object object = new Object(); 二: public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { //可以通过映射的方式来获取 DemoTest2 myobject = (DemoTest2)Class.forName("DemoTest2").newInstance(); m

Android提交数据到服务器的两种方式四种方法

Android应用开发中,会经常要提交数据到服务器和从服务器得到数据,本文主要是给出了利用http协议采用HttpClient方式向服务器提交数据的方法. /** * @author Dylan * 本类封装了Android中向web服务器提交数据的两种方式四种方法 */ public class SubmitDataByHttpClientAndOrdinaryWay { /** * 使用get请求以普通方式提交数据 * @param map 传递进来的数据,以map的形式进行了封装 * @p

Java中创建对象的几种方式

Java中创建对象的五种方式: 作为java开发者,我们每天创建很多对象,但是我们通常使用依赖注入的方式管理系统,比如:Spring去创建对象,然而这里有很多创建对象的方法:使用New关键字.使用Class类的newInstance方法.使用Constructor类的newInstance方法.使用Clone方法.使用反序列化. 使用new关键字:这是我们最常见的也是最简单的创建对象的方式,通过这种方式我们还可以调用任意的够赞函数(无参的和有参的).比如:Student student = ne

OOP 创建对象的7种方式

JavaScript OOP 创建对象的7种方式 我写JS代码,可以说一直都是面向过程的写法,除了一些用来封装数据的对象或者jQuery插件,可以说对原生对象了解的是少之又少.所以我拿着<JavaScript高级程序设计 第3版>恶补了一下,这里坐下总结笔记,属于菜鸟级别,大神请直接无视. 1.工厂模式 1 /** 2 * 工厂模式 3 */ 4 function createPerson(name,age,job){ 5 var o = new Object(); 6 o.name = na

js中面向对象(创建对象的几种方式)

1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 注:本文引用于 http://www.cnblogs.com/yuxingyoucan/p/5797142.html 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) function cr

JavaScript基础——面向对象的程序设计(一)创建对象的几种方式总结

简介 面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到一个值.正因为这样(以及其他将要讨论的原因),我们可以把E