トラック
/
Java
Java
/
演習
/
マーケティング部のTim
マーケティング部のTim

マーケティング部のTim

学習演習

はじめに

null許容性

Javaでは、nullリテラルは値が存在しないことを表すために使われます。

Javaのプリミティブ型にはすべてデフォルト値があるため、nullになることはありません。慣例として、intのように小文字で始まります。

参照型はオブジェクトのメモリアドレスを保持し、nullを値として持つことができます。一般的にはStringのように大文字で始まります。

プリミティブ型の変数にnullを代入しようとすると、その変数は常に代入された型のプリミティブ値を保持するため、コンパイル時エラーになります。

//Throws compile time error stating the required type is int, but null was provided
int number = null;

参照型の変数にnullを代入しても、参照型の変数はnullを許容するため、コンパイル時エラーにはなりません。

//No error will occur as the String variable str is nullable
String str = null;

説明

この演習では、工場の従業員向けの名札を印刷するコードを書きます。

1. 従業員の名札を印刷する

従業員にはID、名前、部署名があります。従業員の名札のラベルは、次のようにフォーマットします:"[id] - name - DEPARTMENT"。 Badge.print()メソッドを実装して、従業員の名札のラベルを返すようにしましょう:

Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"

ラベルでは、部署名を大文字にする必要がある点に注意しましょう。

2. 新しい従業員の名札を印刷する

コンピューターシステムのちょっとした不具合で、新しい従業員が工場で働き始めるときに、まだIDを持っていないことがあります。 名札は必須なので、そのような従業員にはIDのプレフィックスがない一時的な名札が渡されます。まだIDを持っていない新しい従業員に対応できるように、Badge.print()メソッドを変更しましょう:

Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"

3. オーナーの名札を印刷する

工場のオーナーも、いつでも名札を着けなければなりません。 ただし、オーナーには部署がありません。この場合は、ラベルに部署名の代わりに"OWNER"と出力します。 オーナー用のラベルを出力できるように、Badge.print()メソッドを変更しましょう:

Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"

オーナーが新しい従業員でもある場合があることに注意しましょう:

Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Java Exercism

マーケティング部のTimを始める準備はできましたか?

Exercismに登録すれば、26個のコンセプト158個の演習、そして本物の人間によるメンタリングとともに、Javaを学んでマスターできます。すべて無料です。