JAVA実習
#### Class, Instance
Class:相互に関連付けられたメソッドと変数をグループ化して名前を付けます.
Instance:内部状態の異なるコピーを取得するためにコピー
public, protexted, default, private
static - class method
no static - instance method
classは脈絡のような方法とvariableを整理している.授業を受ける.このクラスが持つメソッドを使用できます.
しかし何度も繰り返すと、毎回特定の条件を繰り返し書くことになるかもしれません.だから必要なのはinstanceInstanceは基本的にclassのコピーで、私が設定した設定値もあります.instanceを宣言することは、datatypeがクラスの変数であることを宣言することに相当します.
クラスの クラスに関連する方法を組み合わせると、
静的クラスを持つ変数では、インスタンスで値を変更するとクラス値も変更されます.逆に、クラスで変数を変更すると、インスタンス値も変更されます.
静的にアタッチされていないクラスの変数では、インスタンスで変数を変更してもクラスの変数値は変更されません.
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
}
}
Reference
この問題について(JAVA実習), 我々は、より多くの情報をここで見つけました https://velog.io/@spolice/JAVA-실습-tvxem41lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol