一、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()方法。

二.实例说明:

 创建 Fruit(水果)实体类 

package com.shine.demo.object;

import java.io.Serializable;

@SuppressWarnings("serial")
public class Fruit implements Serializable, Comparable<Fruit>{ /**
* id.
*/
private Long id; /**
* 名称.
*/
private String name; /**
* 价格.
*/
private Double price; public Fruit() {
super();
} public Fruit(Long id, String name, Double price) {
super();
this.id = id;
this.name = name;
this.price = price;
} public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Double getPrice() {
return price;
} public void setPrice(Double price) {
this.price = price;
} @Override
public String toString() {
return "id为:" + this.getId() + ",的:"+ this.getName() +"的价格为:"+this.getPrice();
} @Override
public int compareTo(Fruit otherFruit) { if(!(this.id.equals(otherFruit.id)))
return this.id.compareTo(otherFruit.id);
else if(!(this.name.equals(otherFruit.name)))
return this.name.compareTo(otherFruit.name);
else if(this.price.equals(otherFruit.price))
return this.price.compareTo(otherFruit.price); return 0;
} @Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((price == null) ? 0 : price.hashCode());
return result;
} @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Fruit))
return false; Fruit other = (Fruit) obj; return this.id.equals(other.id) && this.name.equals(other.name) && this.price.equals(other.price);
} }

测试说明 : 下面主要对1/3方式进行说明

package com.shine.demo.object;

public class ObjOpen {

	public static void main(String[] args) {

		/**方法一 : new语句直接创建对象 */
Fruit fruit = new Fruit(1L,"苹果",4.3);
System.out.println(fruit.toString()); /**方法三 :运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
* 如:Object obj = Class.forName("java.lang.Object").newInstance();
**/
try {
Fruit fruit2 = (Fruit) Class.forName("com.shine.demo.object.Fruit").newInstance();
fruit2.setId(2L);
fruit2.setName("香蕉");
fruit2.setPrice(2.6);
System.out.println(fruit2);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} } }

三、结果:  

 

最新文章

  1. 参考__JS
  2. 如何在ubuntu里面关掉后台的meteor
  3. android 判断字符串是否为空与比对[&quot;==&quot;与equals()的区别]
  4. 国家电力项目SSH搭建
  5. hiho #1372:平方求 (bfs)
  6. Android概述
  7. (easy)LeetCode 228.Summary Ranges
  8. 华为OJ平台——统计字符串中的大写字母
  9. 1021 玛丽卡 - Wikioi
  10. 用VBA宏从一个工作薄复制内容到另一个工作薄
  11. Dede推荐文章与热点文章不显示?
  12. iOS开发中在UIWebView中添加Gif动态图
  13. .Net程序员学用Oracle系列(12):增删改查
  14. PHP站内搜索
  15. 自动化测试工具selenium的使用
  16. Java 中的锁机制
  17. Zabbix4.2.0使用Python连接企业微信报警
  18. python命令行解析模块--argparse
  19. jq 在字符串中,去掉指定的元素
  20. ASP.NET Web API接受AngualrJS的QueryString的两种方式

热门文章

  1. lua学习例子
  2. Yii应用的目录结构和入口脚本
  3. SQLPROMPT5.3对各种加密对象的解密测试
  4. [Maven] 变态问题收集
  5. 深入理解javascript原型和闭包(17)——补this
  6. 守护进程demon.c
  7. PHP连接mysql数据库,并将取出的数据以json的格式输出
  8. 简单介绍一下python Queue中常用的方法
  9. PE440
  10. nodejs开发指南demo