相关疑难解决方法(0)

在构造函数中使用synchronized块有什么用?

我们不能创建构造函数synchronized但可以synchronized在构造函数中编写它.在什么情况下这样的要求会来?我很开心.

package com.simple;
public class Test {
    public Test() {
        synchronized (this) {
            System.out.println("I am called ...");
        }
    }

    public static void main(String[] args) {
        Test test=new Test();   
        System.out.println(""+test);
    }

    @Override
    public String toString() {
        return "Test []";
    }
}
Run Code Online (Sandbox Code Playgroud)

java synchronization

8
推荐指数
2
解决办法
2915
查看次数

如何访问构造函数?

我一直不明白为什么我们能够从其他类调用一个类的构造函数。构造函数是一种方法,通常在尝试从类中调用方法时,我们必须将该方法设为静态,以便我们可以访问它

MyClass.method();
Run Code Online (Sandbox Code Playgroud)

或者我们会创建该类的一个实例,然后调用该方法(现在显然这个方法会与这个问题的前提相矛盾)

MyClass myClass = new MyClass();
myClass.method();
Run Code Online (Sandbox Code Playgroud)

但是在构造函数的情况下,我们两者都不做。Java 如何在不执行这些方法的情况下调用类的构造函数?我知道类的构造函数必须对您从中调用它的类可见,即如果您正在调用的类构造函数位于不同的包中,则必须导入该包。

那么,Java 如何处理调用构造函数,以便能够在不使用上述方法的情况下调用它们呢?

java

5
推荐指数
1
解决办法
82
查看次数

这是一个类,构造函数还是方法?

我无法确定究竟是什么.此时,我熟悉方法,构造函数和类声明的外观.这是什么?为什么它看起来像构造函数和方法有一个婴儿?

public Polygon polygonFrom(Point[] corners) {  
// method body goes here
}
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
325
查看次数

Java:为什么我不能在main之外调用这个方法?

作为一个初学者,我想知道为什么我的caller.VelocityC唯一作品放在主要区块内?

当我有这样的代码时,我无法调用该方法.

方法调用类:

public class Velocity2 {

VelocityCounter caller = new VelocityCounter();
caller.VelocityC(6, 3);
}
Run Code Online (Sandbox Code Playgroud)

包含方法的类:

public class VelocityCounter {  
void VelocityC(int s, int v){
    System.out.print(s/v);
  }
}
Run Code Online (Sandbox Code Playgroud)

java methods program-entry-point object

1
推荐指数
1
解决办法
836
查看次数

我们可以说构造函数是Java中的方法吗?

我们知道Java是一种面向对象的语言.一切都是Java中的对象.我们也知道对象有一些东西(实例变量/字段)和做某事(方法).我们使用方法更改实例变量的状态是安全的,即; 二传手和吸气鬼.所以在构造函数中我们初始化实例变量.换句话说,构造函数正在为对象做一些事情.因此,假设构造函数是一种实用方法,就像设置值的setter一样,这是不正确的?区别在于setter甚至我们有返回类型void,在构造函数中我们没有任何返回类型.并且可以在对象上调用setter任意次数,但可以在对象的生命周期中调用构造函数一次.

java

-4
推荐指数
1
解决办法
517
查看次数