第一篇:Java基礎語法總結2
Java基礎語法總結2
三、運算符
Java基 本 的 運 算 符 按功能分有 下 面 幾 類 : 1.算 術 運 算 符(+,-,*,/,%,++,--)Java對 加 運 算 符 進 行 了 擴 展 ,使 它 能 夠 進 行 字 符 串 的連 接,如 “abc”+“de”,得到 串 “abcde”。與 C、C++不 同 ,對 取 模 運 算 符 %來 說 ,其 操 作 數 可 以為浮點 數 , 如37.2%10=7.2。i++與 ++i的 區 別:i++在 使 用 i之 后 ,使 i的 值 加 1,因 此 執 行 完 i++后 ,整 個 表達式的 值 為 i,而 i的 值變 為 i+1;++i在 使 用 i之 前 ,使 i的 值 加 1,因 此 執 行 完 ++i后 ,整 個 表達式和 i的 值 均 為 i+1。
2.關 系 運 算 符(>,<,>=,<=,==,!=)該運算符的特點是:運算完的結果,要么是true,要么是false。Java中 ,任 何 數 據 類 型 的 數 據(包 括 基 本 類 型 和 組 合 類 型)都可 以 通 過 ==或!=來 比 較 是 否 相 等(這 與 C、C++不 同)。關 系 運 算 符 用 來 比 較 兩 個 值 ,返 回 布 爾 類 型 的值true或 false,而不是C、C++中 的 1或 0。
3.布 爾 邏 輯 運 算 符(& | ^!&& ||)邏輯運算符除了!外都是用于連接兩個boolean類型表達式。&: 只有兩邊都為true結果是true。否則就是false。|:只要兩邊都為false結果是false,否則就是true ^:異或:和或有點不一樣。兩邊結果一樣,就為false。兩邊結果不一樣,就為true.& 和 &&區別: & :無論左邊結果是什么,右邊都參與運算。&&:短路與,如果左邊為false,那么右邊不參數與運算。| 和|| 區別:|:兩邊都運算。
||:短路或,如果左邊為true,那么右邊不參與運算。
4.位 運 算 符(>>,<<,>>>,&,|,^,~)用于操作二進制位的運算符,如2*8 = 2<<3。>>>(無符號右移)5.賦 值 運 算 符(= +=-= *= /= %=)6.條 件 運 算 符(?:)7.其 它(包 括 分 量 運 算 符 · ,下 標 運 算 符 [],實 例 運 算 符 instanc eof,內 存 分 配運 算 符 new,強 制 類 型 轉 換 運 算 符(類 型), 方 法調 用 運 算 符()等)例子:對兩個變量的數據進行互換。不需要第三方變量。int a = 3,b = 5;-->b = 3,a = 5;a = a + b;a = 8;b = ab;a = 5;a = a ^ b;//
b = a ^ b;//b = a ^ b ^ b = a a = a ^ b;//a = a ^ b ^ a = b;
Java 中共有 54 種運算符,按優先級可以分為 14 級:
優先級 操作符 含義 關聯性 用法
--1 [ ] 數組下標 左 array_name[expr].成員選擇 左 object.member
()方法參數 左 method_name(expr_list)()實例構造 左 class_name(expr_list)++ 后綴自增 左 lvalue++--后綴自減 左 lvalue--2 ++ 前綴自增 右 ++rvalue--前綴自減 右--lvalue ~ 按位取反 右 ~expr!邏輯非 右!expr + 一元加 右 +expr 減 左 expr-expr
+ 字符串連接 左 strExpr + strExpr 6 >> 有符號右移 左 expr >> distance >>> 無符號右移 左 expr >>> distance 7 < 小于 左 expr < expr <= 小于等于 左 expr <= expr > 大于 左 expr > expr >= 大于等于 左 expr >= expr
instanceof 類型比較 左 ref instanceof refType == 等于 左 expr == expr!= 不等于 左 expr!= expr & 整數按位與 左 integralExpr & integralExpr & 布爾與 左 booleanExpr & booleanExpr 9 ^ 整數按位異或 左 integralExpr ^ integralExpr ^ 布爾異或 左 booleanExpr ^ booleanExpr 10 | 整數按位或 左 integralExpr | integralExpr | 布爾或 左 booleanExpr | booleanExpr 11 && 邏輯與 左 booleanExpr && booleanExpr 12 || 邏輯或 左 booleanExpr || booleanExpr 13 ? : 條件運算 右 booleanExpr ? expr : expr 14 = 賦值 右 lvalue = expr *= 乘賦值 右 lvalue *= expr /= 除賦值 右 lvalue /= expr %= 模賦值 右 lvalue %= expr += 加賦值 右 lvalue += expr += 字符串連接賦值 右 lvalue += expr-= 減賦值 右 lvalue-= expr <<= 左移賦值 右 lvalue <<= expr >>= 有符號右移賦值 右 lvalue >>= expr >>>= 無符號右移賦值 右 lvalue >>>= expr &= 整數按位與賦值 右 lvalue &= expr &= 布爾與賦值 右 lvalue &= expr |= 整數按位或賦值 右 lvalue |= expr |= 布爾或賦值 右 lvalue |= expr ^= 整數按位異或賦值 右 lvalue ^= expr ^= 布爾異或賦值 右 lvalue ^= expr
運算符不但有優先級,還有關聯性。上表中關聯性為“左”表示該表達式從左邊開始進行運算;關聯性為“右”表示該表達式從右邊開始進行運算。
四、流程控制語句(If、switch、do while、while、for、break、continue)1.當判斷數據范圍,獲取判斷運算結果boolean類型時,需要使用if;當判斷固定個數的值的時候,可以使用if,也可以使用switch。但是建議使用switch,效率相對較高。switch(變量){ case 值:要執行的語句;break;…
default:要執行的語句;} 工作原理:用小括號中的變量的值依次和case后面的值進行對比,和哪個case后面的值相同了就執行哪個case后面的語句,如果沒有相同的則執行default后面的語句; 細節:1):break是可以省略的,如果省略了就一直執行到遇到break 為止; 2):switch 后面的小括號中的變量應該是byte,char,short,int四種類型中的一種; 3):default可以寫在switch結構中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會從default開始執行直到第一個break出現。
2.當某些語句需要執行很多次時,就用循環結構。
while和for可以進行互換。區別在于:如果需要定義變量控制循環次數。建議使用for。因為for循環完畢,變量在內存中釋放。
3.break:作用于switch,和循環語句,用于跳出,或者稱為結束。break語句單獨存在時,下面不要定義其他語句,因為執行不到,編譯會失敗。當循環嵌套時,break只跳出當前所在循環。要跳出嵌套中的外部循環,只要給循環起名字即可,這個名字稱之為標號。4.continue:只作用于循環結構,繼續循環用的。作用:結束本次循環,繼續下次循環。該語句單獨存在時,下面不可以定義語句,執行不到。
第二篇:java基本語法總結
一、標識符及字符集
Java語言規定標識符是以字母、下劃線“_”或美元符號“$”開始,隨后可跟數字、字母、下劃線或美元符號的字符序列。Java標識符大小寫敏感,沒有長度限制,可以為標識符取任意長度的名字,但關鍵字不能作為標識符。為增強程序可讀性,Java作如下的約定:
1.類、接口:通常使用名詞,且每個單詞的首字母要大寫
2.方法:通常使用動詞,首字母小寫,其后用大寫字母分隔每個單詞 3.常量:全部大寫,單詞之間用下劃線分隔
4.變量:通常使用名詞,首字母小寫,其后大寫字母分隔每個單詞,避免使用$符號。
Java語言使用國際字符集(Unicode)。Unicode字符集定義了一套國際標準字符集。通常的ASCII碼是8位的,而Unicode字符集中的每個字符占16位,即2個字節,整個字符集共包括65336個字符,兼容ASCII,排在Unicode字符集最前面的256個字符就是ASCII碼。Unicode除了可以表示256個ASCII碼外,還可以表示漢字、拉丁語、希臘字母、朝鮮語等。
Java標識符總結:1.由字母、數字、_或$組成,不能以數字開頭;2.嚴格區分大小寫;3.長度不限
二、關鍵字
Java常用關鍵字列表如下: 關鍵字
含義
用在類的聲明中來指明一個類是不能被Abstract
實例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實現,但是需要在子類中被實現
Boolean Break
布爾類型,只有true或者false 停止,并跳出本層循環
8bit(位),也就是8個1/0表示,即二進制 Byte
用來定義一組分支選擇,如果某個值和Case
switch中給出的值一樣,就會從該分支開始執行。
用來聲明當try語句塊中發生運行時錯誤或非運行時異常時運行的一個塊。用來定義一個字符類型 類
在Java中,const是作為保留字以備擴充,同樣的保留字以備擴充還有goto.你Const
可以用final關鍵字.final也可以用于聲明方法或類,被聲明為final的方法或類不能被繼承。一般C里是const 對應java用final
用來打斷當前循環過程,從當前循環的最Continue
后重新開始執行,如果后面跟有一個標簽,則從標簽對應的地方開始執行。配合switch跟case使用,但case中沒Default
有找到匹配時,則輸出或者為default后面的語句。
用來聲明一個循環,這個循環的結束條件可以通過while關鍵字設置 用來定義一個double類型的變量 如果if語句的條件不滿足就會執行該語句。Catch
Char Class
Do
Double
Else
Extends
extends 繼承 類X 通過extend 類Y來
添加功能,或者添加變量,或者添加方法,或者覆蓋類Y的方法。一個接口extends另外一個接口來添加方法。
False
假的
一個Java語言的關鍵字。你只能定義一個實體一次,以后不能改變它或繼承它。Final
更嚴格的講:一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變量不能改變其初始值。
用來執行一段代碼不管在前面定義的try語句中是否有異常或運行時錯誤發生。用來定義一個浮點數變量
用來聲明一個循環。程序員可以指定要循環的語句,推出條件和初始化變量。雖然為Java關鍵字,但是僅在C語言里面使用,Java不提供Goto語句
Java編程語言的一個關鍵字,用來生成一If
個條件測試,如果條件為真,就執行if下的語句。
Java(TM)編程語言的一個關鍵字,在類的Implements
聲明中是可選的,用來指明當前類實現的接口。
Java(TM)編程語言的一個關鍵字,在源文Import
件的開始部分指明后面將要引用的一個類或整個包,這樣就不必在使用的時候加Finally
Float
For
Goto
上包的名字。
一個二操作數的Java(TM)語言關鍵字,用Instaceof
來測試第一個參數的運行時類型是否和第二個參數兼容。
Java(TM)的一個關鍵字,用來定義一個整形變量
Java(TM)的一個關鍵字,用來定義一系列Interface 的方法和常量。它可以被類實現,通過implements關鍵字。
Long Native New
用來定義一個long類型的變量 本地方法。
用來創建一個新的方法
當String類型沒賦值時,該變量的值為Null 包的意思
用在方法或變量的聲中。它表示這個方法或變量只能被這個類的其它元素所訪問。在方法和變量的聲明中使用,它表示這個Protected
方法或變量只能被同一個類中的,子類中的或者同一個包中的類中的元素所訪問。在方法和變量的聲明中使用,它表示這個方法或變量能夠被其它類中的元素訪問。Int
Null
Package
Private
Public
Return
用來結束一個方法的執行。它后面可以跟
一個方法聲明中要求的值。
Short
用來定義一個short類型的變量。用來定義一個變量為類變量。類只維護一個類變量的拷貝,不管該類當前有多少個Static
實例。“static” 同樣能夠用來定義一個方法為類方法。類方法通過類名調用而不是特定的實例,并且只能操作類變量。
Super
父類
是一個選擇語句,與case,default,break一起使用。線程同步
用來代表它出現的類的一個實例。this可以用來訪問類變量和類方法。
允許用戶拋出一個exception對象或者任何實現throwable的對象
用在方法的聲明中來說明哪些異常這個Throws
方法是不處理的,而是提交到程序的更高一層。
用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,Transient
transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。Switch
Synchronized
This
Threadsafe
Throw True 真的
用來定義一個可能拋出異常語句塊。如果一個異常被拋出,一個可選的catch語句Try 塊會處理try語句塊中拋出的異常。同時,一個finally語句塊會被執行,無論一個異常是否被拋出。
用在Java語言的方法聲明中說明這個方Void 法沒有任何返回值。“void”也可以用來表示一句沒有任何功能的語句。
用在變量的聲明中表示這個變量是被同時運行的幾個線程異步修改的。用來定義一段反復執行的循環語句。循環的退出條件是while語句的一部分。volatile
while
分類如下:
1.訪問控制:private 私有的 protected 受保護的 public 公共的
2.類、方法和變量修飾符abstract 聲明抽象 class 類 extends 擴允,繼承 final 終極,不可改變的implements實現 interface 接口 native 本地 new 新,創建 static 靜態 strictfp 嚴格,精準synchronized 線程,同步 transient 短暫 volatile 易失
3.程序控制語句 break 跳出循環 continue 繼續 return 返回 do 運行 while 循環 if 如果 else 反之 for 循 instanceof 實例 switch 開關 case 返回開關里的結果 default 默認
4.錯誤處理 catch 處理異常 finally 有沒有異常都執行 throw 拋出一個異常對象
throws 聲明一個異常可能被拋出 try 捕獲異常 5.包相關import 引入 package 包
6.基本類型 boolean 布爾型 byte 字節型 char 字符型 double 雙精度 float 浮點 int 整型 long 長整型 short 短整型 null 空 true 真 false 假 7.變量引用 super 父類,超類 this 本類 void 無返回值
注意:
1、所有的java關鍵字都是小寫的
2、goto 和const 是保留關鍵字,在java 中沒使用
3、strictfp 和volatile 不常用; sizeof、then 不是關鍵字。4、true,false,null 不是嚴格意義上的關鍵字,而是literals
三、運算符
Java基 本 的 運 算 符 按功能分有 下 面 幾 類 : 1.算 術 運 算 符(+,-,*,/,%,++,--)Java對 加 運 算 符 進 行 了 擴 展 ,使 它 能 夠 進 行 字 符 串 的連 接,如 “abc”+“de”,得到 串 “abcde”。與 C、C++不 同 ,對 取 模 運 算 符 %來 說 ,其 操 作 數 可 以為浮點 數 , 如37.2%10=7.2。i++與 ++i的 區 別:i++在 使 用 i之 后 ,使 i的 值 加 1,因 此 執 行 完 i++后 ,整 個 表達式的 值 為 i,而 i的 值變 為 i+1;++i在 使 用 i之 前 ,使 i的 值 加 1,因 此 執 行 完 ++i后 ,整 個 表達式和 i的 值 均 為 i+1。
2.關 系 運 算 符(>,<,>=,<=,==,!=)該運算符的特點是:運算完的結果,要么是true,要么是false。Java中 ,任 何 數 據 類 型 的 數 據(包 括 基 本 類 型 和 組 合 類 型)都可 以 通 過 ==或!=來 比 較 是 否 相 等(這 與 C、C++不 同)。關 系 運 算 符 用 來 比 較 兩 個 值 ,返 回 布 爾 類 型 的值true或 false,而不是C、C++中 的 1或 0。
3.布 爾 邏 輯 運 算 符(& | ^!&& ||)邏輯運算符除了!外都是用于連接兩個boolean類型表達式。&: 只有兩邊都為true結果是true。否則就是false。|:只要兩邊都為false結果是false,否則就是true ^:異或:和或有點不一樣。兩邊結果一樣,就為false。兩邊結果不一樣,就為true.& 和 &&區別: & :無論左邊結果是什么,右邊都參與運算。&&:短路與,如果左邊為false,那么右邊不參數與運算。| 和|| 區別:|:兩邊都運算。
||:短路或,如果左邊為true,那么右邊不參與運算。4.位 運 算 符(>>,<<,>>>,&,|,^,~)用于操作二進制位的運算符,如2*8 = 2<<3。>>>(無符號右移)5.賦 值 運 算 符(= +=-= *= /= %=)6.條 件 運 算 符(?:)7.其 它(包 括 分 量 運 算 符 · ,下 標 運 算 符 [],實 例 運 算 符 instanc eof,內 存 分 配運 算 符 new,強 制 類 型 轉 換 運 算 符(類 型), 方 法調 用 運 算 符()等)例子:對兩個變量的數據進行互換。不需要第三方變量。
int a = 3,b = 5;-->b = 3,a = 5;a = a + b;a = 8;b = ab;a = 5;a = a ^ b;//
b = a ^ b;//b = a ^ b ^ b = a a = a ^ b;//a = a ^ b ^ a = b;
Java 中共有 54 種運算符,按優先級可以分為 14 級:
優先級 操作符 含義 關聯性 用法
--1 [ ] 數組下標 左 array_name[expr].成員選擇 左 object.member
()方法參數 左 method_name(expr_list)()實例構造 左 class_name(expr_list)++ 后綴自增 左 lvalue++--后綴自減 左 lvalue--2 ++ 前綴自增 右 ++rvalue--前綴自減 右--lvalue ~ 按位取反 右 ~expr!邏輯非 右!expr + 一元加 右 +expr減 左 expr-expr
+ 字符串連接 左 strExpr + strExpr 6 >> 有符號右移 左 expr >> distance >>> 無符號右移 左 expr >>> distance 7 < 小于 左 expr < expr <= 小于等于 左 expr <= expr > 大于 左 expr > expr >= 大于等于 左 expr >= expr
instanceof 類型比較 左 ref instanceof refType == 等于 左 expr == expr!= 不等于 左 expr!= expr & 整數按位與 左 integralExpr & integralExpr & 布爾與 左 booleanExpr & booleanExpr 9 ^ 整數按位異或 左 integralExpr ^ integralExpr ^ 布爾異或 左 booleanExpr ^ booleanExpr 10 | 整數按位或 左 integralExpr | integralExpr | 布爾或 左 booleanExpr | booleanExpr 11 && 邏輯與 左 booleanExpr && booleanExpr 12 || 邏輯或 左 booleanExpr || booleanExpr 13 ? : 條件運算 右 booleanExpr ? expr : expr 14 = 賦值 右 lvalue = expr *= 乘賦值 右 lvalue *= expr /= 除賦值 右 lvalue /= expr %= 模賦值 右 lvalue %= expr += 加賦值 右 lvalue += expr += 字符串連接賦值 右 lvalue += expr-= 減賦值 右 lvalue-= expr <<= 左移賦值 右 lvalue <<= expr >>= 有符號右移賦值 右 lvalue >>= expr >>>= 無符號右移賦值 右 lvalue >>>= expr &= 整數按位與賦值 右 lvalue &= expr &= 布爾與賦值 右 lvalue &= expr |= 整數按位或賦值 右 lvalue |= expr |= 布爾或賦值 右 lvalue |= expr ^= 整數按位異或賦值 右 lvalue ^= expr ^= 布爾異或賦值 右 lvalue ^= expr
運算符不但有優先級,還有關聯性。上表中關聯性為“左”表示該表達式從左邊開始進行運算;關聯性為“右”表示該表達式從右邊開始進行運算。
四、流程控制語句(If、switch、do while、while、for、break、continue)1.當判斷數據范圍,獲取判斷運算結果boolean類型時,需要使用if;當判斷固定個數的值的時候,可以使用if,也可以使用switch。但是建議使用switch,效率相對較高。switch(變量){ case 值:要執行的語句;break;…
default:要執行的語句;} 工作原理:用小括號中的變量的值依次和case后面的值進行對比,和哪個case后面的值相同了就執行哪個case后面的語句,如果沒有相同的則執行default后面的語句; 細節:1):break是可以省略的,如果省略了就一直執行到遇到break 為止; 2):switch 后面的小括號中的變量應該是byte,char,short,int四種類型中的一種; 3):default可以寫在switch結構中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會從default開始執行直到第一個break出現。
2.當某些語句需要執行很多次時,就用循環結構。
while和for可以進行互換。區別在于:如果需要定義變量控制循環次數。建議使用for。因為for循環完畢,變量在內存中釋放。
3.break:作用于switch,和循環語句,用于跳出,或者稱為結束。break語句單獨存在時,下面不要定義其他語句,因為執行不到,編譯會失敗。當循環嵌套時,break只跳出當前所在循環。要跳出嵌套中的外部循環,只要給循環起名字即可,這個名字稱之為標號。4.continue:只作用于循環結構,繼續循環用的。作用:結束本次循環,繼續下次循環。該語句單獨存在時,下面不可以定義語句,執行不到。
第三篇:JAVA基礎總結
JAVA基礎總結
轉眼間,已經來到這里學習半年了,而現在我們對于JAVA學習才算是真正的開始。一開始接觸的時候我發現這個和C語言的基本語法幾乎一模一樣的,老師說:JAVA語言本來就是C++語言發展過來的,而C++是從C語言發展來的,C C++ 還有JAVA雖然是不同的三種語言,但是其實他們的基本語法是一樣的,但是它們卻有巨大的區別,這個區別主要是體現在思想上。
都說C語言是面向過程的語言,C++ C#和JAVA是面向對象的編程,其實就是思維方式稍微改了一下子,面向過程的語言主要是著重于算法,面向對象著重于邏輯而已。
這個教我們的老師是張成峰老師,張成峰是個很負責的老師,雖然JAVA基礎其實和C語言基礎差不多,但是仔細學學還是能找出很多不同的細節的,于是大家的問題就很多,張老師幾乎就是手把手的教我們,所以整體來說JAVA基礎學得挺扎實的。
我在這本書的學習不是挺好,聯系得少了,所以對代碼也不是特別熟悉。而且JAVA是一門重概念的書,對于我來說,概念是我的要害,理論知識也是我最怕學習的,所以學習這本書對我來說很是艱難,聽了很久的課,代碼寫得出來,但是理論知識幾乎一點也不明白,結果就造成了這次筆試考的不好。
筆試考的不好,機試也因為我的粗心沒有考好,所以這次的成績不好。
學習JAVA基礎后,還要在學習的過程中對每個知識都要用心和細心,當然最該注重的地方就是應該提高我對理論知識的學習,要多看書,也要多敲敲代碼,這些就是提高學習知識全面的方法。
下一本書學習的是JAVAOO算是JAVA的一個重要的內容了,這才會真正的接觸JAVA的核心課程,在這本書里我要好好的理解理論知識,仔細的學習每個知識。
第四篇:Java基礎總結
? 基本數據類型
? 變量單元直接存放數據
? 賦值和傳參的方式:傳值,即傳遞副本
? 比較相等使用關系運算符“==”
? 引用數據類型
? 變量單元存放引用即對象地址,而數據(對象)在另一內存區域存放。
? 賦值和傳參的方式:傳引用(傳遞對象的地址),即傳遞對象本身。
? 使用關系運算符“==”比較兩個引用類型變量,比較的是地址,如果比較結果為
真,說明兩個變量引用了同一對象。
? 比較兩個對象是否相等應使用equals方法
? Java是面向對象的語言,開發Java程序就是開發Java類,Java的變量定義、方法(函
數)和語句都必須在類中書寫,“無類即無Java”。
? 類的實例成員
屬性(成員變量):直接定義在類體中的變量(注:在方法或語句塊中定義的變量不是屬性)
方法:直接定義在類體中的方法。
類成員:直接定義在類體中的內部類,即類成員。
注:對象的成員是從屬于對象的,必須通過對象訪問,在Java中不存在脫離對象和類而獨立存在的屬性和方法。
? 類、方法、語句三者的關系:
類中包含方法,方法中包含語句;方法中不能嵌套方法;語句不能直接寫在類體中。
? 變量的作用域
? 局部變量-方法的參數、方法體中定義的變量、語句塊中定義的變量,僅在所定義的方法體或語句塊中有效。
? 屬性-在整個類體中有效。
? 公有的屬性-其它類可以本類對象訪問。
? 私有的屬性-僅限本類內訪問
? 局部變量(無論基本類型還是引用類型)在棧內存中,對象在堆內存中。注:引用類型的局部變量內存放是對象的引用(即地址),而對象在堆內存中。
? 方法的重載-在同一類中多個方法同名的語法現象,方法重載應符合以下條件:
? 方法同名
? 參數有所不同(即類型、個數和順序三者至少有一個不同)
注:方法是否重載不考慮返回類型等其它方面。
? 包和訪問修飾符
? 包-類的目錄結構,主要用途是方便類的管理。
? 類的簡稱:不含包名的類名
? 類的全限定名稱(類的全稱):帶包名的類名。
? 訪問修飾符
? private-僅限本類內訪問
? public-任何類都能夠訪問
? 默認-限本包的類訪問
? protected--限本包的類訪問和子類的訪問
? 類的成員(屬性、方法和成員內部類)可以使用四種訪問修飾符,頂級外部類僅能
使用public和默認兩種修飾符。
? 數組
? 基本類型的數組的元素放的是數據
? 對象數據的元素放的是對象的引用
? 二維數組實際上是一個維數組,而其每個元素又是一個一維數組。
? 構造方法-與類名同名并且無返回類型的方法
? 構造方法的作用是創建對象,僅能通過new關鍵字調用。
? 類中未顯式定義構造方法時,類中會有默認的構造方法(即一個public、無參的構
造方法);類中一旦定義顯式定義構造方法,將不再產生默認的構造方法。
? 構造方法可以重載
? 構造方法只能可以使用四個訪問修飾符,不可以使用其它修飾符(如static、final
等)。
? this關鍵字
? this表示本對象或對象自身的引用
? 通過this可以調用本類的成員方法和屬性
? 通過this可以調用本類的構造方法,this調用構造方法的語句必須寫在構造方法的第一句。
? 實例成員和靜態成員
? 類的成員(屬性、方法和成員類)可劃分為靜態成員和實例成員。
? 實例成員是屬于對象的,隨著對象的創建而存在,隨著對象的銷毀而銷毀。? 靜態成員是屬于類的,隨著類的加載而存在,隨著類的銷毀而銷毀。
? 使用static修飾的成員是靜態成員,未使用static修飾的成員是實例成員。? 靜態成員內不能使用this關鍵字。
? this表示當前對象的引用。
? 對象的初始化
? 第一:實例屬性賦默認值
? 第二:實例屬性賦初值
? 第三:執行對象初始化塊
? 第四:執行構造方法
? 類的初始化
? 第一:靜態屬性賦默認值
? 第二:靜態屬性賦初值
? 第三:執行靜態塊
? 繼承的基本概念
? Java僅支持單繼承
?
?
?
?
? ? 如果一個類沒有顯式繼承任何類,則隱式繼承java.lang.Object類 ? 子類擁有父類的一切,子類對象由兩部分構成:父類對象部分和子類個性化的部分。? 子類并不能訪問父類的一切: ? 子類可以訪問父類的public成員和protected成員 ? 子類不可以訪問父類的private成員 ? 僅當子類與父類同在一包時,子類方可以訪問父類的默認訪問控制的成員。繼承與類和對象的初始化 ? 構造子類對象時,首先構造父類對象,其次構造子類個性化部分,兩者共同構成完整的子類對象,即首先進行父類對象的初始化,在初始化子類對象(個性化)部分。? 子類構造方法的執行首先調用父類的構造方法。? 若在子類構造方法中無顯式調用父類構造方法的語句,則系統默認調用父類中可訪問的無參的構造方法,如果這時候父類中恰好沒有這樣的構造方法,則編譯出錯。? 在子類的構造方法中可以通過super關鍵字調用父類構造方法。這樣的調用語句只能出現在子類構造方法的第一句。? 關于初始化的順序 ? 初始化父類 ? 初始化子類 ? 初始化父類對象 ? 初始化子類對象 繼承與類型轉換 ? 子類型對象可以自動轉型為父類型 ? 父類型引用某個子類型對象時,可以強制轉化為這個具體的子類型 方法重寫 ? 在繼承的情況下,子類的實例方法與父類的實例方法的方法名稱、參數、返回類型、throws聲明完全一致,并且該子類方法的訪問權限不低于父類方法的訪問權限,即方法重寫(子類方法重寫了父類方法),也稱方法覆蓋。? 方法重寫僅存在于父子類中的實例方法,靜態方法沒有重寫的概念。? 當通過子類型對象執行重寫方法時,將始終表現為子類的行為,而且無論引用對象的變量是父類型還是子類型,也無論是直接調用還是通過父類型其它方法間接調用,都將如此。? final修飾的方法不可以被重寫 ? final修飾的類不可以被繼承 隱藏成員變量 ? 如果子類和父類中定義了同名稱的成員變量,則稱子類隱藏了父類的成員變量 ? 通過父類方法訪問隱藏的成員變量時,將獲得父類成員變量 ? 通過子類方法訪問隱藏的成員變量時,將獲得子類成員變量 ? 通過父類型的引用直接訪問隱藏的成員變量時,將獲得父類成員變量 ? 通過子類型的引用直接訪問隱藏的成員變量時,將獲得子類成員變量 super關鍵字
? super僅能用于子類中表示本對象的父對象部分
? super可以調用父類型的構造方法
? Super可以調用父類的成員
? Super不可以使用在靜態上下文中
? Super不可以做為參數傳遞,不可以做為返回值返回。
? 當方法重寫時,或父類成員變量被隱藏時,子類中只能通過super訪問父類方法和
父類成員變量
? final關鍵字
? 用于變量,表示變量的值不可改變
? 用于類,表示類不可被繼承
? 用于方法,表示方法不可以被重寫
? 關于final變量的初始化時機
? 局部變量:聲明的時候初始化
? 實例成員變量:聲明、對象初始化塊和構造方法三處之一
? 靜態成員變量:聲明、靜態塊兩處之一
? 抽象類
? 抽象類可以包含抽象方法,也可以不包含抽象方法
? 含有抽象方法的類必須定義為抽象類
? 抽象類有構造方法
? 抽象類不能夠實例化
? 通過抽象類可以調用其靜態成員
? 抽象類是需要由子類繼承的,因此抽象類不允許是final類
? 抽象方法
? 抽象方法沒有方法體,包括一對空的大括號也不允許有
? 抽象方法必須是實例方法,抽象方法不允許是final的? 抽象類與繼承
? 抽象類可以被繼承
? 若抽象類的子類是非抽象類,則該子類必須實現(重寫)其父類的所有抽象方法 ? 若抽象類的子類也是抽象類,則該子類可以不實現(重寫)其父類的全部或部分抽象
方法。
? 接口
? 接口也是數據類型,可以將其理解為“純”抽象類
? 接口不是類,也沒有構造方法,不能夠實例化
? 接口中的屬性一律是public、static、final的,并可以省略這三個關鍵字
? 接口的方法一律是public、abstract的,并且可以省略這兩個關鍵字
? 接口中可以不包含任何屬性和方法
? 接口與實現
? 接口不是類,因此接口與類的關系不是“繼承”關系,而是“實現”關系,我們可
以將實現理解為繼承(盡管這并不恰當)
? 如果接口的實現類是抽象類,則該實現類可以不實現接口的全部或部分方法 ? 如果接口的實現類是非抽象類,則該實現類必須實現接口的全部方法
? 一個類可以實現多個接口
? 接口與繼承
? 接口之間可以相互繼承
? 一個接口可以繼承多個接口
? 接口與類型轉換
? 接口的的子類型對象可以自動向上轉型為接口類型
? 接口的子類型指:是接口的實現類或者接口的子接口
? 如果變量引用的對象實際是某個接口的實現類對象,而變量的類型不是這個接口的子類型,那么則可以強制轉換為這個接口類型。
? 異常的類層次結構
? Throwable錯誤類,表示不可恢復的致命錯誤
? Exception運行時異常,此類異常可以不做顯式處理
? 非運行時異常catch
? 聲明拋出 在方法頭通過throws聲明可能拋出的異常類型
? 異常機制的五個關鍵字
? try catch finally throw throws
? 如何使用
? try-catch
? try-catch-finally注:只要try執行,其對應的finally塊才必然執行
? try-finally注:只要try執行,其對應的finally塊才必然執行
? throw 主動拋出一個異常
? throws 用在方法聲明頭部,聲明方法可能拋出異常
? finally代碼塊多用于書寫資源回收代碼
? Java集合類(集合框架)
? Collection接口
? List接口 允許重復元素,元素有索引序號,并按放入元素的次序編號
? ArrayList 線性表結構,查找快,增刪慢
? LinkedList 鏈表結構,查找慢,增刪快
? Vector 同步,查找、增刪性能都不高。
? Set接口 不允許重復元素,元素無索引編號
? HashSet 元素散列存放
? TreeSet元素按自然順序排序(即從小到大排序)
? Map接口
? HashMap
? 允許null值和null鍵
? 不同步
? Hashtable <--Properties
? 不允許null值和null鍵
? 同步
? 內部類
第五篇:SAS基礎語法總結
一、DATA語句
DATA語句的作用是表明數據步的開始并給出數據集 的名稱。
DATA語句的格式為:
DATA 數據集的名稱;
數據集的名稱必須以英文字母開始,最長不超過8個字符。
二、CARDS語句
CARDS語句的作用是與“;”呼應,標志數據行的開始與結束。
CARDS語句的格式為:
CARDS;數據行;如果使用CARS語句,在CARDS的后面必須緊跟數據行,并且在一個數據步中最多只能使用一個CARDS語句。
三、INPUT 語句
INPUT語句的作用是描述輸入記錄中的數據,并把輸入值賦給相應的變量。INPUT語句的格式為:
INPUT 數據的變量名、順序及類型;
用INPUT語句是為了讀取外部文件的數據或跟在CARDS語句后面的數據。
SAS默認用INPUT語句讀取的是數值類型變量的值。若在變量后加’$’,則該變量為字符串類型變量。
為從一行讀入多個觀測值,應使用行保持符’@@’限制度數指針,使其保持在這一行上讀數,知道數據讀完為止。
例如:
Input x y@@;
Cards;
8
;
四、INFILE語句
Infile語句的作用是指明外部數據文件的名稱,并從這個外部數據文件中讀取數據。
INFILE語句的格式為: INFILE ‘外部數據文件名’;
例如,在D盤上有一個名稱為xiao.txt的數據文件,其中數據排列為:
A 3.16 B 2.9 B 5.8 B 3 A 4.9 A 4.17 用 INFILE語句讀取數據的代碼為:
Data ex;Infile ‘D:xiao.txt’;Input z$ x@@;Proc print;
Run;
五、SET語句
SET語句的作用是按照指定的條件從指定的數據集中讀取數據機那里新的數據集獲獎兩個數據集中的觀測值縱向連接建立新的數據集。
SET語句的格式為:
SET 數據集名表;例如,從數據集EX中讀取數據建立新的數據集EX1,可編輯語句:
DATA EX1;SET EX;將兩個數據集D1和D2中的觀測值縱向連接建立新的數據集D3,可編輯語句:
DATA D3;SET D1 D2;
六、MERGE語句
MERGE語句的作用是將兩個數據集中的各個觀測值橫向合并建立新的數據集。
MERGE語句的格式為:
MERGE 數據集名表;例如,將數據集D1與D2中的觀測值橫向合并建立新的數據集D3,可編輯語句:
DATA D3;MERGE D1 D2;
RUN;
七、DROP語句
DROP語句的作用是指定不寫到數據集中的變量。DROP語句的格式為:
DROP 變量名表;如果在DATA步中有DROP語句,那么DROP語句中一出現的變量的觀測值被刪除,未出現的變量的觀測值仍保留在新的數據集中。
八、KEEP語句
KEEP語句的作用是指定要寫到數據集中的變量。KEEP語句的格式為:
KEEP 變量名表;如果在DATA步4中有KEEP語句,那么KEEP語句中未出現的變量的觀測值被刪除,已出現的變量的觀測值被保留在西你的數據集中。
九、IF語句
IF語句的作用是使SAS繼續處理符合IF條件規定的觀測值,因而所得到的數據集是原數據集的子集。IF語句的格式為:
IF 條件表達式;如果表達式的值為真,SAS處理當前的觀測值,執行DADA步中的語句,如果表達式的值是假,SAS馬上返回到DATA步的開始,不處理當前的觀測值,不執行DADA步中的語句。
十、PROC語句
PROC語句的作用是指定需要調用的過程以及該過程的若干選擇項。PROC語句的格式為:
PROC SAS的過程名;例如,調用print過程,打印數據集ex的內容:
PROC print data=ex;這里的data=數據集名,用來指定本過程所要處理的數據集名,如缺省則處理最新建立的數據集。在PROC步中,還必須確認一些最基本的信息,包括:(1)處理的數據集名,格式為data=數據集名;(2)所涉及的變量名,格式為 var 變量名;(3)分組處理的標志,格式為 by 組變量名;
十一、CLASS語句
class語句的作用是在分析的過程中定義分類變量,再按分類變量的值分組進行數據分析。
Class語句的格式為:
CLASS 變量名;CLASS語句對數據分析所起的作用類似于by語句,但是它們打印輸出的格式不相同,并且by語句要求先對變量排序后才能使用。
十二、FREQ語句
freq語句的作用是規定一個變量,以它的值作為數據集中觀測值出現的頻數。
FREQ語句的格式為:
FREQ 變量;假定某觀測值的FREQ變量的值為n,在分析時,改數據集中這個觀測值出現的頻數便是n。
若n<1,則觀測值不參加分析
若n不是整數,則自動取整。觀測值的總數等于FREQ變量的和。
常用的SAS過程步
一、print過程
print過程可以打印一個SAS數據集中的全體或部分觀測值,還可以打印數 值變量的綜合或部分和。
print過程中經常使用的語句有:
proc print [選擇項];
var 變量表;by 變量表;sum 變量表;在proc print 語句中可能出現的選擇項有
data=數據集名,如果省略這一選擇,則打印最新建立的數據集中的數據。
sum語句被用來求變量表中諸變量的總和。
二、sort過程
SORT過程將SAS數據集中的觀測值按一個或多個變量的值進行排序,以便 其他的SAS過程利用by語句對這些觀測值進行分組處理,排序后的觀測值存放在一個新的SAS數據集中或者代替原來的數據集。在SORT過程中經常使用的語句有:
proc sort [選擇項];
by 變量表;在proc sort語句中可能出現的選擇項有:
data=數據集名,用來說明要排序的數據集名,如果省略這一選擇,則指定最新建立的數據集。
out=數據集名,用來說明要輸出的數據集名,如果省略這一選擇,則原來的數據集被輸出的數據集替換。sort過程默認按升序排列,若要按降序排列,在對應變量前增加選擇項descending。
三、FORMAT過程
format過程可以對字符或數值變量定義一個所需要的輸出格式,使data步以及含有format的語句的過程步中的變量都受到這一輸出格式的限制。
通過proc FORMAT過程所定義的格式包括:(1)將輸出值轉換成不同的值、數值可以變成字符,字符可以變成另外的字符。(2)使輸出值保留一定的小數位,否則輸出值將有8個小數位。FORMAT過程由下列語句控制:
PROC FORMAT;
VALUE 格式名 格式的定義;為便于識別,格式名通常是原變量名加fmt
如果原變量是字符串,則應當在格式名前加字符串符號。后面的過程中,如果涉及到某變量的輸出格式,必須有語句:
FORMAT 變量名 格式名
四、standard過程
standtard過程按給定的平均值和標準差對SAS數據集中的部分或全體變量進行“標準化”變換,并形成新的數據集。
在standard過程中經常使用的語句有:
proc standard [選擇項];
var 變量表;freq 變量表;by 變量表;在proc standard語句中可能出現的選擇項有:
data=數據集名,用來說明要“標準化”變換的數據集名,如果省略這一選擇,則指定最新建立的數據集。
out=數據集名,用來說明含有“標準化”變量的新數據集名,如果忽略這一選擇,SAS將按內部程式給出新的數據集名。
此過程將打印輸出每個“標準化”變量的輸入頻數、平均值及標準差。
五、TRANSPOSE過程
transpose過程將一個數據集進行轉置,使行變為列而列變為行,也就是使原數據集中樣品的觀測值變換成新數據集中變量的觀測值,而原數據集中變量的觀測值則變成新數據集中樣品的觀測值。transpose過程的格式為:
proc transpose [選擇項];var 變量表;by 變量表;在proc transpose語句中可以出現的選擇項有:
(1)data=數據集名,用來說明要轉置的數據集名;如果忽略這一選擇,則指定最新建立的數據集。
(2)out=數據集名,用來說明轉置所建立的心數據集名,如果省略這一選擇,SAS將按內部程式給出新的數據集名。
(3)prefix=字母(指定一個新前綴,用來構成新變量名)
(4)name=字母(為含有輸入數據集中被轉置的變量名的輸出數據集中的變量命名,如果省略這一選擇,SAS將按內部程式指定)。
在var語句中應列出要被轉置的變量名,否則原數據集中未在其他語句中列出的所有數值型變量都將被轉置,字符型變量必須在var語句中列出才能被轉置,未被轉置的變量不進入新的數據集,除非它們已經被列入copy或by語句。
by語句使輸入數據集分組轉置,分組變量被包括在輸出數據集中。