[Javaの定式]Chapter 6オブジェクト向けプログラミング(05-07)


Chapter 6. オブジェクト向けプログラミング


05.1つのファイルに複数のクラスを作成する


通常、1つのソースファイルに1つのクラスしか定義されていませんが、1つのソースファイルに複数のクラスを定義するのはである可能性があります.
📍 注:ソースファイルの名前はpublic classの名前と一致します.
-ソースファイルにpublic classがない場合、ソースファイルの名前はソースファイル内のクラスの名前とは無関係です.
올바른 작성 예)
<Hello2.java>
public class Hello2 {}	//Public class가 있는 경우,
	   class Hello3 {}  //소스파일의 이름은 반드시 public class의 이름과 일치
 
<Hello2.java>
class Hello2 {}	 //public class가 없는 경우,
class Hello3 {}	 //소스파일의 이름은 'Hello2.java.''Hello3.java' 둘 다 가능

잘못된 작성 예)
<Hello2.java>
Public class Hello2 {}  //하나의 소스파일에 둘 이상의 public class가 존재하면 안됨
Public class Hello3 {}  //각 클래스를 별도의 소스파일로 나눠서 저장하거나 
						둘 중의 한 클래스에 'public'을 삭제

<Hello3.java>
public class Hello2 {}  //소스파일의 이름이 public class의 이름과 불일치
	   class Hello3 {}  //소스파일의 이름을 'Hello2.java'로 변경해야함

<hello2.java>
public class Hello2 {}  //소스파일의 이름과 public class의 이름이 불일치
	   class Hello3 {} //대소문자 구분하므로 맞춰 적어야함
  • ソースファイル(.java)とは異なり、クラスファイル(.class)はクラスごとに1つ作成されます.ex)の正しい例の「Hello 2.Javaをコンパイルすると「Hello 2」になります.「class」と「Hello 3」2つのクラスを作成

    06.オブジェクトの作成と使用

  • 클래스로부터 인스턴스를 생성하는 방법
    	클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수를 선언
    	변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
    
    	Tv t; //Tv 클래스 타입의 참조변수 t를 선언
    	t = new Tv(); // Tv인스턴스 생성 후, 생성된 Tv인스턴스의 주소를 t에 저장
  • ▶サンプルTvクラスからインスタンスを作成し、インスタンスのプロパティ(channel)とメソッド(channelDown)を使用する方法を示します.

    ▶サンプル手順で見る
  • Tv t;:Tvクラスタイプの参照変数t宣言.メモリに参照変数tのスペースを残します.インスタンスは作成されていないため、使用可能な参照変数はありません.
  • t= new Tv();:演算子newによってメモリ内の空白にTvクラスインスタンスが作成されます.アドレスが0 x 100の場所で作成されると仮定すると、メンバー変数は各データ型のデフォルト値に初期化されます.
    colorは参照型なのでnull;poweerはbooleanなのでfalse;channelはintなので0に初期化
    :代入演算子(=)によって生成されたオブジェクトのアドレス値は、参照変数tに格納される.参照変数tからTvインスタンスにアクセスできるようになりました
  • t.channel = 7;:7は、参照変数tアドレスのインスタンスのメンバー変数channelに格納される.インスタンスを'참조변수.멤버변수'形式で使用するメンバー変数(プロパティ)
  • t.channelDown();:参照変数tが参照するTvインスタンスのchannelDownメソッドを呼び出します.channel downメソッドは、メンバー変数channelに格納されている値を1減少させる(channel down()channelの値を7から6に変更する)
  • System.out.println("channle is " + t.channel);:参照変数tが参照するTvインスタンスのメンバー変数channelに格納されている値を出力します.現在のchannelの値は6です.
  • 🍓 インスタンスは参照変数のみで処理できます.
        参照変数のタイプは、インスタンスのタイプと一致する必要があります.

    07.オブジェクトの作成と使用例


    同じクラス
  • から作成された場合でも、各インスタンスのプロパティ(メンバー変数)は異なる値を保持でき、メソッドの内容はすべてのインスタンスに対して同じです.
    ▶Tvクラスのインスタンスt 1とt 2を作成した後、インスタンスt 1のメンバー変数channelの値を変更する