Java 逻辑补码算子?
是否可以对值为true或false的对象使用逻辑运算符“!”?专门针对这样的对象Java 逻辑补码算子?,java,oop,boolean,boolean-logic,unary-operator,Java,Oop,Boolean,Boolean Logic,Unary Operator,是否可以对值为true或false的对象使用逻辑运算符“!”?专门针对这样的对象 public class Briefcase { private final double amount; private final String model; private boolean removed = false; private String face; public Briefcase(double amount, int face, String mod
public class Briefcase {
private final double amount;
private final String model;
private boolean removed = false;
private String face;
public Briefcase(double amount, int face, String model) {
this.face = Integer.toString(face);
this.amount = amount;
this.model = model;
}
public double getAmount() {
return amount;
}
@Override
public String toString() {
return face;
}
public String getModel() {
return model;
}
public void remove() {
removed = true;
face = "X";
}
public boolean isRemoved() {
return removed;
}
}
然后像这样使用它
Briefcase[] cases = new Briefcase[];
if (!cases[5].isRemoved()) { .... block of code}
可能吗?如果是这样,请提供指向该文档和其他一些示例的链接,我觉得这很奇怪,同时也很有趣是的,您可以,但不是使用代码中所示的数组,而是
!case.isRemoved()
这里的要点是!(求反运算符)适用于布尔操作数
只要操作数表达式解析为布尔值这会起作用。是的
boolean
是一种基本类型,但我看不出使用有什么奇怪的地方
例程被删除
仅存在于公文包
对象上,而不存在于数组上。使用求反操作您必须尝试以下方法
for(BriefCase c: cases) {
if (!c.isRemoved()) {
// block of code
}
}
我不确定您是由于错误还是设计而将索引留在数组中。。但这肯定会奏效:
if(!cases[i].isRemoved()){ .... block of code}
其中i是索引。在这种情况下!否定调用isRemoved()的值 您可以在此处查看操作员列表: 关于你不能写的答案:
Briefcase[] cases = new Briefcase[];
if (!cases[5].isRemoved()) { .... block of code}
[]和。()运算符具有相同的优先级
[]索引运算符将首先执行,因为该行是从左到右求值的,因此检索一个公文包实例,您可以在该实例上调用isRemoved()方法。问题是您正在询问一个有关公文包数组的问题。。。一件也没有。你期望它如何工作?编码和执行所需的时间比在这里提问并静坐下来所需的时间要少。为什么不做一个实验主义者呢?让JDK告诉你正确的答案。没有任何方法和逻辑可以将其应用于ArrayGate操作符,意思是相反的?如果cases[i].isRemoved包含false,则表示为!假的?还是不假?爪哇卡宝贝,为什么数组?它不是应用于数组中单个元素的
布尔成员吗?那么这意味着什么呢?你能提供更多的例子吗?一个比这更基本的方法?如果我指的是在对象上的基本用法,而不是基本用法,那么您不能在对象上使用它<代码>案例[5]。isRemoved()
计算结果为(基本)布尔值,并且代码>应用于结果。就像是!anyBoolean
(更基本)。正如Suraj指出的,你可以在表达式中添加一对假想的braketsobject@Andrew,则cases
变量是一个数组。你也可以写!案例[5]。isRemoved()
!案例[5]。isRemove()的意思是什么?它的布尔值的对立面?否定运算符的意思是它的对立面?如果cases[i].isRemoved包含false,则表示为!假的?还是不假?是的。“cases[i].isRemoved包含false这意味着!false”是正确的