我正在和我的老师谈话,她提到一个对象变量(她的意思是一个对象的实例)不包含对象本身,而是包含内存中的地址.
我听说在Java中,对象的实例实际上包含对内存中对象的引用.我错了吗?引用与包含内存中的地址或其他内容相同吗?
我正在尝试将程序的背景颜色设置为白色(而不是灰色).
我有一个包含程序的框架类(该框架类的新实例在main方法中实例化).我有以下是构造函数:
this.setBackground(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
为了防止它被其他面板阻挡,我将相同的行添加到我程序中每个面板的构造函数中(我的意思是每个面板).
然而,什么也没发生.
可能有什么不对?
所以,我有一个不同大小的控件(它是一个标签).我希望每次更改时都会在表单中重新定位(水平居中,而不是垂直).我该如何以编程方式执行此操作?
所以,我正在设计一个类,其中如果某些方法的某些参数为null,则该方法(或整个对象)将不起作用.
我知道它会NullPointerException
在收到空对象并尝试使用它时抛出一个,但我希望程序员试图调用该方法来理解该错误不在我的代码中.我只想确保抛出的结果异常非常清楚(无需查看我的源代码).
我已经看到了一些我所描述的例子,IllegalArgumentException
当参数为null时,它们会抛出一个.
这是区别,想象someObject将以某种方式对该方法至关重要:
public void doSomething(SomeClass someObject) {
if (someObject == null) throw new IllegalArgumentException("someObject is null");
...
}
Run Code Online (Sandbox Code Playgroud)
这样,程序员就知道他或她违反了javadoc隐含的合同(无论是否明确说明).
这是好的做法,甚至是合理的事情吗?
在异常消息中最好说些什么?
是否更好地陈述"出错":
someObject为null
或者更好地说明某些事情"出错"并且通常意味着原因(最终解决方案):
someObject不能为null
还是有更好的选择吗?
所以,我有点问题.我正在尝试将整数数组(被调用list
)转换为ArrayList
(被调用arrList
).下面显示的代码工作正常:
java.util.ArrayList arrList = new java.util.ArrayList(Arrays.asList(list));
Run Code Online (Sandbox Code Playgroud)
但是,编译时会出现一个警告:上面的行报告为使用"未经检查或不安全的操作".
不幸的是,我似乎无法处理这个警告.由于这是家庭作业,因此部分标准是无警告.有没有什么办法可以将数组转换为没有警告/错误的ArrayList?
在Windows操作系统上,我们默认使用的shell /终端是命令提示符(CMD).
现在,当我使用Linux(甚至是Mac)系统时,我发现终端通常功能更全面.我使用的那个可以很容易地更改设置和属性,很容易调整大小,有些甚至有行编号和多个标签.
自从我开始编程以来,我已经意识到命令行的重要性,我想知道是否有任何替代默认的命令提示符?而且,如果没有很多好的选择,我将如何编写自己的?我需要考虑什么?
所以,我的计算机科学课中有这个真/假的问题(我们使用的是Java):
变量名的声明声明了要存储在其中的值的类型.
(问题中"类型"一词是粗体)
现在,我知道当你声明一个变量时,你必须在Java中指定类型,因为它是静态类型的:
int x;
Run Code Online (Sandbox Code Playgroud)
在该代码中,x
声明了名称为的变量,我们知道它是类型的int
.
然而,问题提到了"变量名称"这个术语.从技术上讲,变量的名称/标识符不负责声明变量的类型.如果程序员选择,该名称甚至不需要提及变量的类型.
我想知道这里有正确的选择.这是真是假?对我而言似乎很模糊......我该怎么办?
我使用带有文本区域的Swing(JTextArea)创建了一个应用程序.我想创建一个"编辑"菜单,其中包含从文本区域剪切和复制文本的选项,以及将剪贴板中的文本粘贴到文本区域.
我已经看到了几种方法,但我想知道最好的方法是什么.我该如何实现剪切/复制/粘贴?
此代码用于比较两个字符串中的字符,看它们是否相同.它通过获取字符串,将它们转换为char数组,对它们进行排序,然后比较它们来实现.
private boolean sameChars(String firstStr, String secondStr)
{
return Arrays.equals(Arrays.sort(firstStr.toCharArray()), Arrays.sort(secondStr.toCharArray()));
}
Run Code Online (Sandbox Code Playgroud)
当我编译这段代码时,它突出显示(firstStr.toCharArray())
并说'void' type not allowed here
.导致错误的原因是什么,我将如何解决?
我想像我这样布局我的JPane:
-------
| |
| |
| |
-------
| |
-------
Run Code Online (Sandbox Code Playgroud)
这样,顶部比底部更大/更高(顶部由另一个JPanel组成并使用Graphics对象显示图像,而底部也包含另一个JPanel但使用Graphics对象绘制一些线条和文字).
我听说最好的方法是使用GridBagLayout和GridBagConstraints.
我试图找出GridBagConstraints的适当属性,我遇到了一些困难.这就是我到目前为止......
对于顶部,我有:
gridx = 0
gridy = 0
weighty = 1.0; // expand downwards, because the bottom should never expand in the Y direction
fill = GridBagConstraints.BOTH
Run Code Online (Sandbox Code Playgroud)
对于底部,我有:
gridx = 0
gridy = 1
fill = GridBagConstraints.HORIZONTAL
anchor = GridBagConstraints.PAGE_END
Run Code Online (Sandbox Code Playgroud)
不幸的是,所有最终结果都出现了一个大的灰色矩形(我有一个白色背景的应用程序) - 没有图像加载,没有行/文本出现.
我该怎么办?我应该调整什么?
我已经阅读了一些教程,但它看起来真的很混乱,我在第一个应用程序中使用它,但现在当我尝试这样做时它似乎对我不起作用.
我有一个单词列表,在Python中我需要遍历每个单词并检查单词是否在网站上.
目前,这是我所拥有的(与此问题有关)的片段:
words = ['word', 'word1', 'word2']
site = urllib.request.urlopen(link)
for word in words:
if word in site:
print(word)
else:
print(word, "not found")
Run Code Online (Sandbox Code Playgroud)
我有一个单词列表,我打开网站,然后我遍历每个单词检查站点中的单词.请注意,我正在使用一个网站,其中包含所有这些单词(我自己设置,我可以验证它是否有效),链接是网站的网址.
问题是,我经常去" 话未发现",它似乎永远不会在网站上找到的话.
代码有什么问题?这似乎是一个语义错误,因为语法工作正常,并且没有抛出异常(虽然在我的最后我确实有异常处理,但它仍会报告是否抛出异常).
作为一个年轻的程序员,我总是试图寻找我的技能的应用程序.
无论如何,我现在正在接受trig并且我们正在研究单位圆,从度数转换为坐标的公式是(sinθ,cosθ)(据我所知).
但是,我遇到的困难是我需要将值保持为分数.
基本上,我计划的算法是:
i = 0
while i < 360:
print(i, "=", calc(i))
i += 15
Run Code Online (Sandbox Code Playgroud)
现在,calc可以给出任何名称,并且将是一个函数,它返回x和y的坐标(可能是一个元组)给定x =sinθ和y =cosθ.
我遇到的问题是Python中的sin会返回介于-1和1之间的浮点,但是,我需要找到一种方法让它返回一个分数.例如,在该图中 ,坐标是有理数.
我该怎么办?我应该编写自己的正弦函数和余弦函数吗?如果是,我应该怎么做?
我必须以某种方式保持程序运行,直到指数函数的输出超过输入值,然后将其与指数函数的先前输出进行比较。即使只是伪代码,我将如何做这样的事情?