Java 字符串返回 null

2024-01-07

我试图让一个类从另一个类返回一个字符串,尽管我得到的返回值为空。我有一个 set 方法,可以在原始类中设置字符串,但是当在第二个类中调用该方法时,我得到 null 返回。

这是第一堂课;

public class IceCream
{
    // instance variables - replace the example below with your own
    private String flavour;
    public static double price;


    /**
     * Constructor for objects of class IceCream
     */
    public IceCream()
    {
        // initialise instance variables
        String flavour = getFlavour();
        price = 0.50;

    }

    /**
     * Gets price in pence.
     * 
     * 
     * @returns the price of the ice cream.
     */
    public static double getPrice()
    {
        // put your code here
        return price;
    }

    public int getScoops()
    {
        return scoop;
    }

public void setPrice(int newPrice)
{
    price = newPrice;
}

public void setScoops(int scoopNumber)
{
    scoop = scoopNumber;
}

public double totalCost()
{
    double cost;
    cost = scoop * price;
    return cost;

}

public String getFlavour()
{
  return flavour; 
}

public void setFlavour(String whatFlavour)
{
    flavour = whatFlavour;
}

}

第二个类,我尝试在 sundaeDetails 方法的 println 中调用我在 setFlavour 方法中输入的字符串。

import java.util.ArrayList;
/**
 * Write a description of class Sundae here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Sundae
{
    // instance variables - replace the example below with your own
    private IceCream flavour;
    private Topping SundaeTopping;
    private int scoops;


    /**
     * Constructor for objects of class Sundae
     */
    public Sundae()
   {
     flavour = new IceCream();
     SundaeTopping = new Topping();
     scoops = 0;
   }
   /**
    * Set scoop number.
    */

    public void setScoops(int scoopNumber)
   {
    scoops = scoopNumber;
   }
   /**
    * Return scoop variable.
    */
   public int getScoops()
   {
       return scoops;
   }
   /**
    * Get the price of the sundae.
    */ 
   public void getPrice()
   {
        double cost;
        double scoopPrice = scoops * IceCream.getPrice();
        if ( scoops > 0) {
            cost = scoopPrice * Topping.getToppingPrice();
            System.out.println("Cost of Sundae: " + cost);
         }
        else {
        System.out.println("Need to have a scoop of ice cream in your Sundae.");
    }
    }

    /**
     * Return the details of the sundae; price, flavour, scoops etc.
     */
   public void sundaeDetails()
   {
       System.out.println("You have " + scoops + " scoops of " + flavour.getFlavour() + "ice cream");
   }
}

在 IceCream 类构造函数中,您有:

String flavour = getFlavour()

您创建了一个局部变量,而不是对实例属性的引用。 getFlavour() 方法返回您从未设置的属性实例,因此它为 null。你应该在构造函数中有这样的东西:

this.flavour = "default value";

或者在构造函数头设置一个风味参数:

public IceCream(String flavour) {
    this.flavour = flavour;
    (...)
}

并称其为:

IceCream chocolat = new IceCream(" chocolat");

如果您想改变口味,请使用设置器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 字符串返回 null 的相关文章

  • 如何从球衣服务端点发送实体列表?

    我正在从球衣服务器发送实体列表 在客户端 我试图获取这些实体列表 但它给了元帅例外 为什么它在元素名末尾添加 s 即 emps 而不是 emp XmlRootElement public class Emp Server side code
  • Jboss EAP 7 - 如何从部署中排除隐式模块(javax.jms)?

    我没想到我会来到这里 但经过大量 Google 和 StackOverflow 搜索后 我来到了这里 这就是我的确切问题 https www linkedin com pulse tale two jars marco antonio al
  • 如何确定 JDialog 显示在哪个屏幕上

    我有一个非常大的应用程序 有多个对话框 我的任务是确保不完全可见的对话框 因为用户将其从可见屏幕区域拉出 移回屏幕中心 当我只处理一个屏幕时 这没问题 它工作得很好 但是 该应用程序的大多数用户的桌面上都有两个屏幕 当我尝试找出对话框显示在
  • TableModel setCellEditable 并自动将值设置回 false

    我目前正在尝试在 JTable 中实现 JPopupMenu 它允许解锁单元格以进行编辑 Override public void actionPerformed ActionEvent e if e getActionCommand Un
  • 竞争条件和 Clojure Atoms

    clojure atom 的文档指出 Changes to atoms are always free of race conditions 然而 竞争条件不仅是根据更改定义的 而且是在不同线程中并行逻辑操作的上下文中定义的 我想知道 保证
  • .Net Core 中 String 默认不可序列化吗?

    我正在查看其他的 Fortify 静态分析安全测试 SAST 扫描报告 以识别和抑制误报 应用程序框架是C NET Core SAST 报告部分内容如下 Method1 在第 111 行将不可序列化的对象存储为 HttpSessionSta
  • org.apache.poi 中的异常

    我试图编写一个可以读取和写入的程序 xlsx文件中 下面提供的代码旨在能够编写其第一个 Excel 程序 package excel reader import java io FileOutputStream import java io
  • 更改JavaFX TableView字体大小[重复]

    这个问题在这里已经有答案了 您好 我想在表视图列内的文本上设置字体 我如何用 Java 做到这一点 这是我的代码 感谢帮助 private final TableView
  • 为什么我无法使用 HttpUrlConnection 上传第一个文件块?

    在我的项目中 我应该从一台服务器逐块下载文件 并将每个块立即上传到另一台服务器 我有一个应该下载的文件的 URL 我们就这样称呼它吧downloadUrl 因此 这就是我逐块下载文件的方式 val chunkSize 1024 1024 B
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • 在大文件中查找重复字符串

    一个文件包含大量 例如100亿 字符串 您需要查找重复的字符串 您有 N 个可用系统 您将如何找到重复项 埃里克森的答案可能是提出这个问题的人所期望的 您可以将 N 台机器中的每台机器用作哈希表中的一个存储桶 对于每个字符串 按顺序说出字符
  • 如何预先填充 JFileChooser 将“文件名”?

    我打算用数据库中的名称填充 JFileChooser 但使用标准 JFileChooser 对话框进行加载 删除 保存和另存为 我想给用户留下这样的印象 他们正在处理文件系统 而在后端使用数据库来保存更改 用户不应该能够浏览到不同的目录进行
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么找不到 getservletcontext?

    我正在尝试使用getServletContext getRealPath 但我不断收到此错误 cannot find symbol symbol method getServletContext location interface jav
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 不鼓励在Web应用程序中使用线程吗?

    我们与同事就在 Java 的 Web 应用程序中使用线程进行了激烈的讨论 他们的观点是 不建议在 Java Web 应用程序中使用线程 因为它们不受容器管理 一般来说 我对此表示同意 因为线程可能会干扰容器 但是 如果它不是 Java EE
  • 如何使用 iBatis (myBatis) 的注释进行 IN 查询?

    我们只想在 MyBatis 中使用注释 我们确实在努力避免使用 xml 我们尝试使用 IN 子句 Select SELECT FROM blog WHERE id IN ids List
  • Spring - 使用存储过程时使用 simplejdbccall 进行批量更新

    我正在使用 spring jdbc 模板 使用存储过程创建记录 public Long create City obj SimpleJdbcCall jdbcCall new SimpleJdbcCall getJdbcTemplate g
  • 使用 Javascript 删除字符串的最后一个字符

    我有一个DIV与一些字符 如何在每次单击时删除文本中的最后一个字符DIV itself 删除第一个字符 div on click function this text function index text return text repl

随机推荐

  • 在 SQL Server 中加密/在 .Net 4 中解密

    我知道这可能是这个问题的重复 如何在 sql server 中加密数据并在 net 应用程序中解密 https stackoverflow com questions 3202011 how to encrypt data in sql s
  • 可以在不播放动画的情况下加载 gif 动画吗?

    我想知道是否有一种方法可以阻止浏览器实际对加载到 a 中的动画 gif 进行动画处理 img 标签 我只想让它显示 gif 的第一帧而不播放动画 我已经担心这是不可能的 我必须提取第一帧并将其渲染到画布上 这是一个有点昂贵的解决方案 但如果
  • 在 python 中加载预训练的手套向量

    我已经从互联网下载了预训练的手套矢量文件 它是一个 txt 文件 我无法加载和访问它 使用 gensim 加载和访问词向量二进制文件很容易 但我不知道当它是文本文件格式时该怎么做 手套模型文件采用词向量格式 您可以打开文本文件来验证这一点
  • 将 iTunes 中的图像同步到 iPhone 模拟器

    我想知道如何将 iTunes 中的图像同步到 iPhone 模拟器 这对我的 iOS4 有效 在模拟器上 单击 主页 然后单击 照片 图标 将图像从 Mac 拖到模拟器屏幕上 然后按照上面的说明操作 按住鼠标单击图像 直到弹出窗口出现 选择
  • 如何在运行时动态地将值传递给 ObjectDataProvider.MethodParameters

    我写了这段代码 public class CustomData public int F1 get set public int F2 get set public string F3 get set public class Retrie
  • 寻找用 AS3 编写的 CSS 解析器

    我需要在我的 Flex 应用程序中运行时加载并应用 CSS https stackoverflow com questions 204924 how do you dynamically load a css file into a fle
  • 为什么我在 Google Calendar API 中收到 (401) 未经授权的错误

    我一直在使用 Google Calendar API 但遇到了一些问题 当我在下面调用它时删除日历事件它在第一次通过时效果很好 通常在第二次时效果很好 然而 在我第二次或第三次调用这个方法时 我得到了一个 401 未经授权的错误 它每次都使
  • 打印文件中从匹配行到文件末尾的行

    我编写了以下 awk 来打印从匹配行到 EOF 的行 awk match line file 我怎样才能在 sed 中做同样的事情 sed n matched p file awk matched 0 file
  • 使用和不使用数组解码不同类型

    我正在尝试按如下方式解码错误 我正在以数组格式处理的大部分错误 String 但在少数情况下 错误不是数组格式 而是一个String 如果数组格式出现错误 名称为errors 但如果是字符串格式则为error 我该如何处理这种情况 我怎样才
  • Apache mod_rewrite 已启用,但不工作

    第二天与使用 mod rewrite 的问题作斗争 系统操作系统 Windows XP HTTP 服务器 Apache 2 2 httpd httpd conf 中的几个相关行 LoadModule rewrite module modul
  • Xcode 9 的安全区

    在探索的同时Xcode9 测试版 Found 安全区在界面构建器上查看层次结构查看器 文档要点是 我很好奇并试图了解苹果文档中的安全区域 与自动布局直接交互的视图区域 但这并没有让我满意 我想知道这个新东西的实际用途 有人知道吗 Apple
  • UITableView 中的自定义单元格在滑动编辑后立即移动

    我只想要一个简单的 UITableView 能够向左滑动删除 一切正常 除了我的原型单元中文本视图的正确约束似乎在滑动删除后发生了变化 这是我的表代码 func tableView tableView UITableView cellFor
  • 触摸表视图单元格后的第一个方法 didSelectRowAtIndexPath 或prepareforSegue?

    我根据其类型设计了不同书籍的表格视图 如果用户触摸单元格 则会对需要书籍项目的新视图控制器执行segue 我已在中初始化了这本书 void tableView UITableView tableView didSelectRowAtInde
  • 如何向现有 Windows EC2 实例添加实例存储?

    我有一个 Windows 2008 EC2 实例 我已对其 EBS 启动驱动器进行了一些自定义 我将实例启动为 m1 small 或 m1 large 并且实例存储不会显示为附加驱动器 我读到 ec2 run instances 命令中的
  • 如果文本框为空,如何禁用按钮

    首先 我很抱歉我的英语不好 我是 C 初学者 我制作了一个 Windows 窗体应用程序 但如果文本框为空 我无法禁用一个按钮 我尝试了一些启用的方法 但它们不起作用 希望有人能帮我解决这个问题 非常感谢 public partial cl
  • 如何在 Jenkins 中通过 ssh-agent 直接在 Windows 上使用 git

    我正在尝试更新裸 git 存储库作为构建的一部分 在 Linux 上 它相对简单 dir my git repo git sshagent git sh git fetch origin module module 但是我不知道如何在 Wi
  • 如何向 Oracle 数据库中 CLOB 中包含的 xml 添加属性?

    如何向 Oracle 数据库中 CLOB 中包含的 xml 添加属性 我可以使用 UpdateXML 函数来更新现有属性 但它不会添加属性 您可以使用以下组合deleteXml 与任一appendChildXml insertChildXm
  • App Engine 和 Firebase 托管在一个域中

    我有一个自定义域 travelbox id 已连接到 Firebase 托管 我还有一个 App Engine 应用程序作为我的 API 我想将 App Engine 应用程序托管在api dev travelbox id 我将自定义域映射
  • 如何使母版页中内容页的默认焦点

    我有带有内容占位符的母版页 我有使用母版页的内容页 在我的所有内容页面中 我需要默认关注文本框 以便用户可以直接在文本框中键入内容 而不是将鼠标移到文本框上 在某些页面中没有文本框 因此我不会将默认焦点保留在那里 有什么方法可以在我的母版页
  • Java 字符串返回 null

    我试图让一个类从另一个类返回一个字符串 尽管我得到的返回值为空 我有一个 set 方法 可以在原始类中设置字符串 但是当在第二个类中调用该方法时 我得到 null 返回 这是第一堂课 public class IceCream instan