java中,除了可以用构造方法创造对象之外,用 类名.方法名() 的方式,也可以创造对象吗?
发布网友
发布时间:2022-04-13 03:30
我来回答
共4个回答
热心网友
时间:2022-04-13 04:59
从原理上来讲,当一个方法的返回值是一个对象的时候,那调用这个方法就可以得到一个类了。
看下面一段代码(只是介绍原理,没有特指实际应用)
假设我有两个类,一个叫做A, 一个叫做B。
在B里面有一个方法
public A getA(){
return new A();
}
方法的返回值是A类,这样,
B b = new B();
A a = b.getA();//没有用new A()得到A了
在实际应用中会有很多这样子的例子,比如楼上两位说的单例也是其中之一,这里我给出一个单例的代码(这是比较简单的一种)
3 public class Singleton {
4
5 private static Singleton instance = null;
6
7 private Singleton() {
8 }
9
10 public static Singleton getInstance() {
11 if (instance == null) {
12 instance = new Singleton();
13 }
14 return instance;
15 }
16 }
另外再提一下,类名.方法名()得到的一个类,实际上也是在调用new。
在java中除了new之外,还可以运用反射机制来得到一个类。(简单的说,就是通过得到类的名字,返回一个类的实例)
如有兴趣,可以 java反射得到相关资料
热心网友
时间:2022-04-13 06:17
创造对象只有在new关键字之后才能创造。在静态类中,调用类名.方法名() ,不会有新的对象出现。
热心网友
时间:2022-04-13 07:52
你说的第一种 都属于 用new关键字来创建
用方法也行 class里面有个getInstance()的方法 ,也可以得到对象
但是要先拿到他的class
热心网友
时间:2022-04-13 09:43
这个单例模式把,完全可以,构造方法私有化,然后提供一个静态的方法返回对象,以后得到的对象就完全是一个了!
JAVA创建对象的方式?
我们也可以使用Class类的newInstance方法创建对象。这个newInstance方法调用无参的构造函数创建对象。我们可以通过下面方式调用newInstance方法创建对象:spanstyle="color:#ff0000;"Employeeemp2=(Employee)Class.forName("org.programming.mitra.exercises.Employee").newInstance();/span 3.使用反序列化 当我们序...
JAVA创建对象有哪几种方式 ???
1.用new语句创建对象,这是最常用的创建对象的方式。2.运用反射手段,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法.下面演示了用前面3种方式创建对象的过程。以上程...
java的结构是什么(java的基本构成是什么)
方法是对象的行为。构造方法用于实例化对象。 4.方法重载: 1)方法重载的原则:函数名相同,参数类型不同,参数个数不同,参数顺序不同,在同一作用域。 2)方法重载跟方法的返回值类型没有关系,只有返回值不同的方法不能构成重载。 5.方法的调用:类名.方法 6.对象的创建:假设存在一个类Person,创建对象语句为Person...
请从JAVA课本知识角度回答。小弟是要考试用的,老师只给了这个材料!希望...
首先,抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。其次,在抽象类的定义中,我们可以赋予方法的默认行为。使用抽象类来定义允许多个实现的类型,比使用接口有一个明显的优势:抽象类的演化比接口的演化要容易的多。在后续的发行版中,如果希望在抽象类中增加一个方法,只增加一个默认的合理的实...
java 中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可 ...
1.首先你要搞清楚java里new这个关键字,new说的是要调用构造方法,分配内存空间,创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造...
java有时候可以不用创建对象吗? 什么情况下?为什么?
通常情况下不可以,类与类之间的依赖(也就是相互调用,形成关系)就是通过实例(即创建对象)与实例来联系的。不创建对象,关系就无法形成,那便无法调用类。但是静态类、静态方法可以不创建对象直接调用,但是楼主应该明白所为“静态”的含义吧?静态类有它的使用范围,不能滥用 ...
1. 对于构造方法,下列叙述不正确的是( )。 A、 构造方法是类的一种特 ...
1. 对于构造方法,下列叙述不正确的是( )。 A、 构造方法是类的一种特殊方法,它的方法名必须与类名相同。 B、 构造方法的返回类型只能是void型。 C、 构造方法的主要作用是完成对类的对象的初始化工作。 D、 一般在创建新对象时,系统会自动调用构... 展开 h...
Java中面向对象三大特征
2.方法: 公开或私有public/private 3.方法声明 --> 公开 方法实现 --> 隐藏 实现改变时,对对象的使用者没有影响。二、继承 共性放到父类,特性放到子类;子类,父类 --> 其实就是特殊 --> 一般 1.关键字: extends 例如:Dog extends Animal{} 2.java中一个类最多只能有一个直接的父类...
JAVA 中 类的构造方法和成员方法 到底有什么不同,分别起什么作用,麻 ...
构造方法: 类名(参数列表){} 一般写在成员变量的下面,没有返回类型,没有返回值是格式。作用是:通过关键字new,创建类的一个实例,并初始化对象(比如初始化成员变量,就是在这个对象的准备工作)调用: 类名 对象名 = new 构造方法(参数列表);成员方法: 返回类型 方法名(参数类表){} 是从...
Java语言中,构造方法和一般方法有何不同
方法最好与类名不同,对象调用,静态方法可用类名.方法().构造器和方法在下面三个方面区别:修饰符,返回值,命名。 1。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, nativ...