Java中的static詳細講解
【1】static可以修飾:屬性,方法,程式碼塊,內部類。
【2】static修飾屬性;
public class Test {
//屬性:
int id;
static int sid;
//這是一個main方法,是程式的入口:
public static void main(String[] args) {
//建立一個Test類的具體的物件
Test t1 = new Test();
t1.id = 10;
t1.sid = 10;
Test t2 = new Test();
t2.id = 20;
t2.sid = 20;
Test t3 = new Test();
t3.id = 30;
t3.sid = 30;
//讀取屬性的值:
System.out.println(t1.id);
System.out.println(t2.id);
System.out.println(t3.id);
System.out.println(t1.sid);
System.out.println(t2.sid);
System.out.println(t3.sid);
}
}
記憶體分析:
一般官方的推薦訪問方式:可以通過類名.屬性名的方式去訪問:
static修飾屬性總結:
(1)在類載入的時候一起載入入方法區中的靜態域中
(2)先於物件存在
(3)訪問方式: 物件名.屬性名 類名.屬性名(推薦)
static修飾屬性的應用場景:某些特定的資料想要在記憶體中共享,只有一塊 --》這個情況下,就可以用static修飾的屬性
public class MsbStudent {
//屬性:
String name;
int age;
static String school;
//這是一個main方法,是程式的入口:
public static void main(String[] args) {
MsbStudent.school = "static詳細講解";
//建立學生物件:
MsbStudent s1 = new MsbStudent();
s1.name = "張三";
s1.age = 19;
//s1.school = "static詳細講解";
MsbStudent s2 = new MsbStudent();
s2.name = "李四";
s2.age = 21;
//s2.school = "static詳細講解";
System.out.println(s2.school);
}
}
屬性:
靜態屬性 (類變數)
非靜態屬性(例項變數)
【3】static修飾方法;
public class Demo {
int id;
static int sid;
public void a(){
System.out.println(id);
System.out.println(sid);
System.out.println("------a");
}
//1.static和public都是修飾符,並列的沒有先後順序,先寫誰後寫誰都行
static public void b(){
//System.out.println(this.id);//4.在靜態方法中不能使用this關鍵字
//a();//3.在靜態方法中不能訪問非靜態的方法
//System.out.println(id);//2.在靜態方法中不能訪問非靜態的屬性
System.out.println(sid);
System.out.println("------b");
}
//這是一個main方法,是程式的入口:
public static void main(String[] args) {
//5.非靜態的方法可以用物件名.方法名去呼叫
Demo d = new Demo();
d.a();
//6.靜態的方法可以用 物件名.方法名去呼叫 也可以 用 類名.方法名 (推薦)
Demo.b();
d.b();
}
}
相關文章
- java中static作用詳解Java
- Java EL 詳細用法講解Java
- Java中static變數作用和用法詳解Java變數
- Spark開發-WordCount詳細講解Java版本SparkJava
- 指標的詳細講解指標
- dart類詳細講解Dart
- react的詳細知識講解!React
- 教科書級講解,秒懂最詳細Java的註解Java
- ES6中rest引數詳細講解REST
- Java面試-List中的sort詳細解讀Java面試
- C語言中的static 詳細分析C語言
- 史上最詳細的webpack 講解2 (DefinePlugin中的淫技巧)WebPlugin
- Go Struct超詳細講解GoStruct
- 最詳細的JVM&GC講解JVMGC
- Java集合詳解8:Java集合類細節精講,細節決定成敗Java
- 詳細講解Oracle資料庫中不同的恢復特性Oracle資料庫
- 詳細講解函式呼叫原理函式
- MyBatis-Plus詳細講解(一)MyBatis
- Spark開發-WordCount詳細講解Spark
- Struts配置檔案詳細講解
- DeFi和CeFi的區別詳細講解
- 詳細講解SQL中CONVERT轉化函式用法SQL函式
- 詳細講解遊戲開發中的DirectX-tasy(II)(轉)遊戲開發
- java自帶執行緒池和佇列詳細講解Java執行緒佇列
- Java堆、棧和常量池以及相關String的詳細講解(經典中的經典)Java
- 機器學習之決策樹詳細講解及程式碼講解機器學習
- 一看你就懂,超詳細 java 中的 ClassLoader 詳解Java
- 詳細講解23種設計模式設計模式
- Spark開發-WordCount流程詳細講解Spark
- HTML 超級連結詳細講解HTML
- oracle 9i statspack詳細講解Oracle
- Java中static的含義Java
- 史上最詳細的 webpack 講解 1 (vue-cli 中 build.js)WebVueUIJS
- java中cookie操作詳細JavaCookie
- Java註解最全詳解(超級詳細)Java
- 演算法--揹包九講(詳細講解+程式碼)演算法
- Java中static、final、static final的區別Java
- Perl5 split 函式的使用詳細講解函式