JAVA実習


#### Class, Instance
Class:相互に関連付けられたメソッドと変数をグループ化して名前を付けます.
Instance:内部状態の異なるコピーを取得するためにコピー

Access level modifiers


public, protexted, default, private

static


static - class method
no static - instance method
classは脈絡のような方法とvariableを整理している.授業を受ける.このクラスが持つメソッドを使用できます.
しかし何度も繰り返すと、毎回特定の条件を繰り返し書くことになるかもしれません.だから必要なのはinstanceInstanceは基本的にclassのコピーで、私が設定した設定値もあります.instanceを宣言することは、datatypeがクラスの変数であることを宣言することに相当します.

クラスの使用

  • クラスの
  •  public static String delimiter = ""; //전역변수 선언
        public static void main(String[] args) {
            delimiter = "----"; //전역변수 호출
            printA();
            printB();
            delimiter = "****";
            printA();
            printB();
        }
        public static void printB() {
            System.out.println(delimiter);
            System.out.println("B");
            System.out.println("B");
        }
        public static void printA() {
            System.out.println(delimiter);
            System.out.println("A");
            System.out.println("A");
        }
  • クラスに関連する方法を組み合わせると、
  • class Print{
        public static String delimiter = ""; //전역변수 선언
        public static void B() {
            System.out.println(delimiter);
            System.out.println("B");
            System.out.println("B");
        }
        public static void A() {
            System.out.println(delimiter);
            System.out.println("A");
            System.out.println("A");
        }
    public class MyOOPwithClass {
        public static void main(String[] args) {
            Print.delimiter = "----"; //전역변수 호출
            Print.A();
            Print.B();
            Print.delimiter = "****";
            Print.A();
            Print.B();
        }
    }
    }
    利便性の違いが大きい.これは、メンテナンスが容易なコードです.

    static




    静的クラスを持つ変数では、インスタンスで値を変更するとクラス値も変更されます.逆に、クラスで変数を変更すると、インスタンス値も変更されます.
    静的にアタッチされていないクラスの変数では、インスタンスで変数を変更してもクラスの変数値は変更されません.
    class Foo{
        public static String classVar = "I class var";
        public String instanceVar = "I instance var";
        public static void classMethod() {
            System.out.println(classVar); // Ok
    //      System.out.println(instanceVar); // Error
        }
        public void instanceMethod() {
            System.out.println(classVar); // Ok
            System.out.println(instanceVar); // Ok
        }
    }
    public class StaticApp {
     
        public static void main(String[] args) {
            System.out.println(Foo.classVar); // OK
    //      System.out.println(Foo.instanceVar); // Error
            Foo.classMethod();
    //      Foo.instanceMethod();
             
            Foo f1 = new Foo();
            Foo f2 = new Foo();
    //      
            System.out.println(f1.classVar); // I class var
            System.out.println(f1.instanceVar); // I instance var
    //      
            f1.classVar = "changed by f1";
            System.out.println(Foo.classVar); // changed by f1
            System.out.println(f2.classVar);  // changed by f1
    //      
            f1.instanceVar = "changed by f1";
            System.out.println(f1.instanceVar); // changed by f1
            System.out.println(f2.instanceVar); // I instance var
        }
    }