相关疑难解决方法(0)

为什么java中的构造函数没有返回类型?

可能重复:
为什么构造函数不返回值

为什么构造函数不具有返回类型,甚至无效?这是什么原因?

java constructor return-type

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

Java:构造函数如何返回值?

$ cat Const.java 
public class Const {
    String Const(String hello) {
        return hello; 
 }
 public static void main(String[] args) {
     System.out.println(new Const("Hello!"));
 }
}
$ javac Const.java 
Const.java:7: cannot find symbol
symbol  : constructor Const(java.lang.String)
location: class Const
  System.out.println(new Const("Hello!"));
                     ^
1 error
Run Code Online (Sandbox Code Playgroud)

java constructor return-value

16
推荐指数
4
解决办法
8万
查看次数

为什么我使用此ArrayList获取NullPointerException?

当我向这个ArrayList添加一个对象时,我的resize方法给了我一个NullPointerException.列表初始化为1,第一个元素添加到数组中的0位.

这是我的arrayList AKA DynamicArray

//Implementation of a dynamic array
// Add remove methods


public class DynamicArray {
    private Object[] data;
    private int size;

public void DynamicArray(){
    data = new Object[1];
    size = 0;
}

public int size(){return size;}

public Object get(int index){return data[index];};

private void resizeIfFull()
{
    if (size < data.length){
        return;
        } else {
            Object[] bigger = new Object[2 * data.length];
            for (int i = 0; i < data.length; i++){
                bigger[i] = data[i];
                data = bigger;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
2
解决办法
106
查看次数

为什么即使我的抽象类有受保护的构造函数,也会创建默认构造函数?

我有一个MousableActor扩展具体类的抽象类Actor:

public abstract class MousableActor extends Actor
{   
    /**
     * Constructs a MousableActor.
     */
    protected void MousableActor()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

当我查看为该类生成的javadoc时,我看到一个公共的无参数构造函数: 在文中描述

根据JLS第8.8.9节:

如果类不包含构造函数声明,则隐式声明没有形式参数且没有throws子句的默认构造函数.

我一直认为这是一个if-and-only-if.为什么即使我显式声明了受保护的构造函数,也会创建公共默认构造函数?它是否与具有公共no-args构造函数的超类有关

我在Java 1.8.0之上使用Greenfoot版本2.4.2(这应该不重要).

java constructor default-constructor

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

java从另一个类的构造函数创建一个类的实例

我有两个班,Game和ScoreBoard.我希望在创建Game实例时自动生成ScoreBoard实例.

ScoreBoard构造函数如下所示:

public void ScoreBoard(String player1, String player2)
{
    p1Name = player1;
    p2Name = player2;
    p1Score = 0;
    p2Score = 0;
}
Run Code Online (Sandbox Code Playgroud)

并且Game类的构造函数如下所示:

public Game()
{ 
  //irrelevant code redacted 
  ScoreBoard scores = new ScoreBoard(p1, p2);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,我收到以下消息:

找不到符号 - 构造函数ScoreBoard(java.lang.String,java.lang.String)

java

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

Java - 调用超类的构造函数失败

这是我设置的基本课程,用于计算股票收益.关注这里的"股票"构造函数:

public class Stock{
    private String symbol;
    private int totalShares;
    private double totalCost;

    public void Stock(String symbol){
        this.symbol = symbol;
        totalShares = 0;
        totalCost = 0.0;
    }

    public double getProfit(double currentPrice){
        double marketValue = totalShares * currentPrice;
        return marketValue - totalCost;
    }

    public void purchase(int shares, double pricePerShare){
        totalShares += shares;
        totalCost += shares*pricePerShare;
    }

    public int getTotalShares(){
        return totalShares;
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为DividendStock的子类,它应该计算股息收益.

public class DividendStock extends Stock{
    private double dividends;

    public DividendStock(String symbol){
        super(symbol);
        dividends = 0.0;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java constructor subclass superclass

-2
推荐指数
1
解决办法
48
查看次数