2017-10-06 11 views
-5
class Test { 

    private double d; 
    private int i; 
    private char c; 

    public Test (float x){ 
     d = x; 
     i = 5; 
     c = 'A'; 
    } 
    public Test (double x){ 
     d = x + x; 
     i = 3; 
     c = 'Z'; 
    } 

    public void set(char x) { 
     c = x; 
    } 

    public void set(int x) { 
     i = x; 
    } 

    public String toString(){ 
     return "d=" + d + " i=" + i + " c ="+c; 
    } 

} 

public class Display{ 
public static void main(String args[]){ 
    Test t1 = new Test(10); 
    System.out.println(t1.toString()); 
    t1.set('m'); 
    System.out.println(t1); 
    Test t2 = new Test(20.25); 
    System.out.println(t2); 
    t2.set('a' + 1); 
    System.out.println(t2); 
} 
} 

が、私は最後のコマンドの出力を理解していない紛らわしいですt2.set('a' + 1); 出力は次のとおりです。私はどのように計算する?それは

d=40.5 i=98 c =Z" 

なぜ= 98が私のですか?

これは、それは私の質問のほとんどは、あなたがsetメソッドを介してそれを設定するので、私はちょうどそれ:))))))

+6

サイトのコード/テキスト要件を回避するためにナンセンスを投稿しないでください。代わりにあなたのコードとあなたの問題をより詳細に説明してください。これは**要件が必要な理由です**。 –

+2

また、コードを書式化して読みやすくするために、コードを書式化するための努力を少しでも怠ることはありません。 –

+0

コードを少し上に置いておきたい場合があります。これにより、他の人のために読みやすくなります。 – OneSurvivor

答えて

3

ignooooreいくつかのテキストを追加しているコード何とか何とかである私に言っていますここに投稿するのは初めてです:

t2.set('a' + 1); 

手紙aは、したがって、あなたの結果を、コード・ポイント97だから、'a'+1 == 98を持っています。第2に、set(char)オーバーロードよりもset(int)オーバーロードが選択されている理由は、'a' + 1が明らかにint型であるためです。'a'がintに昇格してから加算が実行されます。

+0

どのように文字コードポイントを知ることができますか?私はコードを実行する必要がありますか私はテスト中に私は紙でそれを把握することはできますか? – Muhammad

+0

@MuhammadのJava文字はUnicodeであるため、どのUnicodeコードテーブルでも可能です。 https://unicode-table.com/en/またはhttp://www.fileformat.info/info/unicode/index.htmまたはhttps://en.wikipedia.org/wiki/List_of_Unicode_charactersまたは最終的な情報源:* * https://unicode.org/charts/About.html** – Andreas

関連する問題