亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初始化與清理 & 訪問權限 & 組合與繼承 & final、static

發布時間:2020-08-11 14:30:38 來源:ITPUB博客 閱讀:175 作者:PengSY_b 欄目:編程語言

                   一.內容簡介
1.初始化與清理
2.訪問權限
3.繼承概要
4.final,static
5.練習一

二.內容梳理
1.初始化與清理

1.1構造函數
構造函數:用來初始化成員變量的函數,沒有返回值,函數名與類名一致。
默認構造器:沒有參數的構造函數。類中如果沒有構造器,編譯器會自動創建 默認構造 器。
構造函數的嵌套:可以在構造器中調用被重載的其他構造器,用 this(parameter )調用。且只可以調用一個并放在起始處。
繼承中的構造函數:構造函數不會被繼承,子類的構造函數自動調用父類的默認構造函數,如果父類沒有默認構造函數,則手動調用父類的構造函數。super(parameter).


1.2重載
重載: 方法名相同,參數列表不同。與返回值無關,返回值無法區分,如果返回值不同,方法名相同,參數列表相同,編譯出錯。
重載的參數 匹配:對應類型對應匹配。如果匹配不到: (常數與char )當做int用來 匹配,其他的數據類型逐漸提升數據類型來匹配
重寫的返回類型必須一樣或協變,否則編譯錯誤。


1.3初始化
局部變量不初始化會報錯,成員變量有默認的初始化。
初始化順序:靜態優于非靜態,父類優先子類,變量優先于代碼塊優先于構造器。

  • 初始化與清理 & 訪問權限 & 組合與繼承 & final、static

靜態數據的初始化:靜態數據屬于類,只占用一份存儲區域,有標準的初值。靜態數據的初始化時間是(靜態數據被訪問或對象被創建時)


1.4清理
垃圾回收機制只釋放new的內存
類內定義finalize()方法,當垃圾回收發生時,finalize()被調用


(5)可變參數列表
例子:

點擊( 此處 )折疊或打開

  1. static void printArray(Object[] args){


  2. }

  3. printArray(1, 2, 3);

  4. printArray((Object[])new integer[](1, 2, 3));


——構造函數使用可變參數列表會與默認構造函數弄混


2.訪問權限

1.1

類內

包內(子類與非子類)

包外子類

包外非子類

Public

√    

Protected

×

默認

×

×

private

×

×

×

1.2修飾類只有public和默認
3.繼承概要
extends指明繼承關系,未說明隱式繼承Object.
向上轉型:子類可以作為實參傳入父類作為形參的方法。
this.value先找自己的成員,找不到去父類找的.
構造方法不會被繼承


4.final,static
1.1 final強調不變。static強調跟隨類。
1.2final
類不希望被繼承
方法不希望被重寫
變量不希望被改變
final修飾的值不一定是常量還是變量,DJ反編譯看。

1.3static
靜態變量
靜態方法: 不能訪問非靜態成員方法和非靜態成員變量
靜態代碼塊
static不允許修飾局部變量;



5.練習一
(1)需求
——汽車銷售人員銷售汽車,款式有凱越,君威
——汽車與款式和編號,款式編號不可修改
——汽車銷售人員有姓名
——銷售人員按車型及數量銷售

(2)代碼
AutoType.java

點擊( 此處 )折疊或打開

  1. package  biz ;


  2. public   class  AutoType  {

  3.      public   static   final   String  KAI_YUE  =   "凱越" ;

  4.      public   static   final   String  JUB_WEI  =   "君威" ;

  5. }



Auto.java

點擊( 此處 )折疊或打開

  1. package  biz ;


  2. public   class  Auto  {

  3.      private   String  autoType ;      // 款式

  4.      private   String  autoNumber ;      // 編號

  5.      private   boolean  isSelled ;

  6.     Auto ( String  autoType ,   String  autoNumber ) {

  7.          this . autoType  =  autoType ;

  8.          this . autoNumber  =  autoNumber ;

  9.          this . isSelled  =  false ;      // 默認未銷售

  10.      }

  11.      public   String  getAutoType ( )   {

  12.          return  autoType ;

  13.      }

  14.      public   String  getAutoNumber ( )   {

  15.          return  autoNumber ;

  16.      }

  17.      public   boolean  isSelled ( )   {

  18.          return  isSelled ;

  19.      }

  20.      public   void  setSelled ( boolean  isSelled )   {

  21.          this . isSelled  =  isSelled ;

  22.      }

  23.     

  24.     

  25. }



seller.java

點擊( 此處 )折疊或打開

  1. package  biz ;


  2. public   class  Seller  {

  3.      private   String   name ;

  4.     

  5.     Seller ( String   name ) {

  6.          this . name   =   name ;

  7.      }

  8.      /**

  9.      * 

  10.      * @param autos 所用的車

  11.      * @param autoType 要銷售的類型

  12.      * @param num 要銷售的數量

  13.      */

  14.      public   void  sell ( Auto [ ]  autos ,   String  autoType , int  num ) {

  15. //        if(auto == null || autoType == null || num < 0) {

  16. //            

  17. //        }

  18.          int  selledNum  =  0 ;

  19.          for ( Auto curAuto :  autos )   {

  20.              int  i  =  0 ;

  21.             i + + ;

  22.              if ( ! curAuto . isSelled ( )   & &  curAuto . getAutoType ( ) . equals ( autoType )

  23.                      & & selledNum  <  num )   {

  24.                 curAuto . setSelled ( true ) ;

  25.                  System . out . println ( "準備售出-" +  curAuto . getAutoType ( )   +   "-"

  26.                          + curAuto . getAutoNumber ( ) ) ;

  27.                 selledNum + + ;

  28.              }

  29.          }

  30.          if ( selledNum  <  num )   {

  31.              System . out . println ( "庫存不夠。"   +   "只可售出"   +  selledNum  +   "輛"   +  autoType ) ;

  32.          }

  33.         

  34.      }

  35.      public   String   getName ( )   {

  36.          return   name ;

  37.      }

  38.      public   void   setName ( String   name )   {

  39.          this . name   =   name ;

  40.      }

  41.      public   static   void  main ( String [ ]  args )   {

  42.         Seller s1  =   new  Seller ( "小明" ) ;

  43.         Auto auto1  =   new  Auto ( AutoType . JUB_WEI ,   "001" ) ;

  44.         Auto auto2  =   new  Auto ( AutoType . JUB_WEI ,   "002" ) ;

  45.         Auto [ ]  autos  =   new  Auto [ 2 ] ;  

  46.         autos [ ]   =  auto1 ;

  47.         autos [ 1 ]   =  auto2 ;

  48.         s1 . sell ( autos ,  AutoType . JUB_WEI ,  3 ) ;

  49.      }

  50.     

  51. }



三.總結與隨筆
(1)entity層:只有屬性沒有方法,主要用于數據跨層傳輸
(2)同一塊作用域,局部變量優先于成員變量。
(3)char 類型可以' + ', ' - '
(4)方法傳參:基本類型傳值,函數內改變參數值對函數外無影響。引用類型傳引用,函數內改變參數值對函數外有影響。
(5)刪掉set方法,private修飾的成員變量只讀

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

望江县| 乌鲁木齐县| 分宜县| 东辽县| 英超| 错那县| 汾阳市| 宁河县| 陵水| 香格里拉县| 宜兰市| 南陵县| 吉林市| 沙河市| 山阳县| 镶黄旗| 北碚区| 泸水县| 吴忠市| 新宁县| 松阳县| 达孜县| 浮山县| 湘阴县| 雷山县| 松原市| 枞阳县| 清镇市| 扶风县| 新平| 林芝县| 科尔| 图木舒克市| 滦南县| 罗平县| 会昌县| 大宁县| 沧州市| 赤水市| 内黄县| 延川县|