欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA Static關(guān)鍵字的用法

 更新時間:2020年07月16日 16:14:54   作者:一只胡說八道的猴子  
這篇文章主要介紹了JAVA Static關(guān)鍵字的用法,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

static關(guān)鍵字的作用:

用來修飾成員變量和方法,被修飾的成員是屬于類的,而不單單是屬于某個對象的,也就是說,可以不靠對象來調(diào)用。

首先我們來介紹類變量

當(dāng)static修飾成員變量時,該變量稱為類變量,該類的每個對象都共享同一個類變量的值,任何

對象都可以更改該變量的值,但也可以在不創(chuàng)建該類對象的情況下,通過類名對類變量進行操作

命名格式

static 數(shù)據(jù)類型 變量名;

static int age;

下面我們來舉個例子,讓大家體會體會類變量的作用

就比如梁山有108位好漢我們給這108位好漢按照次序每人一個編號,這就需要使用到類變量

定義一個Person類

public class Person {
 private int age;
 private String name;
 private int id;
 private static int count=1;
 public int getId() {
  return id;
 }

 @Override
 public String toString() {
  return "Person{" +
    "age=" + age +
    ", name='" + name + '\'' +
    ", id=" + id +
    '}';
 }

 public void setId(int id) {
  this.id=count;
  count++;
 }

 public Person(int age, String name) {
  this.age = age;
  this.name = name;
  this.id=count;
  count++;
 }

 public Person() {
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
}

主函數(shù)

public class Test {
 public static void main(String[] args) {
  Person one = new Person(18, "及時雨宋江");
  System.out.println(one);
  Person two = new Person(18, "盧俊義");
  System.out.println(two);

 }
}

結(jié)果

我們看到id的數(shù)值在不斷的+1,這是因為他們的id都等于了一個公共的類變量

接下來我們來介紹靜態(tài)方法

靜態(tài)方法即類中使用static修飾的方法,該方法使用類名可以直接調(diào)用,不需要創(chuàng)建類的對象

定義格式

修飾符 static 返回置類型 方法名 (參數(shù)列表){

//執(zhí)行語句

}

示例

public static void eat(){
System.out.println("吃飯了");
}

使用靜態(tài)方法的注意事項

靜態(tài)方法只可以直接訪問類變量與靜態(tài)方法

靜態(tài)方法不能訪問普通成員變量或成員方法

靜態(tài)方法中不可以使用this關(guān)鍵字(因為this代表的是使用該方法的對象,而靜態(tài)方法是屬于類的,this無從指向,所以不可以使用)

下面我們寫一段代碼來使用一下靜態(tài)方法

public class Person2 {
 public static void test(){
  System.out.println("這是靜態(tài)方法" );
 }
}
public class Test {
 public static void main(String[] args) {
  System.out.println("這是使用類名調(diào)用的:");
   Person2.test();
  Person2 person2 = new Person2();
  System.out.println("這是使用對象調(diào)用的:");
  person2.test();

 }
}

運行結(jié)果

下面我們從內(nèi)存的角度來講講靜態(tài)的原理

先上代碼

public class Teacher {
 private int age;
 private String name;
 private static String subject="math";
 public Teacher(int age, String name) {
  this.age = age;
  this.name = name;
 }

 public Teacher() {
 }

 @Override
 public String toString() {
  return "Teacher{" +
    "age=" + age +
    ", name='" + name + '\'' +
    '}';
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public static String getSubject() {
  return subject;
 }

 public static void setSubject(String subject) {
  Teacher.subject = subject;
 }
}
public class Test {
 public static void main(String[] args) {
  Teacher wang = new Teacher(18, "wang");
  Teacher li = new Teacher(19, "li");
 }
}

小結(jié):普通成員變量操作各自空間,靜態(tài)變量操作共享空間

靜態(tài)代碼塊,敲重點?。?!這個在我們后面學(xué)習(xí)中會經(jīng)常使用到

什么是靜態(tài)代碼塊呢?

定義在成員位置,使用static修飾的代碼塊{}

位置:類中方法外

執(zhí)行隨著類的加載而執(zhí)行且只執(zhí)行一次,優(yōu)先于main方法和構(gòu)造方法的執(zhí)行

格式

 public class Person {
 static {  
 }
 }

這里就不深究了后面的文章我找?guī)缀踉僬f說

以上就是static關(guān)鍵字的一些基礎(chǔ)知識,如有錯誤請各位批評指正

到此這篇關(guān)于JAVA Static關(guān)鍵字的用法的文章就介紹到這了,更多相關(guān)JAVA Static關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot集成IJPay實現(xiàn)微信v3支付的示例代碼

    SpringBoot集成IJPay實現(xiàn)微信v3支付的示例代碼

    本文主要介紹了SpringBoot集成IJPay實現(xiàn)微信v3支付的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java聊天室之實現(xiàn)接收和發(fā)送Socket

    Java聊天室之實現(xiàn)接收和發(fā)送Socket

    這篇文章主要為大家詳細介紹了Java簡易聊天室之實現(xiàn)接收和發(fā)送Socket功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以了解一下
    2022-10-10
  • 詳解JAVA 強引用

    詳解JAVA 強引用

    這篇文章主要介紹了JAVA 強引用的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • hadoop client與datanode的通信協(xié)議分析

    hadoop client與datanode的通信協(xié)議分析

    本文主要分析了hadoop客戶端read和write block的流程. 以及client和datanode通信的協(xié)議, 數(shù)據(jù)流格式等
    2012-11-11
  • DolphinScheduler容錯Master源碼分析

    DolphinScheduler容錯Master源碼分析

    這篇文章主要為大家介紹了DolphinScheduler容錯Master源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java內(nèi)存各部分OOM出現(xiàn)原因及解決方法(必看)

    Java內(nèi)存各部分OOM出現(xiàn)原因及解決方法(必看)

    下面小編就為大家?guī)硪黄狫ava內(nèi)存各部分OOM出現(xiàn)原因及解決方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java查找 List 中的最大最小值實例演示

    Java查找 List 中的最大最小值實例演示

    這篇文章主要介紹了JAVA得到數(shù)組中最大值和最小值的簡單實例,需要的朋友可以參考下
    2017-04-04
  • Java中List與數(shù)組相互轉(zhuǎn)換實例分析

    Java中List與數(shù)組相互轉(zhuǎn)換實例分析

    這篇文章主要介紹了Java中List與數(shù)組相互轉(zhuǎn)換的方法,實例分析了Java中List與數(shù)組相互轉(zhuǎn)換中容易出現(xiàn)的問題與相關(guān)的解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • 教你怎么用Springboot自定義Banner圖案

    教你怎么用Springboot自定義Banner圖案

    今天給大家?guī)淼氖荍ava的相關(guān)知識,文章圍繞著怎么用Springboot自定義Banner圖案展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 帶你快速搞定java多線程(4)

    帶你快速搞定java多線程(4)

    這篇文章主要介紹了java多線程編程實例,分享了幾則多線程的實例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下
    2021-07-07

最新評論