freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學]jaa程序設(shè)計(已修改)

2025-01-31 11:03 本頁面
 

【正文】 Java語言程序設(shè)計 第三章 類與對象 final class Trangle { double sideA,sideB,sideC。 void setSide(double a,double b,double c) { sideA=a。 sideB=b。 sideC=c。 } double getSideA( ) { return sideA。 } double getSideB( ) { return sideB。 } double getSideC( ) { return sideC。 } boolean isOrNotTrangle( ) { if ( sideA+sideBsideC amp。amp。 sideA+sideCsideB amp。amp。 sideB+sideCsideA ) return true。 else return false。 } } 類修 飾符 類聲明 成員變量 成員函數(shù) ? 類聲明 ? 類名須遵守的原則 ? 符合標識符規(guī)定 ? 若使用拉丁字母 ,首字母大寫 ? 若由幾個單詞復合而成 , 每個單詞的首字母大寫 ? 類修飾符 ? public 該類可以被任何其它類使用 ? abstract 該類是抽象類(包含抽象方法) ? abstract不能和 final疊用修飾類 ?不能有 private成員變量和方法 ? final 該類不能被繼承 ? 缺?。ㄓ押妙悾? 該類僅可被同一包中的類使用 ? static 內(nèi)部類 才允許聲明為靜態(tài)類 ? 靜態(tài)內(nèi)部類 ? 可直接作為一個普通類來使用,而不需實例一個外部類 class OuterCls { public static class InnerCls { InnerCls( ) { (this is inner class!)。 } } } public class InnerStatic { public static void main(String[ ] args) { ic=new ( )。 } } ? 類聲明(續(xù)) ? 說明繼承的父類 ? class 類名 extends 父類名 ? 所有類都是 Object的直接或間接子類 ? 說明實現(xiàn)的接口 ? class 類名 implements interface1,interface2,… ; ? 多個類可共享相同的接口 ? 一個類可實現(xiàn)多個接口 類的成員變量 ? 實例變量與類變量 ? 實例變量 ? 在 對象創(chuàng)建 時分配內(nèi)存空間,對象的空間回收時釋放內(nèi)存空間 ? 對于每個對象都有不同的存儲空間 ? 只能通過對象名訪問 ? 類變量 static ? 類被加載到內(nèi)存時 為類變量分配存儲空間, 程序退出運行 釋放空間 ? 該類的所有對象共享類變量 ? 可通過 類名 或?qū)ο竺L問 ? 實例變量與類變量(續(xù)) ? 靜態(tài)初始化器 ? static { 初始化語句 。 } ? 與構(gòu)造函數(shù)的區(qū)別 ?構(gòu)造函數(shù)是對每個新創(chuàng)建的 對象初始化 ,而靜態(tài)初始化器是對 類自身的靜態(tài)域進行初始化 。 ?構(gòu)造函數(shù)是在用 new運算符 產(chǎn)生新對象 時由系統(tǒng)自動執(zhí)行,而靜態(tài)初始化器則是在它所屬的 類加載到內(nèi)存 時由系統(tǒng)調(diào)用執(zhí)行。 ?靜態(tài)初始化器不是方法,沒有方法名、返回值和參數(shù)列表且 僅執(zhí)行一次 。 ?不能出現(xiàn) 非靜態(tài)域 或 調(diào)用非靜態(tài)方法 class Point { static int numberOfPoints 。 int x。 int y。 int serialNumber。 static { numberOfPoints = 0。 } public Point(int newX, int newY) { x = newX。 y = newY。 numberOfPoints++。 serialNumber = numberOfPoints。 } void printStates() { (x=+x+, y=+y + , 序號: + serialNumber)。 } } import .*。 class PointDemo { public static void main (String[ ] args) { Point p1 = new Point(23, 94)。 ()。 (現(xiàn)在一共有 + + 個點 )。 Point p2 = new Point(34,67)。 ()。 (“現(xiàn)在一 共有 + +個點 )。 } } x=23, y=94, 序號: 1 現(xiàn)在一共有 1個點 x=34, y=67, 序號: 2 現(xiàn)在一共有 2個點 Point類 NumberOfPoints 類的其它代碼和靜態(tài)域 0 12x y serialNumber 23 94 P1 x y serialNumber 34 67 P2 1 2 ? 成員變量的非訪問控制符 ? static 靜態(tài)域 ? final 最終域 (常量) ? 需說明常量的數(shù)據(jù)類型且必須 初始化 且 僅一次 ?初始化必須在 定義處 或 構(gòu)造函數(shù) 中 ? 其值一經(jīng)初始化就 不可改變 (對于對象和數(shù)組來說是 引用 不可改變) ?由于所有類對象的常量成員,其數(shù)值都固定一 致,為了節(jié)省空間,常量通常聲明為 static ? volatile 易失域 ? 在被幾個并發(fā)線程共享時,可被幾個線程控制和修改 ? transient 暫時域 ? 當一個對象被串行化的時候, transient型變量的值不包括在串行化的表示中 示例 1 示例 轉(zhuǎn)向 public final class FinallyTest { private final int public FinallyTest() { } public FinallyTest(int para) { } public static void main(String[] args) { FinallyTest ft=new FinallyTest( )。 ()。 } } 在構(gòu)造函數(shù)中初始化 this(5)。 params=5。 params=para。 params。 =5。 (para)。 public void setParams(int p){ params=p。 } 僅能初始化一次 ! 不能調(diào)用函數(shù)進行初始化 無初始化 返回 ?在當前的 Java內(nèi)存模型下,線程可以把變量保存在本地內(nèi)存(比如機器的寄存器)中,而不是直接在主存中進行讀寫。 容易造成共享變量的不一致性 。 ? volatile指示 JVM,這個變量是 不穩(wěn)定 的,不能保存它的 私有拷貝 ,而應直接與 主存中 的共享成員變量交互。 ? volatile強迫 重讀 和 回寫 ? 當要訪問的共享變量已在 synchronized代碼塊中, 或者為 常量 時,不必使用 共享變量 主存 6 線程 1 線程 2 寄存器 寄存器 6 8 8共享變量 主存 6 線程 1 線程 2 6 8 8 volatile 6 888public class TestRaceCondition { private volatile int i = 1。 public void increase( ) { i++。 } public int getValue() { return i。 } } 線程 1 線程 2 共享變量 volatile 1 線程 3 線程 4 234通過同步機制或硬件 原語 CAS來解決 ! 返回 public class LoggingInfo implements { private Date loggingDate = new Date()。 private String uid。 private transient String pwd。 LoggingInfo(String user, String password) { uid = user。 pwd = password。 } public String toString( ) { String password=null。 if (pwd == null) { password = NOT SET。 } else { password = pwd。 } return logon info: \n + user: + uid + \n logging date : + ( ) + \n password: + password。 } } public class B6 { public static void main ( String args[ ] ){ LoggingInfo logInfo = new LoggingInfo (MIKE, MECHANICS)。 (( ))。 try { ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream())。 (logInfo)。 ( )。 } catch(Exception e) {//deal with exception} try { ObjectInputStream in =new ObjectInputStream( new FileInputStream())。 LoggingInfo logInfo1 = (LoggingInfo)( )。 (( ))。 } catch(Exception e) {//deal with exception} } } loggingDate uid pwd 當前日期 MIKE MECHANICS logInfo write 當前日期 MIKE NULL read 當前日期 MIKE NULL logInfo1 ? 在方法中使用 final型參數(shù) ? 可防止在方法中對形參的修改影響到實參 ? 方法的內(nèi)部類在用到方法中的形參時,此形參也必須聲明為 final才可使用 public class INClass{ void innerClass(final String str){ class IClass{ IClass(){ (str)。 } } IClass ic=new IClass()。 } public static void main(String[] args){ INClass inc=new INClass()。 (Hello)。 } } 示例 類的成員方法 ? 成員方法的非訪問控制符 ? 抽象方法 abstract ? 僅有方法聲明而無方法實現(xiàn) ? 使所有子類對外具有一個統(tǒng)一的接口 ? 所有抽象方法必須存在于抽象類中 ? abstract不能與 private、 final、 static疊用修飾方法 ? 靜態(tài)方法 static ? 實例方法 屬于對象 ,在不同對象空間中占用不同的空間;靜態(tài)方法 屬于類 ,在類第一次被調(diào)用時被裝載入內(nèi)存,為類對象所共享 ? 類方法在類的字節(jié)碼被 加載到內(nèi)存 時就分配了入口地址,而實例方法是為 類創(chuàng)建對象 后才被分配入口地址 ? 子類 不能重寫 父類的靜態(tài)方法,但在子類中可以聲明與父類靜態(tài)方法相同的方法 ? 僅能操縱 類變量 ,不能操縱實例變量 ? 僅能調(diào)用 類方法 ,不能調(diào)用實例方法 ? 可以使用 類名 調(diào)用靜
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1