精华内容
下载资源
问答
  • java实例化对象

    千次阅读 2016-05-15 08:35:19
    摘要:分享牛,分享牛分享,java加载机制,java实例化对象java实例化对象机制,java基础。java是如何实例化对象的呢?以及实例化对象的先后顺序是什么?下面我们以测试的方式说明.1.1. 声明父类public class A ...

    摘要:分享牛,分享牛分享,java类加载机制,java实例化对象,java实例化对象机制,java基础。

    java是如何实例化对象的呢?以及实例化对象的先后顺序是什么?下面我们以测试的方式说明.

    1.1. 声明父类

    public class A {
    public A() {
    a1();
    }
    public void a1() {
    System.out.println("a-a1");
    }
    }

    1.2. 声明子类

    public class B extends A {
    int a=0;
    public B() {
    a=100;
    }
    @Override
    public void a1() {
    System.out.println("B a1():"+a);
    System.out.println("B a1()");
    }
    }

    1.3. 测视类

    1.3.1. 第一种情况

    new A();

    输出结果如下:

    a-a1

    因为a类默认继承object所以实例化A类的时候,直接调用自身的a1()方法。

    1.3.2. 第二种情况

    new A().a1();

    输出结果:

    a-a1

    a-a1

    因为a类默认继承object所以实例化A类的时候,直接调用自身的构造方法a1()方法。因为又直接调用a1()方法,所以一共调用了2次。

    1.3.3. 第三种情况

    new B();

    输出结果:

    B a1():0

    B a1()

    因为B类继承a类,所以先去实例化父类A类,但是实例化A类的时候调用a1(),发现B类重写了A类中的方法,所以调用B类的a1(),这个时候b还没有被构造函数赋值,所以是默认的值。

    1.3.4. 第四种情况

    new B().a1();

    输出结果:

    B a1():0

    B a1()

    B a1():100

    B a1()

    因为B类继承a类,所以先去实例化父类A类,但是实例化A类的时候调用a1(),发现B类重写了A类中的方法,所以调用B类的a1()方法,实例化B对象实例的时候,构造方法已经初始化为100,所以第二次输出有值。

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519)

    展开全文
  • java 利用反射实例化类对象

    千次阅读 2014-10-04 10:06:22
    * java 使用反射实例化一个类对象 * 第一种方式:创建类类对象,调用类类对象的newInatance方法获取要实例化的类的对象,然后调用对象的setter方法设置属性。 * 第二种方式:使用类类对象的getConatructor方法...
    package com.zhiru;
    
    /*
     * java 使用反射实例化一个类对象
     * 第一种方式:创建类类对象,调用类类对象的newInatance方法获取要实例化的类的对象,然后调用对象的setter方法设置属性。
     * 第二种方式:使用类类对象的getConatructor方法构造Constructor类对象,然后用构造器类对象调用newIntance方法创建要实例化的类F对象。
     */
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    
    class Person {
    	private String name;
    	private int age;
    
    	public Person() {
    		super();
    	}
    
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    
    	public String toString() {
    		return "name:" + name + "---age:" + age;
    	}
    }
    
    public class BuildObject {
    
    	public static void main(String[] args) throws InstantiationException,
    			IllegalAccessException, NoSuchMethodException, SecurityException,
    			IllegalArgumentException, InvocationTargetException {
    		// TODO Auto-generated method stub
    		// 获取Class类对象
    		Class<Person> cls = Person.class;
    		// 调用newInstance方法创建Person类对象
    		Person p = cls.newInstance();
    		System.out.println(p);
    		// 使用构造器类创建Person类对象
    		Constructor<Person> con = cls.getConstructor(String.class, int.class);
    		Person person = con.newInstance("lili", 12);
    		System.out.println(person);
    	}
    
    }/*
     * name:null---age:0 name:lili---age:12
     */
    

    展开全文
  • 对于初学JAVA的人总搞清楚对象是如何实例化的,假如之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象实例化过程。编译并运行该程序会有以下输出StaticBlockEmployeeCompany:chinasoftNon-...

    学习JAVA这门面向对象的语言,实质就是不断地创建类,并把类实例化为对象并调用方法。对于初学JAVA的人总搞清楚对象是如何实例化的,假如类之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象的实例化过程。

    58e3db6536d777daabc1ea57d74eb517.gif

    编译并运行该程序会有以下输出 Static Block Employee Company:china soft Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() 下面我们来对结果做分析: 1 在代码34行实例化对象时, 先对给静态变量分配内存空间并初始化,然后执行静态块。 因此,在这里会输出: Static Block Employee Company:china soft Employee Company:china soft的输出也说明是先初始化静态变量然后再执行静态块,否则company将为null。 2然后在内存中为Employee分配内存空间,并做默认初始化(即所有变量初始化为默认值,这里都初始化为null)。 3 默认初始化完成后,开始显示初始化。即执行第5行,将phone初始化"0755-51595599",并且执行非静态方法块;因此在这里会有以下输出: Non-Static Block Employee phone:0755-51595599 4 最后才调用默认构造函数,在默认构造函数中调用了带参数的构造函数,所以在这里先输出带参数构造函数中的:Employee(String),然后才输出:Empoloyee()。

    例2:

    84f4c89451cb82c57aa6c2191dde701d.gif

    上面的代码中Manager继承了前面写的Employee类,当我们编译并运行Manager类,会产生以下的输出:

    Static Block Employee Company:china soft Sub Static Block Manager department:sale Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() Sub Non-Static Block Manager salary:8000 Manager(String) Manager() 下面我们对结果做分析: 1 在行34实例化对象时,由于Manager继承了Employee,所以先从父类Employee开始;先给父类静态变量分配内存空间并初始化,然后执行父类静态块。然后再给子类静态变量分配内存空间并初始化,然后执行子类静态块,所以会得到以下输出: Static Block Employee Company:china soft Sub Static Block Manager department:sale

    2然后在内存中为父类Employee分配内存空间,并做默认初始化;再为子类Manager分配内存空间,并做默认初始化。 3默认初始化完成后,从父类开始显示初始化并执行非静态方法块和构造函数,然后再子类开始显示初始化并执行非静态方法块和构造函数。因此会产生以下的输出: Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() Sub Non-Static Block Manager salary:8000 Manager(String) Manager()

    总结以上内容,可以得到对象初始化过程:

    1、 如果存在继承关系,就先父类后子类;

    2 、如果在类内有静态变量和静态块,就先静态后非静态,最后才是构造函数;

    3 、继承关系中,必须要父类初始化完成后,才初始化子类。

    展开全文
  • JAVA类,只要知道了类名(全名)就可以创建其实例对象,通用的方法是直接使用该提供的构造方法,如NewObject o = new NewObject();NewObject o = new NewObject("test");NewObject o = new NewObject(new String[]{...

    JAVA类,只要知道了类名(全名)就可以创建其实例对象,通用的方法是直接使用该类提供的构造方法,如

    NewObject o = new NewObject();

    NewObject o = new NewObject("test");

    NewObject o = new NewObject(new String[]{"aaa","bbb"});

    除此之外,还可以利用java.lang.Class类来实现JAVA类的实例化。

    1、空构造方法

    如果类有空构造方法,如下面的类

    public class NewObject

    {

    String name;

    public NewObject(String[] name)

    {

    this.name = name[0];

    System.out.println(“ the object is created!”);

    }

    public void write()

    {

    System.out.println(this.name);

    }

    }

    使用以下代码可实现实例化:

    NewObject no = null;

    try

    {

    no = (NewObject)Class.forName(className).newInstance();

    no.write();

    }

    catch (InstantiationException e)

    {

    e.printStackTrace();

    }

    catch (IllegalAccessException e)

    {

    e.printStackTrace();

    }

    catch (ClassNotFoundException e)

    {

    e.printStackTrace();

    }

    2、带参数构造方法

    public class NewObject

    {

    String name;

    public NewObject()

    {

    System.out.println(“ the object is created!”);

    }

    public void write()

    {

    System.out.println(“”);

    }

    }

    使用以下代码可实现实例化:

    try

    {

    no = (NewObject)Class.forName(className).getConstructor(String.class).newInstance(names);

    //no = (NewObject)Class.forName(className).getConstructor(new Object[]{String.class}).newInstance(names);   }

    catch (IllegalArgumentException e)

    {

    e.printStackTrace();

    }

    catch (SecurityException e)

    {

    e.printStackTrace();

    }

    catch (InstantiationException e)

    {

    e.printStackTrace();

    }

    catch (IllegalAccessException e)

    {

    e.printStackTrace();

    }

    catch (InvocationTargetException e)

    {

    e.printStackTrace();

    }

    catch (NoSuchMethodException e)

    {

    e.printStackTrace();

    }

    catch (ClassNotFoundException e)

    {

    e.printStackTrace();

    }

    3、带数组参数构造方法

    public class NewObject

    {

    String name;

    public NewObject(String name)

    {

    this.name = name;

    System.out.println(“ the object is created!”);

    }

    public void write()

    {

    System.out.println(this.name);

    }

    }

    使用以下代码可实现实例化:

    try

    {

    Constructor[] cs;

    cs = Class.forName(className).getConstructors();

    Constructor cc = Class.forName(className).getConstructor(String[].class);

    no = (NewObject)cc.newInstance(new Object[]{names});   }

    catch (SecurityException e)

    {

    e.printStackTrace();

    }

    catch (ClassNotFoundException e)

    {

    e.printStackTrace();

    }

    catch (NoSuchMethodException e)

    {

    e.printStackTrace();

    }

    catch (IllegalArgumentException e)

    {

    e.printStackTrace();

    }

    catch (InstantiationException e)

    {

    e.printStackTrace();

    }

    catch (IllegalAccessException e)

    {

    e.printStackTrace();

    }

    catch (InvocationTargetException e)

    {

    e.printStackTrace();

    }

    展开全文
  • 这里一共整理了四种方法①用的new ()创建②用clone方法创建, 需要实现 Cloneable 接口③通过反射机制创建④将一个对象实例化后,进行序列化,再反序列化下面是实现代码1)用的new ()创建User user = new User...
  • Java 实例化类的方法

    2014-08-19 11:49:05
    Java 实例化类的方法  Java中,类的实例化方法有四种途径: 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列...
  • java实例化一个抽象对象

    千次阅读 2019-07-16 16:23:09
    不对啊,根据我的知识一个抽象不能直接实例化一个对象出来,面向对象期末考试的卷子还有专门一道让你改错的题,一般抽象直接实例化对象都是每年必考的错误点。那这个对象从哪实例化,国家分配的吗?先不管,结果...
  • java反射实例化对象

    千次阅读 2018-06-08 13:43:41
    -Class类Java中手动创建的每一个类,在编译后JVM都会为其创建一个Class类对象,在这个Class类对象中保存了所建类的信息。可通过Class类提供的方法为一个类实例化对象,区别与new关键字创建对象,前者是在类已经编译...
  • java实例化对象的过程

    2018-01-29 09:24:58
    对于初学JAVA的人总搞清楚对象是如何实例化的,假如之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象实例化过程。    编译并运行该程序会有以下输出 Static Block ...
  • 参见英文答案 > How to set the generic type of an ...4个如何实例化Java泛型对象,该对象仅接受或参数给出的类型参数宾语?例如:通常,可以使用以下语法实例化Integer对象的ArrayList:ArrayList foo = ...
  • 您的代码中没有Sample.您声明的是私有方法.// private method which takes an int as parameter and returns another intprivate int Sample(int c...}使用当前代码段,您需要实例化Testing并使用Sample方法.请注...
  • 实例化就是new 方法创建对象出来。 比如说 "人"是一个 人 隔壁老王= new 人(); 张三就是“人”的一个对象,他有“人”的属性和方法。创建对象这个过程就叫做实例化。 ...
  • java实例化对象(多态)详解: 多态前提: 之间存在继承或实现关系 需求: 验证Animal与Dog继承关系中的出现的四种的实例化对象表达方式不同之处 (1) Animal a1=new Animal(); (2) Dog d1=new Dog(); (3) ...
  • JAVA实例化对象举例,重载举例 package JAVA_Project_01_02; class Sub{ //内部 final String subName = "helloworld"; //声明常量并且赋值 final do...
  • 本博文主要讲诉Java类的实例化方法 Java类的实例化方法:   使用new操作符 调用Class对象的newInstance()方法 调用clone()方法,对现有实例的拷贝 通过ObjectInputStream的readObject()方法反序列化类 实例: ...
  • Java中子中子类实例化父类对象

    千次阅读 2019-05-03 18:08:39
    版权声明:博主原创/资料整理,转载请注明出处!! 写一个父类,里面有两个方法,doing ()和talking(),并在doing ()方法中调用talking()方法。...3. 子类中,子类实例化子类对象,调用子类中的方法。
  • Java实例化对象的几种方式

    万次阅读 2017-10-12 11:28:36
    Java中创建(实例化对象的五种方式 1、用new语句创建对象,这是最常见的创建对象的方法。 2、通过工厂方法返回对象,如:String str = String.valueOf(23);  3、运用反射手段,调用java.lang.Class或者java....
  • Java实例化类的几种方法

    千次阅读 2018-01-12 14:45:40
    最近在做一个基于Spring boot的后台管理...1. 用new 关键字直接实例化一个对象 ExampleClass example = new ExampleClass ();2.用Java内部的反射机制 Object example = Class.forName("完整的路径").newInstance();
  • 深入理解Java对象的创建过程:的初始化与实例化

    万次阅读 多人点赞 2017-05-18 14:17:45
    Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。...本文试图对JVM执行初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java对象的创建过程。
  • JavaFX中实例化Java类对象

    千次阅读 2009-10-15 21:45:00
    如果Java类对象拥有不带参数的构造函数,那么可以在JavaFX代码里直接实例化:var var1 = ArrayList{}; 如果目标Java类只有带参数的构造函数就有些麻烦,需要分2步进行,首先新建一个Java工具类JavaUtils.java,在这...
  • 这里只考虑在一个的情况下初始化和对象实例化的顺序,不考虑有父类的情况下。 看下面这段代码: package com.huang.jvm; /** * @author hsz */ public class Demo { int a = print(3); public Demo() { ...
  • java内部类实例化对象

    千次阅读 多人点赞 2016-10-13 10:04:14
    //在内部(Inner Class),可以随意的访问外部的成员, //这可让我们更好地组织管理我们的代码,增强代码的可读性 Person p = new Person(); Person s = p.new Student(); Person w = p.new Worker();...
  • Java类对象实例化过程 简单类对象实例化过程 示例代码: public class Person{ public Person(){ } int age = 1; String name = "zhangsan"; int sex = 0 ; public void showInfo(){ System.out.print...
  • Java中,类的实例化方法有四种途径: 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列化类 1.ClassInstance....
  • 及 a 只能指向 new Single()这个对62616964757a686964616fe59b9ee7ad9431333335306333象第二: static修饰属性,该属性就和对象脱离的关系,不在依赖对象,只和有关系。所以 public static Single a = new Si...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,326
精华内容 10,930
关键字:

java实例化类对象

java 订阅