2014-11-14 99 views
0

我對編程很陌生,仍然對某些事情感到困惑。以下是課堂練習。確定數據類型

我們必須在下面的代碼中使用上下文來確定代碼中標識符的數據類型。

if (a.length() > 10) 

{ 

    b = ! (c < 4); 

    z = ugly (a, b, c – 9); 

} 

if (z.equals(「I think I got it」)) 

{ 

    System.out.println (「Yea」); 

} 

這是我的回答: a; is int

b; is int

c; is int

z;是字符串

我相信我有一些錯誤。當我在多個地方看到'a'&'z'時,我想我會感到困惑。再次,我只是想更好地瞭解它們。

+0

int是一個原始類型,並沒有'length()'函數。所以你的回答是錯誤的。回答這個問題的關鍵是a和z的'length()'和'equals()'函數。對於b和c,檢查值。那麼你會找到答案! ;) – 2014-11-14 20:43:52

+0

'a'必須具有'org.omg.CORBA.TypeCode'類型,因爲該類有一個'length()'方法。或者它可以是'java.util.concurrent.atomic.AtomicReferenceArray'或'java.lang.StringBuffer',或JRE中具有'length()'方法的其他26個其中之一。真的,如果這是一次課堂練習,那是我碰到的一個愚蠢的問題。即使你將自己限制在原始類型和String中,你仍然不知道'c'是什麼。 (附:馬修,請不要引用我在作業中所說的任何話。我在這裏非常諷刺。) – ajb 2014-11-14 20:50:02

回答

0
a.length() 

length()是String對象的一種方法;

c < 4 

這是布爾測試(結果可以是true或false)其中c可以是number(int)。

z.equals(「I think I got it」) 

equals是Object的一個方法,但它在此情況下使用String檢查z值。

所以 一個是字符串

b爲布爾

c是int或其他數字(也許長或字節,短)

z是字符串或otehr非原始對象

+0

感謝您的幫助! – 2014-11-14 21:00:40

1

a不能是int,因爲您不能通過int調用.length()等方法。

b不能是int因爲在線路b = ! (c < 4);,在右側的表達式是boolean類型的,並且不能分配一個booleanint

c的確可能是int,但它也可能是long

z的確可能是String,但它原則上可以是任何非原始類型(因爲所有對象都有一個equals()方法)。

+0

我會說Z是一個對象,因爲字符串是Java中的對象。實際上,它幾乎肯定是一個字符串,因爲對象的equals方法默認是比較內存位置(如您所見,該示例將其與字符串進行比較......只有在某人重寫了該對象的相同函數時纔會發生這種情況) – Alter 2014-11-14 20:48:18

+0

'c '可以是*任何*數字類型,對嗎? – ajb 2014-11-14 20:52:04

+0

感謝您的幫助! – 2014-11-14 21:00:08