静的およびオブジェクト指向の観点
Static
:クラス、汎用
スタティツクメソッド
静的メソッドでは、インスタンスメンバーを直接使用することはできません.
Staticメンバー変数(クラス変数)
したがって、元のインスタンス変数がクラスから作成された場合でも、それらは異なる値を有し、静的メンバー変数はインスタンスに関係なく同じ値を有する.
Q.Javaはなぜstaticを使わないのですか?
メモリ側
Javaメモリ領域は大きく
static
,stack
,heap
領域に分けられる.static
領域のデータは、アプリケーションの開始から終了までメモリに保持されます.メモリ領域には、グローバル変数と静的(静的)メンバー変数が格納されます.
ここに盲目的に格納するとメモリが浪費され、必要な変数だけが使用されます.
(
static
では、メソッドの呼び出し時にのみ割り当てられ、終了するとメモリが解放されるため、これは良い選択です.オブジェクト向けの側面
stack
を実装するために使用できません.その他の静的概念。
Q.main()メソッドがstaticと宣言された理由
public static void main(String[] args)
interface
の場合Javaプログラムが実行される前に、静的変数とメソッドを第1段階のメモリに置いてプログラムを実行します.(静態運転時ランキング1位)
Javaは、上位機
static
にオブジェクトを作成する必要がなく、メモリ割り当てを呼び出すことができます.main関数を実行するには、事前にメモリに保存する必要があります.
そうでなければ、最初はmainがなく、実行できません.
JVM
でなければオブジェクトは作成時にメモリに割り当てられるため、
static
キーワードを使用してオブジェクトを作成する必要があります.オブジェクトをメモリに割り当ててアクセス/呼び出しを行う必要があります.main関数を実行するには、事前にメモリに保存する必要があります.
そうでなければ、最初はmainがなく、実行できません.
ex)主クラス変数=new主クラス()変数.main();
プライマリ・メソッドは、インスタンスの作成を考慮せずにJVMによって呼び出されるため、静的と宣言する必要があります.
質問:main()で(staticと宣言されたメソッドで)非staticメソッドを直接呼び出すときにエラーが発生したのはなぜですか?
main(静的宣言メソッドから)
new
からメソッドを直接書き込むことができない理由は、次のとおりです.static
に他の一般的な関数を書き込むには、メモリにない関数にアクセスできません.(静的はまずメモリに入りますが、通常の関数は実行時にのみ上昇しますが、事前にアップグレードされた静的からアップグレードされていない通常の関数を呼び出すことに失敗しました.)したがって、staticを通常のメソッドに宣言すると呼び出すことができます.
静的メソッドはオブジェクトを作成する必要はありませんが、インスタンスメソッドは呼び出すにはオブジェクトを作成する必要があります.
オブジェクト呼び出しの作成
しかし、元のインスタンスメソッドから別のインスタンスメソッドを呼び出すと、なぜオブジェクトが作成されないのでしょうか.
タスクフィードバックの表示
[前のブログ記事]
https://blog.naver.com/maui2005/222596882203
[参考]
Javaの定番280 p
https://unabated.tistory.com/m/entry/%EC%99%9C-%EC%9E%90%EB%B0%94%EC%97%90%EC%84%9C-static%EC%9D%98-%EC%82%AC%EC%9A%A9%EC%9D%84-%EC%A7%80%EC%96%91%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94%EA%B0%80
https://gorakgarak.tistory.com/m/222?category=55954
https://m.blog.naver.com/heartflow89/220954420688
Reference
この問題について(静的およびオブジェクト指向の観点), 我々は、より多くの情報をここで見つけました https://velog.io/@yyy96/staticテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol