摘要:類的成員方法類的成員方法的定義中的使用之靜態變量我們可以基于一個類創建多個該類的對象,每個對象都擁有自己的成員,互相獨立。靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量。
java類的學習 先上一個代碼
package bankCard; import java.util.Scanner; // 銀行卡類 public class bankCard { // 靜態變量 static String host = "www.gcsn.site"; // 成員變量 private static int ID; // 賬號 private double blance; // 余額 // 構造函數 public bankCard() { // 無參構造函數 } public bankCard(int id, double money) { //有參構造函數 ID = id; blance = money; } // 成員函數(共有) / 成員方法 public double intId() { // 存錢 System.out.println("請輸入您要存的錢數,只能是整錢"); Scanner write_in = new Scanner(System.in); // 局部變量 double money = write_in.nextInt(); this.blance +=money; System.out.println("您的ID卡號為"+ID+"的賬戶存入"+money+"元余額為"+blance); return blance; } // 成員函數(共有) public double outId() { // 取錢 System.out.println("請輸入您要取出的錢數,只能是整錢"); Scanner write_in = new Scanner(System.in); double money = write_in.nextInt(); if(money > blance) { System.out.println("您的余額不足!當前余額為"+blance); }else { this.blance -=money; System.out.println("您的ID卡號為"+ID+"的賬戶取出"+money+"元,剩余余額為"+blance); } return blance; } public static void main(String [] args) { // 推薦使用類來訪問 System.out.println("static-----" +bankCard.host); System.out.println("static-----" +host); // 靜態成員函數可以直接訪問靜態變量 bankCard b1 = new bankCard(1234, 2000.00); b1.intId(); b1.outId(); } }成員變量和局部變量
成員變量和局部變量的區別
作用域不同
局部變量只能在定義它的方法內使用。 成員變量則是可以在整個類內都可以使用。
初始值不同
java會給成員變量一個初始值, java不會給局部變量一個初始值(必須自己初始化)。
兩類變量同名時,局部變量具有更高的優先級
構造方法var car = new Car(); // 通常我們都會new 實例化一個對象,其實new后面跟的就是構造方法
使用new + 構造方法 來實例化一個新的對象。 構造方法是定義在類中的,用來初始化一個對象。 構造方法必須于類名相同,且沒有返回值。 當沒有構造方法時,系統會自動添加一個無參的構造方法; 如果自定義了一個構造方法,那么系統將不會為我們創建無參的構造方法了,也就無法調用無參的構造方法。 構造方法的重載: 方法名相同,但是參數不同的多個方法,調用的時候會根據不同的參數來選擇相應的構造函數。類的成員方法
1 類的成員方法的定義
Java 中的 static 使用之【靜態變量】我們可以基于一個類創建多個該類的對象,每個對象都擁有自己的成員,互相獨立。然而在某些時候,我們更希望【該類所有的對象共享同一個成員】。此時就是 static 大顯身手的時候了!!
Java 中被 static 修飾的成員稱為【靜態成員或類成員】。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。當然,鑒于他作用的特殊性更推薦用類名訪問~~
靜態成員屬于整個類,當系統第一次使用該類時,就會為其分配內存空間直到該類被卸載才會進行資源回收!~~
public class HelloWorld { // 定義靜態變量,保存班級名稱 static String host = "www.gcsn.site"; public static void main(String[] args) { HelloWorld.host = "www.baidu.com"; // 訪問靜態變量,輸出班級名稱 System.out.println("static-----" +HelloWorld.host); } }Java 中的 static 使用之【靜態方法】
與靜態變量一樣,我們也可以使用 static 修飾方法,稱為【靜態方法或類方法】。其實之前我們一直寫的 main 方法就是靜態方法。
1. 靜態方法可以直接調用靜態變量,但是不能直接調用非靜態變量
如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然后通過對象來訪問非靜態變量。如
2、 在普通成員方法中,則可以直接訪問同類的非靜態變量和靜態變量,
3、 靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法。
總結
靜態方法: 能夠直接調用靜態成員,不可以直接調用非靜態成員, 不能夠直接調用非靜態方法Java 中的初始化塊和靜態初始化塊
普通方法, 既可以直接訪問靜態變量又可以訪問非靜態變量
如果使用 static 修飾初始化塊,就稱為靜態初始化塊。
靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量。
來看一個例子
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76709.html
摘要:單件模式提供這個實例的全局訪問點。實現單件模式,需要私有構造器,一個靜態方法,一個靜態變量。設計到多線程問題,同步會降低程序效率。 擁有獨立且唯一的對象 這次講述的是單件模式,就是整個內容里只有一個實例化唯一對象。這么說可能有點拗口,這么說吧,比方說,線程池,緩存,注冊表,日志文件,甚至做JDBC中連接,關閉,增刪改查數據庫的Connection類(個人命名也許并不一樣)、工具類等等...
摘要:我的是忙碌的一年,從年初備戰實習春招,年三十都在死磕源碼,三月份經歷了阿里五次面試,四月順利收到實習。因為我心理很清楚,我的目標是阿里。所以在收到阿里之后的那晚,我重新規劃了接下來的學習計劃,將我的短期目標更新成拿下阿里轉正。 我的2017是忙碌的一年,從年初備戰實習春招,年三十都在死磕JDK源碼,三月份經歷了阿里五次面試,四月順利收到實習offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。若有問題請及時留言或加。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸JAVA開發菜鳥還是業界...
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。若有問題請及時留言或加。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸JAVA開發菜鳥還是業界...
摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術專家我看過哪些技術類書籍。 大家好,我是...
閱讀 1809·2019-08-30 13:54
閱讀 2725·2019-08-29 17:27
閱讀 1109·2019-08-29 17:23
閱讀 3350·2019-08-29 15:20
閱讀 1225·2019-08-29 11:28
閱讀 1566·2019-08-26 10:39
閱讀 1315·2019-08-26 10:29
閱讀 639·2019-08-26 10:13