java不明白?public boolean equals(Object obj) ?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java不明白?public boolean equals(Object obj) ?相关的知识,希望对你有一定的参考价值。

class BaseClass
public boolean equals(Object obj)
if(getClass() == obj.getClass()) return true
else return false


class DerivedClass extends BaseClass
public class ExerciseCh6_6_2
public static void main(String[] args)
BaseClass b1 = new BaseClass();
BaseClass b2 = new BaseClass();
DerivedClass d1 =new DerivedClass();//d1생선
DerivedClass d2 =new DerivedClass();//d2생선
if (b1.equals(d1))System.out.println("derived equals base.");
if (d1.equals(b1))System.out.println("base equals derived.");
if (b1.equals(b2))System.out.println("base equals base.");
if (d1.equals(d2))System.out.println("derived equals derived.");



结果:
base equals base.
derived equals derived.
怎么得出结果? 理解不了 谁能解释?谢谢

b1和b2是BaseClass 类的两个实例,调用的方法应该是一样的,if语句返回真的话就调用后边的输出语句,后边的d1和d2类同上边的 参考技术A public final Class<?> getClass()
Returns the runtime class of this Object. The returned Class object is the object that is locked by static synchronized methods of the represented class.
The actual result type is Class<? extends |X|> where |X| is the erasure of the static type of the expression on which getClass is called. For example, no cast is required in this code fragment:

Number n = 0;
Class<? extends Number> c = n.getClass();

Returns:
The Class object that represents the runtime class of this object.
See Also:
The Java Language Specification, Third Edition (15.8.2 Class Literals)
还不理解?看中文翻译
public final Class<?> getClass()返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass。 例如,以下代码片段中不需要强制转换:

Number n = 0;
Class<? extends Number> c = n.getClass();

返回:
表示此对象运行时类的 Class 对象。
另请参见:
The Java Language Specification, Third Edition (15.8.2 Class Literals)本回答被提问者采纳
参考技术B 小日本?

我不明白这里如何使用 Java 中的关键字 NEW [重复]

【中文标题】我不明白这里如何使用 Java 中的关键字 NEW [重复]【英文标题】:I do not understand how keyword NEW in Java was used here [duplicate] 【发布时间】:2016-01-19 21:50:24 【问题描述】:

我是 java 新手,但我的理解是关键字 new 出现在构造函数之前。但是,在 Oracle 的 Java 教程中的这个示例中,情况并非如此。

public static int numSuits = 4;
public static int numRanks = 13;
public static int numCards = numSuits * numRanks;

private Card[][] cards;

public Deck() 
    cards = new Card[numSuits][numRanks];
    for (int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++) 
        for (int rank = Card.ACE; rank <= Card.KING; rank++) 
            cards[suit-1][rank-1] = new Card(rank, suit);
        
    

卡是类,我不明白这行是什么意思:

cards = new Card[numSuits][numRanks];

谁能解释一下这行代码是什么意思。

【问题讨论】:

这是一种初始化数组的方法 这是一种>>anew 关键字的方法。也许这就是令人困惑的 I.D. @StephenC 我很怀疑不了解 Java 数组的人是否会被反射实例化选项弄糊涂。 @chrylis int[][] a = 1,2, 3,4; 呢? @chrylis - 欧文怎么说... 【参考方案1】:

在这种情况下,new Card[numSuits][numRanks] 正在实例化一个二维卡片数组,而不是 Card 类本身。稍后实例化 Card 类,在 2 个 for 循环中为 new Card(rank, suit);

【讨论】:

以上是关于java不明白?public boolean equals(Object obj) ?的主要内容,如果未能解决你的问题,请参考以下文章

java编程中如何在第三个public static中调用前两个boolean的值?

java中boolean用法

Java写一个函数来判断括号是不是匹配。 方法名public static boolean checkBalance(String expression);

java中怎样给Boolean型二维数组赋值?

wordpress自定义文章类型public参数说明

Property or field ‘xxx‘ cannot be found on object of type ‘Boolean‘ - maybe not public or not valid?