教學來源:
Java static,final 基本概念
protected 成員
Java程式設計領域,早就有許多良好命名慣例,沒有遵守慣例並不是錯,但會造成溝通與維護的麻煩。以類別命名實例來說,首字是大寫,以static使用慣例來說,是透過類別名稱與.運算子來存取。在大家都遵守命名慣例的情況下,看到首字大寫就知道它是類哵,透過類別名稱與.運算子來存取,就會知道它是static成員。
所以Class首字要大寫是慣例。
Java文件: https://docs.oracle.com/javase/8/docs/api/
System是class,而out和in是static方法:
練習instanceof:
instanceof-判斷物件繼承關係的小指令
Java instanceof 和 Class.isAssignableFrom(Class<?> cls)的區別
instanceof錯誤的狀況有:
1
class Child extends Parent {}
class Parent {}
class Main extends Child {
public static void main(String[] args) {
Child ch = new Child();
Parent pa = new Parent();
Main ma = new Main();
if (ch instanceof ma) {
System.out.println("ch是子類別,ma是父類別");
} else {
System.out.println("false");
}
}
}
error: cannot find symbol
if (ch instanceof ma) {
^
物件與類別間要有繼承關係,否則會有compile error。這邊兩個都是物件,所以會錯誤。
所以使用isAssignableFrom(Class<?> cls)就可以,因為isAssignableFrom是兩個都放class:
if (ch.getClass().isAssignableFrom(ma.getClass())) {
System.out.println("ch是父類別,ma是子類別");
}
else {
System.out.println("false");
}
2
Long lng = new Long(10);
if (lng instanceof String) {
System.out.println("lng 是子類別,String是父類別");
}
else {
System.out.println("false");
}
error: incompatible types: Long cannot be converted to String
if (lng instanceof String) {
^
物件與類別間要有繼承關係,否則會有compile error
3
int[] i = new int[10];
if (i instanceof Object[]) {
System.out.println("i是Object[]的後代");
}
else {
System.out.println("i不是Object[]的後代");
}
error: incompatible types: int[] cannot be convertedto Object[]
if (i instanceof Object[]) {
^
在Java裡有個特別規定,就是任何陣列都繼承Object,所以類別陣列將繼承Object和Object[],一般型別陣列則會繼承Object,但是一般型別不是物件,所以一般型別陣列不會繼承Object[]。
所以這樣就可以:
Child [] chs = new Child[10];
if (chs instanceof Object[]) {
System.out.println("chs是子類別");
}
else {
System.out.println("false");
}
5.1 Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search
Breadth First Search or BFS for a Graph
Depth First Search or DFS for a Graph
整理:
1
DFS用stack , BFS用Queue
2
範例程式DFS是用recursive的方式,沒用stack,之後再來找stack的範例
3.5 Prims and Kruskals Algorithms - Greedy Method
Check if a binary tree is binary search tree or not
98. Validate Binary Search Tree
Red-Black Trees - Data Structures
目錄:演算法與資料結構
整理
1 descendant leaf = leaf node = NIL = external node
[Data Structure][Tree] - Huffman tree
Best First Search (Informed Search)
BFS algorithm example | informed search | AI | Lec-19 | Bhanu Priya
Binary Tree (Array implementation)
94. Binary Tree Inorder Traversal
Morris Traversal | Preorder | Tree | C++ | Clear Explanation with Code
AVL Trees & Rotations (Self-Balancing Binary Search Trees)
0-1 Knapsack Problem | DP-10
Fractional Knapsack Problem
整理:
1
wt – weight – 東西的重量
val – value –東西的價值
2
背包問題 : 重量 小於等於某個值 , 價值最高 , 選擇什麼東西的問題
1
enQueue :排隊,放東西進去、push
deQueue :取消排隊,把東西拿出來、pop
有趣的漢諾塔遊戲怎麽玩?把大象放冰箱裏一共分幾步?
2 2 3 遞迴演算法的複雜度估計(河內塔)
Java 河內塔