來台南讀書也待了四年,覺得台南真是一個隨處都有美食的地方
尤其是台南的滷味,選擇真的很多,時常晚餐宵夜配著滷味看著連續劇真是人生一大享受
今天就來介紹一家滷味,這家老主顧滷味位在台南東區裕農路上,自己也吃了很多次,
真心覺得好吃的東西要推薦給大家!
2016/5/28
2016/5/20
PHP PDO Select 從資料庫中查詢資料
發現之前學一陣子的PHP,太久沒碰差點忘掉了,而好不容易也玩過PDO,怎可以就這樣忘光光呢,發現會的東西一定要保持住,所以想寫篇文章來做個筆記。
本篇主要就是講基本的用PDO從資料庫中讀取資料至網頁來。
本篇主要就是講基本的用PDO從資料庫中讀取資料至網頁來。
2016/5/17
2016/5/12
匿名內部類別(Anonymous inner class)
例1,static class A就是匿名內部類別,用參考名稱z,去呼叫showMe()。
package anonymous1; public class Anonymous1 { static class A{ int i =0; public String showMe(){ return "This is X"; } } public static void main(String[] args) { final String ff="final"; //如果要在內部匿名類別中使用某個方法中的變數,它必須宣告為 final A z = new A(){ //匿名類別override showMe方法 public String showMe(){ return "This is Z"+i+ff; //可存取A類別的成員 } }; //注意分號別漏掉 System.out.println(z.showMe()); } } //run: //This is Z0final
2016/5/11
C++的#include <iostream> 與名稱空間namespace
前言:
這篇主要是討論C++底層的一些觀念的東西。
我覺得在學一個新東西前,一定要先了解他的來由始末,而不是只懂皮毛,初學者也別小看C++一開始的Hello World,這麼一小段程式背後還是有很多東西可以學,至少要懂它每段語法結構,和它運作的概念。
ps..這篇文章實際標題是C++的#include <iostream> 與名稱空間namespace,因為<iostream>含特殊字元,不然不能直接顯示出來,幸好上次有碰過這問題,所以這網站真的好用。
2016/5/10
interface介面:Java為例
接下來討論interface介面這東西,先假設我們要做一個海洋樂園遊戲,也假設我們不會用interface,也許你會先定義fish這類別且有swim():
public abstract class Fish { protected String name; public Fish(String name) { this.name = name; } public String getName() { return name; } public abstract void swim(); }每種魚游泳方式可能不一樣,所以swim()為abstract,那class也要abstract了。
2016/5/9
在Blogger中貼程式碼
以下是成果
public class Shape2D { // define super class public double area() { // all Shape2D have their own area return 0; } } public class Rectangle extends Shape2D { private double length, width; public Rectangle(double l, double w) { // define constructor length = l; width = w; } public double area() { // Override return length * width; } } public class Circle extends Shape2D { private double radius; public Circle(double r) { radius = r; } public double area() { // Override return 3.141592654 * radius * radius; } } public class Parallelogram extends Shape2D { private double top, bottom, height; public Parallelogram(double t, double b, double h) { top = t; bottom = b; height = h; } public double area() { // Override return (top + bottom) * height / 2.0; } } publicclass Main { public static double sum(Shape2D[] shapes) { double total = 0; for (int i = 0; i < shapes.length; i++) { total += shapes[i].area(); // use Virtual Function to calculate area of Shape2D // Without Virtual Function, value of Shape2D.area() will be 0 } return total; } public static void main(String[] argv) { Shape2D[] data; // array of reference to Shape2D data = new Shape2D[5]; // create array object data[0] = new Rectangle(2.4, 3.8); // Polymorphism data[1] = new Circle(3.9); data[2] = new Parallelogram(3.5, 6.7, 10.2); data[3] = new Rectangle(5.3, 7.2); data[4] = new Circle(4.6); System.out.println("Sum of all Shape2D is "+sum(data)); } }
2016/5/8
protected:Java為例
本篇參考良葛格-protected 成員
拿之前RPG遊戲拿說,現在我們想顯示角色細節,要這樣寫:
拿之前RPG遊戲拿說,現在我們想顯示角色細節,要這樣寫:
1 2 3 4 | SwordsMan swordsMan = new SwordsMan(); ...略 System.out.printf("劍士 (%s, %d, %d)%n", swordsMan.getName(), swordsMan.getLevel(), swordsMan.getBlood()); |
2016/5/6
抽象類別與方法abstract
承上篇:多型(Polymorphism):重新定義實作@Override
並參考1:良葛格-抽象方法、抽象類別
參考3:Gossip@Openhome
abstract method宣告方式:不用{},直接 ; 結束即可。
並參考1:良葛格-抽象方法、抽象類別
參考3:Gossip@Openhome
參考4:Davidou's Blog-[Java]6.抽象(Abstract)與介面(Interface)
參考5:Java 介面(Interface)與抽象類別(Abstract class)的差異
參考5:Java 介面(Interface)與抽象類別(Abstract class)的差異
如果一個class裡有一個抽象方法abstract method,那這個類別就必須定義為抽象類別abstract class 。
1 2 3 4 5 6 | package Cast; public abstract class Role { ...... public abstract void fight(); ...... } |
abstract class宣告方式:一定要在class前加abstract關鍵字。
2016/5/4
多型(Polymorphism):重新定義實作@Override
承上篇:OOP:多型(Polymorphism) 以Java為例、protected:Java為例
前言:這篇主要是探討Java中重新定義Override,根據參考資料自己做的筆記與心得,如日後有新發現都會陸續增加。
2016/5/3
OOP:多型(Polymorphism) 以Java為例
參考2暨南教科書多型基本觀念
參考3什麼是物件導向(3):Polymorphism
參考4Java 快速導覽 - 物件導向概念 多型
參考5劉逸-論物件導向part 5:Polymorphism
參考6程式設計俱樂部-OOP 中對 "多型" 的理解
參考7歐萊禮-多型
這裡主要是討論OOP多型的概念,爬了些資料自己做些整理。
首先看到參考1良葛格所寫,它把多型想成「is-a 關係」(是一種關係)來看,讓初學者很容易初步的理解多型的概念,與什麼時候的多型寫法會編譯失敗
參考3什麼是物件導向(3):Polymorphism
參考4Java 快速導覽 - 物件導向概念 多型
參考5劉逸-論物件導向part 5:Polymorphism
參考6程式設計俱樂部-OOP 中對 "多型" 的理解
參考7歐萊禮-多型
這裡主要是討論OOP多型的概念,爬了些資料自己做些整理。
首先看到參考1良葛格所寫,它把多型想成「is-a 關係」(是一種關係)來看,讓初學者很容易初步的理解多型的概念,與什麼時候的多型寫法會編譯失敗
2016/5/1
NetBeans IDE 8.1 更換主題theme
參考資料 http://codesleepshred.com/dark-netbeans-themes-oblivion-revival-and-monokai/
這網址提供兩個主題一個sublime的monokai和Oblivion Revival ?
我選sublime的monokai
附上成果
結果我是覺得還可以,只是它那綠底的反白我不太喜歡,但應該是可以調改天研究
monokai套進去後,不是那樣反白橘色的,反白後的文字也不是白的,我另外調的,稍微筆記一下...畢竟也是找了下....
NetBeans IDE>上排工具>選項>Fonts&Colors>Highlighting>Selected Text
Foreground:反白後的文字顏色
Background:反白的背景顏色
Effects:反白後是否要有底線之類的,可自玩玩看
這網址提供兩個主題一個sublime的monokai和Oblivion Revival ?
我選sublime的monokai
附上成果
結果我是覺得還可以,只是它那綠底的反白我不太喜歡,但應該是可以調改天研究
monokai套進去後,不是那樣反白橘色的,反白後的文字也不是白的,我另外調的,稍微筆記一下...畢竟也是找了下....
NetBeans IDE>上排工具>選項>Fonts&Colors>Highlighting>Selected Text
Foreground:反白後的文字顏色
Background:反白的背景顏色
Effects:反白後是否要有底線之類的,可自玩玩看
OOP:繼承(Inheritance) 以Java為例
本篇參考 http://openhome.cc/Gossip/Java/Inheritance.html
繼承的目的就是為了避免多個類別重複相同的實作。
先假設今天要開發一個RPG遊戲,一開始角色有劍士和魔法師,先定義劍士:
再來是魔法師:
可看到上面粗體+斜體+底線的地方與劍士重複了?重複的東西幹嘛一直寫呢?所以繼承就出現了
現在開始實作繼承(Inheritance)
步驟一:把重複的地方"拿出"去,當父類別,並且給父類一個新名字
步驟二:把子類別繼承父類別
現在來開始做
步驟一:把重複的地方"拿出"去,當父類別,並且給父類一個新名字叫Role
步驟二:把子類別繼承父類別
關鍵字extends繼承,把SwordsMan類別繼承Role類別,前面是子類別繼承父類別
Magician也一樣繼承Role:
如此一來,Role中定義的程式碼,SwordsMan與Magician中都有了
如何確定有真的繼承?試試看知:
注意,如果demoMagician與demoSwordsMan method沒有加static會編譯錯誤,因為main是static宣告,只有static能用static,還有final宣告的類別不能被繼承,否則會編譯錯誤!
換句話說,如果你不想你的類別被其他子類別繼承,那就請你把類別宣告成final
final class classname{
//...
}
還有,Java中,子類別只能繼承一個父類別,所以基本上你不會看到這種東西:
問題1:private成員可繼承嗎?可以
問題2:private成員繼承後,子類別可存取它嗎?不能,除非父類別提供method給子存取
反白看答案
繼承的目的就是為了避免多個類別重複相同的實作。
先假設今天要開發一個RPG遊戲,一開始角色有劍士和魔法師,先定義劍士:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
再來是魔法師:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
可看到上面粗體+斜體+底線的地方與劍士重複了?重複的東西幹嘛一直寫呢?所以繼承就出現了
現在開始實作繼承(Inheritance)
步驟一:把重複的地方"拿出"去,當父類別,並且給父類一個新名字
步驟二:把子類別繼承父類別
現在來開始做
步驟一:把重複的地方"拿出"去,當父類別,並且給父類一個新名字叫Role
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package Cast; public class Role { private String name; private int level; private int blood; public int getBlood() { return blood; } public void setBlood(int blood) { this.blood = blood; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public String getName() { return name; } public void setName(String name) { this.name = name; }} |
步驟二:把子類別繼承父類別
1 2 3 4 5 6 | package Cast; public class SwordsMan extends Role { public void fight() { System.out.println("揮劍攻擊"); }} |
關鍵字extends繼承,把SwordsMan類別繼承Role類別,前面是子類別繼承父類別
Magician也一樣繼承Role:
1 2 3 4 5 6 7 8 9 10 | package Cast; public class Magician extends Role{ public void fight() { System.out.println("魔法攻擊"); } public void cure() { System.out.println("魔法治療"); }} |
如此一來,Role中定義的程式碼,SwordsMan與Magician中都有了
如何確定有真的繼承?試試看知:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package rpg; import Cast.Magician; import Cast.SwordsMan; public class RPG { public static void main(String[] args) { demoSwordsMan(); demoMagician(); } static void demoSwordsMan() { SwordsMan swordsMan = new SwordsMan(); swordsMan.setName("Justin"); swordsMan.setLevel(1); swordsMan.setBlood(200); System.out.printf("劍士:(%s, %d, %d)%n", swordsMan.getName(), swordsMan.getLevel(), swordsMan.getBlood()); } static void demoMagician() { Magician magician = new Magician(); magician.setName("Monica"); magician.setLevel(1); magician.setBlood(100); System.out.printf("魔法師:(%s, %d, %d)%n", magician.getName(), magician.getLevel(), magician.getBlood()); }} |
注意,如果demoMagician與demoSwordsMan method沒有加static會編譯錯誤,因為main是static宣告,只有static能用static,還有final宣告的類別不能被繼承,否則會編譯錯誤!
換句話說,如果你不想你的類別被其他子類別繼承,那就請你把類別宣告成final
final class classname{
//...
}
還有,Java中,子類別只能繼承一個父類別,所以基本上你不會看到這種東西:
package Cast; public class Magician extends Role,Role2,...{ ............................. }
問題1:private成員可繼承嗎?可以
問題2:private成員繼承後,子類別可存取它嗎?不能,除非父類別提供method給子存取
反白看答案
NetBeans IDE 8.1 好用快捷鍵 筆記
區塊註解/反註解CTRL+SHIFT+C(已自訂為ALT+W)
批次修改變數名稱 CTRL+R
刪除整行CTRL+E
切換至前一個分頁或後一個分頁Previous Tab/Next Tab Ctrl+PgUp/PgDn
切換至上一個瀏覽的分頁 Ctrl+Tab
關閉目前分頁 Ctrl+w
打開剛剛關閉的分頁 Ctrl+Shift+t
以下是Mac OS:
程式碼提示(自動完成)⌘+\
單行註解 ⌘+/ (再按一次 解除註解)
多行註解⌘+shift+c (已自訂為⌃+A)
刪除這行 ⌘+E
選取所有同名變數,集體更換變數(好用!)⌃+R
幫你格式化程式碼 ⌃+Shift+f
清除Output內容 ⌘+L
切換標籤頁面 Fn+⌘+↓or↑
選擇目前這個字Select Word(像Sublime的⌘+D)⌘+D ,這功能需而外在Keymap設定,因Netbeans預設沒幫你設
設定部分:
關閉自動雙引號:Preference>Editor>Insert Closing Brackets Automatically>不要打勾
NetBeans MacOS快速鍵
批次修改變數名稱 CTRL+R
刪除整行CTRL+E
切換至前一個分頁或後一個分頁Previous Tab/Next Tab Ctrl+PgUp/PgDn
切換至上一個瀏覽的分頁 Ctrl+Tab
關閉目前分頁 Ctrl+w
打開剛剛關閉的分頁 Ctrl+Shift+t
以下是Mac OS:
程式碼提示(自動完成)⌘+\
單行註解 ⌘+/ (再按一次 解除註解)
多行註解⌘+shift+c (已自訂為⌃+A)
刪除這行 ⌘+E
選取所有同名變數,集體更換變數(好用!)⌃+R
幫你格式化程式碼 ⌃+Shift+f
清除Output內容 ⌘+L
切換標籤頁面 Fn+⌘+↓or↑
選擇目前這個字Select Word(像Sublime的⌘+D)⌘+D ,這功能需而外在Keymap設定,因Netbeans預設沒幫你設
設定部分:
關閉自動雙引號:Preference>Editor>Insert Closing Brackets Automatically>不要打勾
NetBeans MacOS快速鍵
訂閱:
文章 (Atom)