Monday, March 31, 2025

2007/11/10

專題

0 comments
專題的分組馬上就要開始了
目前大部分的人都還沒有大動作要準備開始
感覺上又是一次的搶人大戰
在經歷過要升大二的那次因為分房的戰爭後
這次會不會又衍生成這樣的戰爭呢

或許沒有被選到的人也應該自己想想
為什麼別人會選擇其他人而沒有選擇自己
這是值得自己深思的問題

這次要選專題組的成員
首先要先確定大家的意願如何
自己想要做的專題有多大
想做的方向又是什麼
雖然有些人是好朋友而想要在一起做
但是不一定好朋友要做的專題題目就會一樣
所以這是大家必須先確定的重要問題

再來要考慮的就是合不合適的問題
經過了兩年多的分組
或多或少都知道每個人大概的個性跟做事的習慣
適不適合和自己一起做專題
能力夠不夠應付想做的題目
這些都是非常重要的問題
畢竟這是畢業專題
而且做得好 還有機會被公司挖腳
當然是在重要不過了

十二月陸陸續續開始有專題說明會
嘉年華、學長姐面談等
這些將是我第一次參加資管嘉年華
進來資管都已經兩年了
這還是頭一次要參加呢
心想 自己都已經要做專題了
也應該好好想想了

加油吧~~!!現在最重要的是要找到組員
再來是要找老師
到底什麼時候該找呢
好像等到專題說明會之後再開始找會太慢
似乎該再去找吳宜臻問問
不管了~~先把明天的訪問跟這禮拜的考試解決吧
加油~~~!!!

2007/11/09

Exhausted

0 comments
昨天真的是被操爆了
從五點開始趕程式~趕到十二點交
馬上又趕去小光家做SA的ERD
一直到早上三點才離開~~~
天呀~~明天早上還得早起耶
我就覺得今天一定爬不起來
雖然早上曾經醒過來
有很強大的慾望想要去聽老師講解作業
無奈於實在抵擋不了棉被的溫暖
以至於作罷~~

中午起來後~~
到好兇表妹那買水餃
好兇老闆娘還請我喝飲料
真是感謝

下午又翹課了~~
最近又要考試又要交作業的
真的是快把我給搞瘋了

行銷跟OR下禮拜要考
OR感覺很多~~行銷不知道背不背得起來
不能在繼續墮落下去了
加油吧~~像昨天那樣的生活
未來似乎還會有很多
努力撐過去吧
記得找時間去運動!!!!

2007/11/05

Sonnet 18

0 comments
Sonnet 18
William Shakespeare(c.1609)

Shall I compare thee to a summer's day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer's lease hath all too short a date:

Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm'd;
And every fair from fair sometime declines,
By chance or nature's changing course untrimm'd;

But thy eternal summer shall not fade
Nor lose possession of that fair thou ow'st;
Nor shall Death grag thou wander'st in his shade,
When in eternal lines to time thou grow'st:

So long as men can breathe or eyes can see,
So long lives this and this gives life to thee.

十四行詩第十八首

夏日怎能與妳譬喻比擬
妳的可愛溫和夏日難及
五月花蕾惡風吹襲落地
夏日租約倏忽轉瞬到期

有時天眼高灼炎炎難耐
更見烏雲常蔽金色面容
古今紅顏難逃紅顏色衰
命運無常季候欺凌作弄

妳的永恆夏日卻將長存
美貌紅顏必也永世不減
死神難誇妳為地府美人
因妳芳名已成不朽詩篇

除非人世已經滅絕無生
此詩必將永傳與汝永恆

文句注釋

Shall I compare thee to a summer’s day?
我是否該把妳比喻為(美好的)夏日?(這不是真的問句,只是修辭性的問句)

Thou art more lovely and more temperate
art=are, temperate=溫柔的;妳比夏日更可愛溫柔

summer's lease
夏日的租約

Sometime too hot the eye of heaven shines
Sometime在這一行的用法就是 sometimes,意思指有時候,跟下幾行的 sometime 的意思不同;the eye of heaven 就是太陽

And every fair from fair sometime declines
這是莎翁十分喜歡使用的文字遊戲,第一個fair指的是美好的人或物,第二個則是美好(的狀態)。整行是說每一個美麗的人不久就會慢慢變醜(sometime 這個副詞用來指過去或未來不確定的某個時候,這裡的意思就是「過些時候」

his gold complexion dimm'd
太陽的金色容顏還常常變黯淡(被雲遮蔽)
By chance or nature's changing course untrimm'd
untrimmed = 雜亂不整,意思指美人或因意外(chance)或是大自然無可避免的日夜交替與四季變換,美人終難免花容褪色

But thy eternal summer shall not fade
前8行皆是將情人喻為夏日後,說明情人因無夏日之缺點,因此更勝於夏日,本行起則直接描述情人的永恆美好。

that fair thou owest
妳所擁有(owe = own)的美麗

Nor shall Death brag thou wander’st in his shade
死神無法誇耀他已擁有妳(在他的陰影中漫遊表示已死亡)。

When in eternal lines to time thou growest
不同於自然節令,妳是在不朽的詩篇中成長於時間裡。

So long lives this and this gives life to thee
十四行詩最後二行往往都是產生驚奇效果的詩句(punch lines)給人出人意表的文意總結,這裡將對情人的讚美同時等同於對這首詩的肯定,甚至明指情人的存在是仰賴詩的存在

英語情詩名作選---莎士比亞十四行詩"第18首"

我該把你比擬做夏天嗎?
你比夏天更可愛,更溫婉:
狂風會把五月的嬌蕊吹落,
夏天出租的期限又太短暫:

有時天上的眼睛照得太熱,
他金色的面容常常變陰暗;
一切美的事物總不免凋敗,
被機緣或自然的代謝摧殘:

但你永恆的夏天不會褪色,
不會失去你所擁有的美善,
死神也不能誇說你在他陰影裡徘徊,
當你在永恆的詩行裡與時間同久長:

只要人們能呼吸或眼睛看得清,
此詩將永存,並且賜給你生命。

(By 陳黎‧張芬齡翻譯的版本)

reference:http://english.ncu.edu.tw/wenchi/Song/song_sonnet.htm

2007/11/04

老地方

0 comments
3.老地方

下了一夜雨
下了一夜的情節
那段年少的故事
是一齣難忘的戲
想了一夜你
想了一夜的往昔
我的輕狂你的美
我的離別你的淚
給過你的吻 還在老地方
就算老去容顏依然不會變
許過的誓言 還在老地方
經過多少風吹雨打還記得
有過的愛情 還在老地方
就算物換星移依然不能忘
有過的回憶 還在老地方
走到歲月盡頭也會陪著我
我心中永遠的你 永遠停在老地方

約定藍天

0 comments
2.約定藍天

白色的雪 灰色的雲
我開著飛機 衝進雲外的天
我最最親愛的你
如果我們不能再見
我會記得 你給我的每一刻
哭泣的眼和無色的淚
我身上流著視死如歸的血
我那個親愛的人
看不清你站在哪裡
因為天下著黑色的雨
讓大雨洗清被染紅的大地
別忘了我們和藍天的約定

2007/11/03

涙そうそう

0 comments


涙そうそう( 淚光閃閃 )

作詞 : 森山良子 作曲 : BEGIN

古いアルバムめくり
ありがとうってつぶやいた
いつもいつも胸の中
励ましてくれる人よ

晴れ渡る日も 雨の日も
浮かぶあの笑顔
想い出遠くあせても
おもかげ探して
よみがえる日は 涙そうそう

一番星に祈る
それが私のくせになり
夕暮れに見上げる空
心いっぱいあなた探す
悲しみにも 喜びにも
おもうあの笑顔
あなたの場所から私が
見えたら きっといつか
会えると信じ 生きてゆく

晴れ渡る日も 雨の日も
浮かぶあの笑顔
想い出遠くあせても
さみしくて 恋しくて
君への想い 涙そうそう
会いたくて 会いたくて
君への想い 涙そうそう

中文

翻著古老的相片簿 對著總是 在心中鼓勵著我的人
囁囁著謝謝兩個字
晴空翊爽也好 大雨滂沱也罷 那時時刻刻浮現的笑容
即使回憶已遠離褪色
我依然追尋絲絲影跡 當他甦醒時總讓我 淚光閃閃

對著第一顆升起的星星祈禱 已經變成我的習慣
在黃昏時仰望的天空裡 滿心尋找你的蹤跡
悲傷落淚也好 歡喜雀躍也罷 你的笑容總會浮上心頭
我相信從你所在的地方看得到我
也相信我們總有重逢的一天而活著

晴空翊爽也好 大雨滂沱也罷 那時時刻刻浮現的笑容
即使回憶已遠離褪色
如此孤單 如此眷戀 對你的思念讓我淚光閃閃
想見你一面 想見你一面 對你的思念讓我 淚光閃閃

2007/10/24

Identifier

0 comments
1. 第1個字元必須是[a-z]或[A-Z](英文字母)、[$](金錢符號)、[_](底線),但不可為數字。
2. 第2個字元以後則可以為[0-9](數字)或上述第1項的內容。
3. 不可為operator。
4. 名稱長度沒有限制。
5. case sensitive(大小寫不同)。

2007/09/19

Vista 休眠選項不見

0 comments
Solution:
cmd
>powercfg /hibernate on

reference:http://support.microsoft.com/kb/929658

2007/08/30

Error and Exception classes

0 comments
Java 處理錯誤的class都放在Error和Exception class下,而他們共同繼承Throwable class。
1.Error:是指無法控制或處理的錯誤狀況。如系統資源不足或網路斷線。因此可以不必處理這些問題。
2.Exception:可分為兩大類。一類為程式設計上的疏忽造成的RuntimeException,就算不處理也不會造成編譯失敗;另一類是Non-RumtimeException,又稱為CheckedException,如果沒有事先預防和處理,會造成編譯失敗。

Bug

0 comments
1.syntax error(語法錯誤):程式編譯時發現在的語法錯誤,compiler會告知錯誤行號,屬於較容易Debug的錯誤。Ex: int x = 1.0 ;
2.runtime error(執行時的錯誤):編譯時沒有發生錯誤,但是執行的時候發生錯誤。如整數除以0。
3.logic error(邏輯錯誤):程式在編譯跟執行時都沒有發生錯誤,但是結果卻不是使用者所想要的。此種錯誤是最難Debug的,必須要使用者的協助,否則程式設計師很難自己發現錯誤。

2007/08/15

Constructor

0 comments
1.預設建構式(Default Constructor):沒有參數,屬性的初始值使用預設值。
2.非預設建構式(Non-default Constructor):有參數,屬性的初始值使用傳進來的參數設定。

Rules:
1.無傳回值設定:Constructor主要目的在於設定屬性(field)初始值,因此不需要傳回值設定,也不需要在建構式前加上『void』,否則compile error。
2.名稱要與類別相同:如果類別名稱是painter,其建構式的名稱也必須為painter。
class Painter{
String name;
public Painter(){//default constructor
name = "小畫家";
}
public Painter(String n){//non-default constructor
name = n;
}
public static void main(String args[]){
Painter paint = new Painter();
Painter paint2 = new Painter("畫圖");
}
}

2007/08/14

Multi-Inheritance

0 comments
(1) class僅可繼承(extends) 1個class
(2) class可實作(implements)多個interface
(3) class不可繼承interface
(4) interface可繼承多個interface
(5) interface不可繼承classinterface不可實作interface

Interface

0 comments
1.interface的field一定要初始化,因為編譯時會自動加上final。
2.因為interface的field一定要初始化,所以interface沒有constructor。
3.interface只可以有abstract method。
4.interface的method無論有沒有加abstract都是abstract method。
5.無法使用new產生instance。
6.其sub class需implement(實作)所有method內容;但sub interface則不用。

Abstract Class

0 comments
1.抽象類別無法使用[new]運算符號來產生實體(instance)
2.一個class中只要有一個abstract method,整個class就必須宣告成abtract class[意味著可以寫有內容的method]
3.abstract class 的子類別必須把父類別中的所有抽象方法實作出來,所謂實作就是將大括號加上即可,裡面可以不寫任何程式碼
4.abstract class的子類別沒有把父類別的抽象方法實作出來或沒有全部實作,子類別也必須宣告為abstract class。
5.即使類別內沒有任何抽象方法,該類別也可被宣告為抽象類別,但較少見。

Encapsulation

0 comments
所謂Encapsulation(封裝)就是對屬性(field)設定成private,不讓其他人直接存取,以免無法檢查別人所設定的值,而提供set method和get method來讓其他人設定及取其值,而不至於讓別人可能輸入錯誤的值與破壞整個值。

Modifier

0 comments
public 無限制( no limited )
protected 繼承( limited in inheritance )
default 套件( limited in package )[相同的目錄]
private 類別( limited in class )

2007/08/07

Shadow, Overloading, Overriding

0 comments
shadow(遮蔽):
在繼承過程中,在sub class宣告和super class相同field的話就不會繼承super class的field而是使用自己的field,此種情形稱為shadow。
class Cube{
String name;
double length;
double width = 5;
double height;
double volume(){return length * width * height;}
}
class Building extends Cube{
double width = 10;
String material;
}
result:
當讀取Building.width時,會讀到10 而不是 5。

overloading(多載):
同一個class內,若有2個method符合下列2個規則即可稱為overloading。
1. method名稱一樣,否則只是2個不同的method,不能稱為overloading。
2. 傳入的argument個數或資料類型不一樣,JVM會依據個數或資料類型來決定呼叫哪個method。
double volume() {
return length * width * height;
}
double volume(Cube cube) //多載(overload)
{
return volume() + cube.volume();
}

overriding(改寫)[重要]:
overriding只發生在繼承。若有2個method符合下列4個規則即可稱為overriding。
1. method名稱一樣,否則只是2個不同的method。
class Cube{
public void show() {}
}
class Building extends Cube{
public void showA() {}
}//編譯成功,但不是Overriding
2. 傳入的argument個數或資料類型一樣,否則只能稱做overloading。
class Cube{
public void show() {}
}
class Building extends Cube{
public void show(int i) {}
}//編譯成功,但不是Overriding,只能叫做Overload
3. return value的資料類型要一樣。
class Cube{
public void show() {}
}
class Building extends Cube{
public double show() {return;}
}//編譯失敗
4. sub class的access modifier(開放修飾詞)要大於或等於super class (大小依序為:public>protected>default>private)。
class Cube{
public void show() {}
}
class Building extends Cube{
protected void show() {}
}//編譯失敗
final修飾的method不能被改寫。static修飾的method只能被static method改寫,non-static method只能被non-static method改寫。
class Cube{
final public void show() {}
}
class Building extends Cube{
public void show() {}
}//編譯失敗
class Cube{
public void show() {}
}class Building extends Cube{
final public void show() {}
}//編譯成功,沒有錯誤
class Cube{
static public void show() {}
}
class Building extends Cube{
public void show() {}
}//編譯失敗
class Cube{
public void show() {}
}
class Building extends Cube{
static public void show() {}
}//編譯失敗
class Cube{
static public void show() {}
}
class Building extends Cube{
static public void show() {}
}//編譯成功


Overriding:
class Cube{
String name;
double length, width, height;
public void show() {
System.out.println("立方體名稱: " + name);
System.out.println("長 = " + length);
System.out.println("寬 = " + width);
System.out.println("高 = " + height);
}
}
class Building extends Cube{
String material;
public void show() {
System.out.println("建築物名稱: " + name);
System.out.println("長 = " + length);
System.out.println("寬 = " + width);
System.out.println("高 = " + height);
System.out.println("材質 = " + material);
}
}

Varargs (Variable-length Argument Lists)參數列表

0 comments
如果不確定會傳幾個argument給method,此時會利用array當作argument來傳遞;但array的宣告與值的指定都十分麻煩,因此JDK 5.0新增了Varargs功能來解決這個問題。其實Varargs就是使用array來儲存argument。(還是用陣列會比較方便) 範例請參看[Varargs.java]。
JDK 5.0
void attend( String… name ){} = void attend( String name[] name){}
String… name = String name[] ={ “ ” , ” ” } ;
(新增功能)(會考)

規定:
( 1 ) 同一個class不能存在同樣的方法,其中一個使用Varargs,其中一個使用陣列
Compiler會辨識為同一個方法
EX:
void attend ( String… name ){}
void attend ( String name[] ){}
( 2 ) 如果方法要傳送不只一個參數,使用Varargs的參數需擺在最後面
EX:
void attend ( String… name , int i ) // 錯誤(編譯失敗)
void attend ( String name[] , int i ) // 正確
void attend ( int i , String… name ) // 正確
( 3 ) 同一個方法只能使用一個Varargs參數
EX:
void attend ( String… name , String… ID ) // 錯誤(編譯失敗)
void attend ( String… name ) // 正確
void attend ( String… ID ) // 正確

method

0 comments
在method的block內有許多程式碼,當method被呼叫的時候,這些程式碼就會被執行method如果有return value(回傳值)則須在method名稱前加上return value的資料類型。即使method沒有return value,也須在method名稱前加上void。範例如下
[Method_ReturnValue.java]
class Cube {
String name;
double length;
double width;
double height;
double volume() {
return length * width * height;
}
}
class Method_ReturnValue{
public static void main(String argv[]) {
Cube box1 = new Cube();
box1.name = "1號箱子";
box1.length = 5.0;
box1.width = 3.0;
box1.height = 2.0;
if(box1.volume() <= 50)
System.out.println("空間足夠");
else
System.out.println("空間不夠");
}
}
method可以設定argument(參數)以處理更複雜的情況,範例如下
[Method_Argument.java]
class Cube{
String name;
double length;
double width;
double height;
double volume() {
return length * width * height;
}
double volume(Cube cube) //多載(overload) {
return volume() + cube.volume();
}
}
class Method_Argument{
public static void main(String argv[]) {
Cube box1 = new Cube();
box1.name = "1號箱子";
box1.length = 5.0;
box1.width = 3.0;
box1.height = 2.0;
Cube box2 = new Cube();
box2.name = "2號箱子";
box2.length = 6.0;
box2.width = 3.0;
box2.height = 2.0;
System.out.println("總體積為" + box1.volume(box2));
}
}
但要注意所傳的argument是屬於primitive type還是reference,範例如下
[ArgumentPass.java]
class ArgumentPass{
public void update(int i){i++;}
public void update(int x[]){x[0]++;}
public static void main(String args[]) {
ArgumentPass arg = new ArgumentPass();
int j = 1;
int y[] = {1,2,3};
arg.update(j);
arg.update(y);
System.out.println(j);
System.out.println(y[0]);
}
}
result:
1
2
primitive type 屬於call by value, 而 Array 則屬與reference type,是call by reference。

OOP物件導向程式設計

0 comments
人類生活中所需處理的問題,單靠primitive type無法完整描述。因此我們需要OOP(Object-Oriented Programming),程式設計師可以自訂類別,稱作class。
class cube{
double length;
double hieght;
double width;
}
class可以說是一個泛稱,而object便是class的實體。例如”我的箱子”屬於立方體,因此可以說我的箱子是Cube class的一個object。一個java檔案中可以有好幾個class,但只有一個class前面可以加public修飾詞(modifier),而且有public修飾的class名稱必須亦為檔案名稱。由於[BoxFactory.java]中的public class名稱為[BoxFactory],因此檔案名稱必須為[BoxFactory.java]。範例[BoxFactory.java]中的Cube class與BoxFactory class可以寫在同一個java檔案內,也可以分開寫在2個java檔案內以利於專案分工;但不論如何,編譯後都會產生2個[.class]檔案。

2007/08/02

Array copy and assign

0 comments
Array assign:
int em01[] = {35000, 32000, 35000, 28000, 30000};
int em02[] = em01;
em01[0] = 25000;
System.out.println("em01[0] = " + em01[0]);
System.out.println("em02[0] = " + em02[0]);

result:
em01[0] = 25000
em02[0] = 25000
Array 在assign的時候,是將記憶體位址指定到em02,所以em01和em02是用同一個記憶體位址,也就是同一個變數

Array copy:
int em01[] = {35000, 32000, 35000, 28000, 30000};
int em02[] = new int[em01.length];
System.arraycopy(em01, 0, em02, 0, em01.length);
em01[0] = 25000;
System.out.println("em01[0] = " + em01[0]);
System.out.println("em02[0] = " + em02[0]);

result:
em01[0] = 25000
em02[0] = 35000
Array在copy的時候,須先宣告一個新的陣列,運用函式庫arraycopy,傳值給em02,因此兩個是屬於不同個變數,因此其中一個改變值的時候,另外一個不會一起改變。另外,不一定要用函式庫才能copy,當然也可以自己寫成是一個一個指定值。

Followers

人氣

   my space tracker
   HP Pavilion

 

Jake Hsiao--Self-trust is the first secret of success.. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com