名 稱
標 題
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG, WEBM,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 3072 KB。
  • 當檔案超過寬 250 像素、高 250 像素時會自動縮小尺寸顯示
  • 目前附加圖檔使用量大小: 160434 KB / 500000 KB
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」
  • 投稿時請點擊畫像認證後,再按下 [送出] 按鈕提交。
  • 鬧板、攻擊性發言、煽動性發言請無視(回應者也無視),並使用del或在貓管理部向管理員回報。
  • 新介面尚處於測試階段,如果有任何問題可以向管理員或於程設交流版反映。

題名一覽
13102: 無題 (2)13012: java問題 很多東西想不懂 (3)
13089: 無題 (10)13011: Hydrus Thread (2)
13067: 建議的初始化方法? (3)13002: 無題 (8)
13066: 無題 (7)12996: 以google plus為基底的google登入系統 (4)
13056: Java scanner一問 (17)12993: 無題 (2)
13046: 無題 (3)12992: 無題 (1)
13045: ! (0)12989: 無題 (1)
13034: 蘋果的APP上架,快照問題 (2)12985: Xcode實機測試閃退? (2)
13022: 無題 (26)12982: 無題 (4)
13015: 無題 (2)12973: 無題 (8)
檔名:1553142976955.jpg-(546 KB, 1167x1500)
546 KB
無題無名19/03/21(四)12:36:16 ID:frvlz13YNo.13102[回應]
來問個比較基本的C++問題
很多函式庫有自己的整數型別
不會跟你講明是多少bit
例如標準庫的std::string::size_type就是
雖然十之八九用int32_t去處理是ok的
但就是怕萬一
怕不同平台有不同的規格
各位在型別轉換時有什麼好方法嗎?
有什麼慣用手法來檢查嗎?
無名19/03/21(四)15:29:48 ID:tOUw.qRgNo.13103
>>13102
sizeof
無名19/03/21(四)15:57:43 ID:frvlz13YNo.13104
>>13103
只用sizeof檢查的話
最後會逼得我一直用uintmax_t來處理
拿size最大的整數型態會導致計算變慢
況且沒人會去處理那麼長的字串(只是舉個例啦)

我目前是使用std::numeric_limits去判斷
衡量我給的變數裝不裝的下
即便std::string::size_type實際上是誇張的128bit
上面裝的數字99%的情況用uint32_t就可以儲存了
算完要丟回給std::string時又需要在撿查一次
因為也有可能std::string::size_type其實是int32_t
uint32_t裝的數字有那麼一點點機會可能會超出std::string的容量

變成輸出輸入都要檢查
會寫的很醜
所以才會上來問有沒有什麼慣用手法

檔名:1552656321560.jpg-(40 KB, 520x740)
40 KB
無題無名19/03/15(五)21:25:21 ID:lmiOY2ecNo.13066[回應]
最近想在程式碼堆裡搜尋一段文字時遇到了麻煩
當我想搜尋包含換行字元的關鍵字時
該怎麼做?

例如我下面這情況
我只記得那段寫了這樣的東西
try{
return std::string ...
只搜 return std:: 這句可能會找到太多符合條件的結果
但我很確定 try 後面就return一個字串物件的地方非常非常少
所以把上一行也加進來一起搜會好找很多

有想過在shell script裡面使用grep+regex啦
不過沒成功
notepad++有搜尋整個資料夾的功能
但是又只能找單行
無名19/03/15(五)23:04:17 ID:u6cyi8FENo.13068
推上github,然後用github的搜尋ww
無名19/03/15(五)23:51:39 ID:4.mEKdTgNo.13069
檔名:1552665099557.png-(92 KB, 421x248)
92 KB
換行通常是\r\n或是\n
或者用正規表示法找也OK喔,
至少NOTEPAD++就可以這樣幹。(搭配尋找整個資料夾)
無名19/03/16(六)10:01:46 ID:ka1rwVdcNo.13073
檔名:1552701706019.png-(122 KB, 1132x1045)
122 KB
>notepad++有搜尋整個資料夾的功能
>但是又只能找單行
???
原PO19/03/16(六)14:31:10 ID:dUV0BJAoNo.13074
>>13069
>>13073
好的
我去眼科掛號了
無名19/03/16(六)22:54:25 ID:RIMyk.76No.13078
>>13068
github的搜尋爛到爆啊
無名19/03/20(三)10:21:17 ID:bhV03rc2No.13100
perl
無名19/03/20(三)20:44:31 ID:rybz4eKcNo.13101
改用 VSCode

檔名:1552887517623.gif-(88 KB, 220x202)
88 KB
無題菜比八19/03/18(一)13:38:37 ID:G6T1KkN2No.13089[回應]
各位前輩好,想請教個比較概念的問題。

我目前專案中有個目錄名為 module ,根據老大的解釋裡面是放可隨意拆裝的功能塊,其中有 Logger 、 MQ 、 Metrics 等。

以我的理解,可以隨意拆裝應該是指即使移除或是替換成別的都應該不影響 App 執行才對,但在程式碼中常常會有:

func doSomething() {
// ...
if err != nil {
logger.Info(err)
}
}


這樣到處都有使用 Logger 提供的 func 程式碼存在,怎麼可能拆除也不影響呢?

不好意思敘述有點長,我想問的是在程式設計中," 模組( Module ) " 到底是什麼?看實際用起來跟依賴套件似乎沒有實際的差別,還是說這其實是一樣的東西不同的名詞呢?

還望島民指教提點,非常感謝!
無名19/03/18(一)13:45:46 ID:2A96EG2wNo.13090
>>13089
老大是誰?獅子老大嗎?
無名19/03/18(一)18:54:13 ID:FlOtUCq.No.13091
>>怎麼可能拆除也不影響呢?
換個空殼版的Logger接上去不就等於拆了嗎?

>>根據老大的解釋
那就去問你的老大啊==
無名19/03/18(一)20:36:09 ID:HTK/Gy/6No.13092
檔名:1552912569600.png-(107 KB, 800x509)
107 KB
>>13089
這就是俗稱的"耦合性"

就我來看,主因是你們log放的地方怪怪的,
比起耦合性這個我更擔心你們有沒有遵守單一原則。

另外err是error,exception嗎?
為何不要直接拋出去讓架構去捕捉?是沒有做嗎?
還是有特殊目的?
如果有一百個method,你們要處理err一百次嗎?

至於module....不要太執著,只要程式"分類"的夠好
,自然就會開始出現Mudule/Modele的味道。
如果捨本逐末,反而會出現為module而module的噁心Code

總之,看你們老大是誰吧,不是獅子老大的話沒興趣。
無名19/03/18(一)20:50:28 ID:7q8drWscNo.13093
把所有logger移出去開PR啊
工程師是靠程式講話的
菜比八19/03/18(一)20:55:25 ID:k3hYovboNo.13094
>>No.13090
其實我還是第一次知道有獅子老大⋯⋯
是我們專案的領導人,老大是因為我平常叫習慣的關係,抱歉抱歉

>>No.13091
這樣依賴套件如果有做 Warpper 的話都可以替換,也就是第三方的函式庫稱為套件,我們自己包裝、撰寫的稱為模組這樣嗎?

有找他問過,只是真的聽不懂,只理解到可以拆裝的功能就是模組

>>No.13092
抱歉沒有附上使用的語言,我們使用的是 Go 所以那種處理有時會出現。

那可以問問一般專案會有 module 這個目錄嗎?

抱歉不是獅子老大⋯⋯ 。・゚・(つд`゚)・゚・
無名19/03/18(一)21:23:44 ID:HTK/Gy/6No.13095
檔名:1552915424152.png-(32 KB, 800x600)
32 KB
>>13094
>一般專案會有 module 這個目錄嗎
可能有,不過這不是你應該在意的地方。

>只是真的聽不懂,只理解到可以拆裝的功能就是模組
別擔心,這種問題你問10個工程師會有11種答案。
你只要在意這個架構/分類你覺得好不好用(維護/開發)就可以了。
無名19/03/18(一)22:03:57 ID:/6wTNJTgNo.13096
什麼叫做整篇移除也不會造成任何影響、也不在其他地方被呼叫的程式碼?
我想八成是永遠不會被執行到的程式碼吧

模組化的概念指的是
你可以替換少數幾個檔案就把該功能的行為整個換掉
而不需要去每個呼叫他的地方修東修西
像你的logger.Info(err)本身沒有暗示這err是要被記錄在檔案裡、顯示在螢幕、還是傳給伺服器
一切只看logger裡面怎麼實作
哪天你們想要改變logger的執行方式時只要改logger就好,不需要改到logger.Info(err)這行
這個就是模組化
如果你寫成logger.print(err.toString())
那你以後想要改用字串以外的方式做log就會吃很多苦頭,就是不模組化

模組化通常只支援替換,而不支援「拆除」
畢竟那毫無意義,真的想拆大不了寫一個空的模組裝上去就好
沒必要硬是設定成可以拆而不裝

>>也就是第三方的函式庫稱為套件,我們自己包裝、撰寫的稱為模組這樣嗎?
這也是一種模組化
如果你在你們的程式碼裡到處寫像是 MicrosoftWindows.writeFile("...") 這樣的東西
也許哪天就會全公司加班把他們通通改成 Ubuntu.file_print("...") ,還要擔心會不會睡眠不足改出BUG
不如一開始就多包一層,哪天要換平台時只要改包的那層裡面就好

>>那可以問問一般專案會有 module 這個目錄嗎?
我個人不會取這種名字
取這名字不就代表你們其他的程式碼都不模組化嗎
無名19/03/18(一)22:24:20 ID:HTK/Gy/6No.13097
檔名:1552919060721.png-(244 KB, 1000x1000)
244 KB
>>13096
>替換少數幾個檔案就把該功能的行為整個換掉
這個叫做邏輯抽離

>logger裡面怎麼實作
沒錯,這就是界面區隔與實作

>就是模組化
感謝你貢獻第一種答案

>不如一開始就多包一層,哪天要換平台時只要改包的那層裡面就好
寫成static呼叫或是factory註冊更方便喔

>不就代表你們其他的程式碼都不模組化嗎
很遺憾,有些架構規範就是要給你結尾module,有時這不是開發者能決定的事情
菜比八19/03/19(二)11:11:36 ID:QQGgvslMNo.13098
>>No.13095
因為屬於那種有在意的問題不解決就很難受的類型,不過我大概懂 module 目錄跟我想的不同,不是說在裡面的才稱為 module


>>No.13096
似乎有一點明白了,這樣來看有部分套件也屬於模組。

只要規定好溝通的介面與隱藏實作(或稱抽離?),應該都屬於模組。
感謝熱心島民的指教,我想模組應該是種強力封裝,並提供了對外介面的功能組。
因為程式碼內用的是模組介面,所以不用擔心實作的替換。

模組描述看來就是程式的基本設計原則啊⋯⋯想不到竟然為了這個困擾這麼久
無名19/03/19(二)20:32:14 ID:sqLok2V2No.13099
檔名:1552998734727.png-(54 KB, 600x600)
54 KB
>>13098
恭喜你找出並提供了第二種答案

檔名:1552478050340.jpg-(7 KB, 250x214)
7 KB
Java scanner一問無名19/03/13(三)19:54:10 ID:AqCCRy.2No.13056[回應]
想請問 如果我宣告2個int變數為num1,num2
然後開scanner 該怎麼讓scanner認為數字與數字之間的空白鍵
是代表我輸入了2個整數?
舉例來說就是:輸入25 空白鍵 50 如何讓25跟50分別指定給num1
跟num2? 要開2個scanner?
有回應 7 篇被省略。要閱讀所有回應請按下回應連結。
無名19/03/16(六)00:20:41 ID:nnYgq04YNo.13071
檔名:1552666841057.png-(68 KB, 400x275)
68 KB
>>13064
因為只是順手整理程式碼ㄛ,
甚麼Java的int居然要給預設值
與部分編譯器跑中文會炸掉
與微妙的一定要讀到兩個整數才會離開迴圈,
或是可能會把char給變成int

這些事情在良好的寫作習慣下面,
透過編譯器的報錯,
與行為重新思考都可以得到解答ㄛ。
無名19/03/17(日)10:00:35 ID:pTJOYbqgNo.13079
>>13071
我原po 想請問這題有沒有更好的寫法或者更好的邏輯思考方向?
剛學java不久 只能想辦法用目前所學去盡量實現所想
無名19/03/17(日)15:20:06 ID:.T1A1JbINo.13080
>>13079
想想看如果不是兩個數字
而是一千個數字的時候要怎麼做
想出來就邁進一大步了ㄛ!
無名19/03/17(日)15:21:12 ID:JQofJkUQNo.13081
檔名:1552807272329.png-(104 KB, 724x484)
104 KB
>>13079
1.變數命名有意義,笨一點就強迫自己迴圈的i寫index(count),每次保持單層迴圈。
(例如num1就可以改成repeatNumPerLine,num2就是repeatLineNum之類)
2.當處理變複雜時,用函式包裝,並用名稱隱喻行為。
3.看著你的程式碼,解釋他,用目的與目標解釋,不要照唸程式碼。
4.當你發現你的程式碼與你要的不一樣時,請承認自己想錯了,殺死這一刻前的自己吧。

PS:若你沒辦法在回頭看程式碼的30秒~1分鐘推估當初的目的
,那就代表你寫的方式有問題。
(往後維護的人也會遇到同樣狀況,甚至更糟,因為他們甚至不是作者)
無名19/03/17(日)16:41:56 ID:pTJOYbqgNo.13082
>>13080
想過 目前只能乖乖一個變數一個if
知道用try catch能解決 但是還沒有去學

>>13081
因為目前都是一次性使用 沒有特別去寫method包起來
看自己的都看得懂 多少會寫點註釋
但發現看別人的都很看得很痛苦 有時候還看不太懂 即使是做同一
件事 不知道是因為我邏輯不好還是因為跟對方的想法差太多
無名19/03/17(日)16:55:49 ID:JQofJkUQNo.13083
檔名:1552812949565.png-(26 KB, 800x600)
26 KB
>>13082
給你一個建議,可能你聽不懂。
沒事不要用try catch,就算catch了也要throw出去。

至於抽出method這件事情,不一定是要共用才要抽出,
為了讓程式碼好閱讀我們也會抽出邏輯。

至於你看別人的Code很痛苦,
你寫出來的Code說真的我也是覺得慘不忍睹,
甚至連縮排都不穩定。
只能說你多看網路的Example與命名原則鍛鍊品味,別無他法。

【另外好的程式碼,其實需要的註解不多】
可能你現在也很難懂,但沒關係,放在心上就好。

總之就是你問太多,沒啥用,多寫多看多回想就是了。
因緣到了看幾本觀念導正的書就貫通了。
無名19/03/17(日)17:19:08 ID:pTJOYbqgNo.13084
>>13083
縮排的問題...我再去設定code style改改
無名19/03/17(日)20:00:51 ID:PxRMPYiANo.13085
>>13083

>沒事不要用try catch,就算catch了也要throw出去。
有點好奇, try-catch 不是為了處理錯誤嗎?還是因為原 PO 剛學所以才建議少用呢?
無名19/03/17(日)20:15:35 ID:JQofJkUQNo.13086
檔名:1552824935759.png-(60 KB, 400x400)
60 KB
>>13085
真實的系統理論上會有一個專門處理Exception的Handler,
而新手濫用try catch容易造成一個壞習慣【錯誤不爆出就沒事了】,
然後就開始濫用try catch之路了。

並且,當Exception發生時,最好的處理就是不要特別處理他,
這樣才能順著stack trace回追問題點。

不過這些東西對於剛學程設的人應該是聽不進去也不懂啦,
所以也不用放在心上,時候到了自然會有人電你。
無名19/03/17(日)20:38:15 ID:lu2I63AsNo.13087
個人來說
要不要用try catch處理錯誤要根據程式會跑多久而定
如果程式只會跑幾秒就結束(初學差不多都這樣),那不處理也不是什麼問題,反正出事了就debug
但如果程式會跑幾個小時或幾天幾個禮拜那種,你不會希望跑了老半天的結果因為一個小bug而毀掉,所以才需要好好處理錯誤,讓程式能繼續跑
雖然每隔一段時間就自動把結果存起來也是好方法,但沒保證存的過程中不會爆炸,所以還是需要處理錯誤

檔名:1552660933268.png-(433 KB, 1108x1000)
433 KB
建議的初始化方法?無名19/03/15(五)22:42:13 ID:raTzTgxANo.13067[回應]
作業寫一半想到的問題
C++ 如果 class 中有個 const array
是在 declaration 時就接著宣告
class A {
public:
/*...*/
private:
const string tag[12] = { "Jan", "Feb", /*...*/ };
/*...*/
};


還是利用 constructor
A::A () : tag { "Jan", "Feb", /*...*/ } {
/*...*/
}


兩種方法會建議使用哪種呢
無名19/03/15(五)23:59:24 ID:4.mEKdTgNo.13070
檔名:1552665564008.png-(40 KB, 414x248)
40 KB
對於建構術式設定prop的部分,
我習慣是只處理
1.需要外部傳入的
2.需要判斷當下型別的(如abstract物件,泛型等)

對於固定的部分就跟宣告一起設定就好,
因為後續維護擴充除錯時,
習慣性一定是看這個prop是哪裡宣告的。
(如此看到就知道了)
無名19/03/16(六)01:04:39 ID:S.9W.m/kNo.13072
//in .h

class A {
public:
/*...*/
private:
static const string tag[12];
/*...*/
};

//in .cpp

const string A::tag[12] = { "Jan", "Feb", /*...*/ };

A::A () {
/*...*/
}
無名19/03/16(六)14:45:26 ID:dUV0BJAoNo.13075
使用建構子初值器會逼的你每個建構子都要寫一遍
幹嘛這麼累?

檔名:1551790681096.jpg-(34 KB, 600x800)
34 KB
無題無名19/03/05(二)20:58:01 ID:WrY2UMJINo.13022[回應]
static void passValue(double value) {
value = 20.0;
}

static void passReference(Pen reference) {
reference.price = 20.0;
}

public static void main(String[] args) {
double price = 10.0;
passValue(price);
System.out.println(price);

Pen myPen = new Pen();
myPen.price = 10.0;
passReference(myPen);
System.out.println(myPen.price);
}
}

Java
不懂為什麼這邊
double price = 10.0;
passValue(price);
System.out.println(price);

price的輸出值會是10.0 passValue(price)不是應該把上面
宣告的price=10.0覆蓋成20.0了嗎?
有回應 16 篇被省略。要閱讀所有回應請按下回應連結。
無名19/03/09(六)11:14:46 ID:ohDP7wbUNo.13044
>>13043
指標的輕便性關係到執行效率
不可能完全移除
只能想辦法去阻止指標的那些危險特性
無名19/03/10(日)23:33:28 ID:.kPudb3ANo.13049
想請教一下
如果在passValue這個方法裡
去掉void
加上return value
System.out.println(price); 會變成20.0嗎?

另想請教C#的問題

JAVA 沒有指標
(passing by value 傳值)

C++ 有指標
(passing by value 傳值)
(passing by reference(pointer) 傳參考(指標))

C# 可以用unsafe識別字開啟指標
(passing by value 傳值)
(passing by reference(pointer) 傳參考(指標))

passing by address 好像等於 passing by reference?

所以C#也是像C++一樣可以選擇要不要用指標?
還是C#是用別種方式?
這部分有點弄不懂,不知道這樣是否有理解錯誤?
無名19/03/11(一)00:31:35 ID:hAsfOLtQNo.13050
>>13049
>>System.out.println(price); 會變成20.0嗎?
不會
除非你price=passValue(price);
無名19/03/11(一)13:41:47 ID:zH5yTorsNo.13051
>>13049
C#有個ref關鍵字
passReference(ref int arg) { arg = 20; }

int value = 10;
passReference(ref value);
Console.WriteLine(value); // 20
無名19/03/12(二)22:34:45 ID:Uoa0gHMANo.13052
檔名:1552401285981.jpg-(64 KB, 650x454)
64 KB
只是閱讀方式的問題
無名19/03/12(二)22:35:31 ID:Uoa0gHMANo.13053
檔名:1552401331475.jpg-(65 KB, 299x236)
65 KB
>>13052
寫個JAVA還在那邊底層來底層去,JAVA的設計者都要哭了。
無名19/03/12(二)22:38:56 ID:Uoa0gHMANo.13054
檔名:1552401536601.png-(84 KB, 500x296)
84 KB
>>13051
Ref是好東西沒錯,不過MSDN也說了,若沒必要不要使用。

現在也可以直接回傳Tuple結果,或是直接DTO拋轉。
無名19/03/12(二)22:58:33 ID:Uoa0gHMANo.13055
檔名:1552402713808.png-(243 KB, 1080x768)
243 KB
>>13054
重新看一下MSDN,不建議的部分好像拿掉了。

以為是我精神錯亂了重新GOOGLE,確認他曾經"不建議"過,看來我神智還很清楚。

https://home.gamer.com.tw/creationDetail.php?sn=3837690
https://codeday.me/bug/20180108/115804.html
無名19/03/14(四)00:24:27 ID:3tKkqLf.No.13061
>>13055

有點好奇這段轉折是怎麼發生的,最新的C#有把哪邊改掉了嗎?
之前第一次看到這東西的時候有驚訝一下但是看到〝建議重新審
視程式架構〞縮了。
無名19/03/14(四)21:00:05 ID:P/63Z4B2No.13062
檔名:1552568405654.png-(59 KB, 414x248)
59 KB
>>13061
也許是他們在最近的C#版本中把不安全有疑慮的部分給移除了。
*有注意到他們針對C#7.0有寫修改
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/classes-and-structs/ref-returns
>從 C# 7.0 開始,C# 支援參考傳回值 (ref 傳回值)

檔名:1552169796153.jpg-(204 KB, 1108x581)
204 KB
無題無名19/03/10(日)06:16:36 ID:zjbqW936No.13046[回應]
請問島民,附圖這種過濾程式是利用C就可寫出來的嗎?
感覺好像不太像
無名19/03/10(日)06:33:15 ID:NzLVQ6WoNo.13047
你這不就爬蟲?
無名19/03/10(日)12:52:28 ID:BDYTmf4UNo.13048
C寫得出來
只是如果你要寫得像附圖一樣漂亮的話可能要寫五年
無名19/03/18(一)11:40:10 ID:94SkaLTkNo.13088
沒有要寫到很底層的東西就不要用C來虐待自己了...

檔名:1552139751907.jpg-(54 KB, 1024x576)
54 KB
!無名19/03/09(六)21:55:51 ID:uI0zutXUNo.13045[回應]
https://www.youtube.com/watch?v=9HnriIdzO0o

在學Unity做遊戲 在9.53
物件沒有這個功能沒法做地面跟剛體無法讓人物掉下來?

檔名:1551857340795.png-(1 KB, 112x160)
1 KB
蘋果的APP上架,快照問題無名19/03/06(三)15:29:00 ID:YKwb1yCUNo.13034[回應]
不是很確定這算不算這邊的問題,如果不行的話就請版主砍了吧...

問題是這樣的,現在我要搞蘋果的APP上架...
然後蘋果的上架要求要有手機執行APP的螢幕快照
而且要求IPHONE一定要有5.5吋顯示器規格
IPAD一定要有12.9吋規格

然而我們手邊只有兩隻小於5.5吋的IPHONE,跟一個9.多吋的IPAD
網路上雖然教說可以直接用xcode的模擬器...
但是我的APP有部分功能是只能在arm架構下才能跑的...xcode的模擬器根本無法跑....

請問有沒有其他方法?
用較小的手機去拍硬把他拉大會不會被審查打臉....
無名19/03/06(三)16:13:09 ID:mBWdnmqsNo.13035
沒被退過幾次件,都不好意思說自己上架過iOS App
無名19/03/06(三)23:10:01 ID:EKUYn.JcNo.13036
直接試試看吧
通常隔天就知道審核結果了
被退再繼續改

檔名:1551590765929.jpg-(5 KB, 310x163)
5 KB
java問題 很多東西想不懂無名19/03/03(日)13:26:05 ID:qZzAYRh.No.13012[回應]
public class Student {
int score = 90;
public void play(int hours)
{
score -= hours;
}

public void study(int hours)
{
score += hours;
}

public static void main(String[] args) {
Student student1 = new Student();
student1.study(2);
student1.play(5);

System.out.println(student1.score);
}

我自己的理解是 :
在Student這個class內建立2個method
分別是play跟study
然後進入main 開始執行程式
Student student1 = new Student();

宣告一個資料類型為Student的變數student1
並且創建一個新的Student()物件給stundent1儲存
student1.study(2);

呼叫已經儲存Student()的student1內的study method

想請問:Student student1 = new Student();
Student student1的Student 是否代表資料類型? 為什麼命名
一定要跟class一樣?
Student()代表的意義是指Student這個class內 main()以外的所有
東西嗎?
無名19/03/03(日)13:51:39 ID:9j1D6Hc6No.13013
>>Student student1的Student 是否代表資料類型? 為什麼命名
一定要跟class一樣?

1.是
2.Java的語言設定就是這樣 Class名稱來就代表物件型態 有些語言可以類型別名宣告但是Java沒有 就這樣

>>Student()代表的意義是指Student這個class內 main()以外的>>所有東西嗎?

這叫建構式
無名19/03/04(一)00:54:41 ID:Ar4A8tVMNo.13014
JAVA當年的自我期許就是比C++更加OO 更加安全
結果誰知道OO在多執行緒時代越來越難堪
Java的OO顯得作繭自縛
C++的OO反而因為簡約而還沒OO到讓人反感

強制每份Code文件都是一個Class實在有夠死板的
當然啦 禁止使用指標這點還挺不錯的
也禁止了多重繼承
避免了許多新手搞死自己的手段
無名19/03/06(三)13:08:37 ID:OI80c5k2No.13032
>>13014
你忘了還有殘障泛型和類型抹消


【刪除文章】[]
刪除用密碼:
第一頁[0] [] [2] [3] [4] [5] [6] [7] [8] [...][32]