哪年學習 java 的筆記
變數、方法、類、包
類包括類宣告和類體,類體又包括成員變數和方法。成員變數也叫域變數,成員變數分兩種:
類變數(靜態變數)和例項變數。
1、
(1)在類中宣告的變數是成員變數;在類中用static修飾的變數是類變數,否則是例項變數。類變數是共享的,都可以使用。成員變數在整個類中均有效。
(2)在類中方法內宣告的變數是區域性變數,區域性變數在該方法內並且在宣告變數以下有效。在引數內宣告的在該方法內均有效。
2、構造方法的特點:宣告物件時要用到該類的構造方法,一個物件中可以有多個構造方法。但構造方法的引數的型別或個數不同。構造方法的名字必須與類名相同,而且沒有型別。
3、方法分為類方法和例項方法,加static修飾的方法是類方法,類方法是共享的、公用的,類方法中不能使用例項變數。
4、包:區分名字相同的不同類,如果源程式省略了package語句,原始檔中所定義命名的類隱含在一個無名的包中,在一個包中的類用引用另一個包中類要用import匯入。
訪問許可權:訪問許可權有4中,從許可權大到小有public 、protected、友好的、private;
1)Public是共有的,用它修飾的變數與方法可以在不同的包中使用。
2)protected受保護的,用它修飾的變數與方法可以在同一包中的不同類中使用(1、父子關係的類除外,子類繼承父類的方法和變數可以在不同的包中繼承;2、但在另一個類用子類宣告的物件去訪問用protected修飾的變數不能訪問(如果在同一個包中可以使用))。
子類與父類
1) 子類可以繼承父類的除構造方法外的所有變數和方法,但訪問主類的變數和方法的時候受訪問許可權的限制。
2) Instanceof是雙目運算子,左邊操作元是物件,右邊是類。當左面的操作元是右面的類或子類所建立的物件時,instanceof運算的結果是true,否則是false。
Super
Super代表父類的物件
物件的上轉對型象
1、當子類建立一個物件,並把這個物件的引用放到父類物件中,稱父類物件是子類物件的上轉型物件。
2、上轉型物件不能訪問子類新增的方法或變數,但可以訪問子類重寫的例項方法(靜態方法重寫後不能呼叫,呼叫的是父類的靜態方法)。
3、不能將父類建立的物件賦值給子類建立的物件。
4、將上轉型物件重新賦值給子類物件,子類物件具備子類的所有屬性和功能。
abstract類和abstract方法
1、抽象方法只可以只允許宣告不可以實現,而且不可以同時用final和abstract同時修飾一個方法。
2、abstract類可以有抽象方法,也可以有非抽象方法。
3、abstract類不能不能用new運算子建立物件。
4、abstract類是abstract類的子類,它可以重寫父類的abstract方法,同樣也可以繼承abstract方法。
5、如果以一個抽象類的子類是普通類,則子類必須重寫父類的所有抽象方法
面向抽象過程
1、 不讓類面向具體的類,而是面向抽象的類。
介面與多型
1、介面的宣告用interface宣告;
介面體內所有方法和常量的型別的都是用public修飾的,允許省略public 和final
2、介面體內只有抽象方法、和常量(沒有變數)
interface USB{
public static final int MAX=100;//常量 等價於 int MAX=100;
public abstract void f1(){ //抽象方法 等價於void f1();
}
}
3、實現介面
1)用implement宣告自己實現的一個或多個介面
2)用類實現介面,那麼在這個類中要重寫介面的所有方法(abstract修飾的抽象類除外),
abstract類可以不重寫介面中的方法
3)在類中可以宣告一個介面但不能實現及不能建立物件
4)若父類實現了某個介面,那麼子類也實現該介面
Class Computer implements USB{
public void f1(){//注意不能降低許可權
System.out.println(“我實現了介面USB中的f1()介面”);
}
}
4、介面的回撥
class MainComputer{
public static void main(String agrs[]){
USB u1=new Computer();//上轉型別
u1.f1();
}
}
5、介面與abstract的比較
1)abstract類和介面都可以有abstract方法。
2)介面中只可以有常量,不能有變數;而abstract類中既可以有常量也可以有變數。
3)absstract類中可以非abstract方法,介面不可以。
資料定義語言 :DDL
Create alter drop
資料操縱語言:DML
Insert delete update select
事物控制語言:TCL
Commit savepoint rollback
資料控制語言:DCL
Grant revoke
select… from
group by
where
having by
order by
1、 單行子查詢
where
e.g. 查詢工資低於平均工資的所有教師。
select name ,wage from teachers
where wage<
(select avg(wage) from teachers);//注意不要缺少了select
e.g.查詢年齡小於王天儀的所有學生。
Select * from students
Where dob<(select dob from students where name=”王天儀”);
having
e.g.查詢部門平均工資高於最低部門平均工資的部門和平均工資
select department_id,avg(wags) from teachers
group by department_id having avg(wags)>(select min(avg(wags)) from teachers
group by department_id
);
form
e.g.在students表中的男同學中,查詢計算機專業的學生。
Select * from students (select * from students where sex=’男’) where despcialty=’計算機’;
select * from students where sex=’男’and despcialty=’計算機’;
2.多行子查詢
查詢後返回多行單列。
要使用到的多行比較符有:
In any all
e.g.在students表中檢索姓王同學的學號與姓名
select student_id ,name from students
where name like ‘王%’;
select students_id,name from students
where students_id in(
select student_id from students
where like ‘王%’);
any
e.g. 查詢工資低於任何一個部門平均工資的教師資訊。
Select * from teachers
where wags
group by department_id);
select * from teachers
where wags<(any(select avg(wags) from teachers
group by departments_id);
all
e.g.查詢工資高於各部門平均工資的教師資訊
select * from teachers
where wags>(select max(avg(wags)) from teachers
group by department_id);
select * from teachers
where wags>all (select avg(wags) from teachers
group by department_id);
多列查詢
多列單行和多列多行
e.g.查詢與王天儀同學同生日同專業的同學
select * from students
where(sex, specialty)= (select dob,specialty from students where name=’王天儀’);
e.g.查詢各自部門的工資最低的教師
select * from teachers where (department_id ,wags) in
select department_id min(wags) from group by department_id;
insert into 表名 values ()
update set
delete from
truncate table
資料庫完整性
1、 實體完整性
2、 參照完整性
3、 自定義完整性 chack
DCL.DDL
1、 系統許可權
Create session //連線許可權
Create table //建立表的許可權
Create any table
Drop table //刪除表的許可權
Create user //建立使用者
Drop user //刪除使用者
2、 物件許可權
資料庫中的表示一個物件
Select //檢視
Update//更新、更改
Insert //插入
Delete//刪除
3、 使用者
Create user 使用者名稱
Identified by 密碼
1) 建立一個使用者:wang密碼是office
Create user, drop user
許可權控制
1、 系統控制
1) 授予使用者系統許可權
Grant 系統許可權 to 使用者名稱 給使用者授權
Revoke 系統許可權 from 使用者名稱 撤銷使用者的權利
e.g.建立一個使用者名稱叫xiaoli密碼為gold,並給他授予系統許可權
create user xiaoli identified by gold
connect xiaoli gold ;
connect system/jiaoxue;
grant create session,select table to xiaoli;
建表
約束:
1、 主鍵 primary
Constraint 約束名 primary key
2、非空 not null
在表中的寫法 :not null
3、自定義 check
在表中的寫法 constraint 約束名 check()
4、 唯一 unique
在表中的寫法。 Constraint 約束名unique
5、 外來鍵 foreign key
在表中的寫法 constraint 約束名 foreign key
檢視(view)
建立檢視 create view 檢視名 ;