Discussion:
[問題] 有些觀念看不懂~有人可以幫我講解嗎?感恩!!
(时间太久无法回复)
小伊
2006-09-30 03:58:49 UTC
Permalink
最近學剛修了資料結構(使用java)因為我之前只修過C,有些問題不太懂,版上有大大可\
以指導一下嗎?
我從課本結錄下來,這是一個計算加起來最大的連續序列演算法
------------------------------
public static int maxsubsum1(int〔〕 a)  /*public static 一定要打嗎?*/
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /*黃色部分的語法我想了很久,但看不太懂,請問它的觀念是什麼?*/
 /*[]是指陣列嗎?哪些變數是陣列的資料 型態*/
{ int maxsum=0;

 for(int i=0;i<a.length;i++)
 for (int j=i;j<a.length;j++) /*a.length那個點是什麼指令,這個我之前沒讀過,有人可以講解嗎?*/
 {
 int thisum=0;
 for(int k=i;k<=j;k++)
 thissum+=a〔k〕;

 if(thissum>maxsum)
 maxsum=thissum;

 }

 return maxsum;

不好意思,請大大幫忙講解了!!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.76.34.217
大家來創社 ^^//
2006-09-30 18:35:25 UTC
Permalink
※ 引述《***@bbs.wretch.cc (沒有msn的日子)》之銘言:
: ※ 引述《***@ptt.cc (小伊)》之銘言:
: > 最近學剛修了資料結構(使用java)因為我之前只修過C,有些問題不太懂,版上有大大可\
: > 以指導一下嗎?
: > 我從課本結錄下來,這是一個計算加起來最大的連續序列演算法
: > ------------------------------
: > public static int maxsubsum1(int〔〕 a)  /*public static 一定要打嗎?*/
: >  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /*黃色部分的語法我想了很久,但看不太懂,請問它的觀念是什麼?*/
: >  /*[]是指陣列嗎?哪些變數是陣列的資料 型態*/
: > { int maxsum=0;
: > 
: >  for(int i=0;i<a.length;i++)
: >  for (int j=i;j<a.length;j++) /*a.length那個點是什麼指令,這個我之前沒讀過,有人可以講解嗎?*/
: >  {
: >  int thisum=0;
: >  for(int k=i;k<=j;k++)
: >  thissum+=a〔k〕;
: > 
: >  if(thissum>maxsum)
: >  maxsum=thissum;
: > 
: >  }
: > 
: >  return maxsum;
: > 
: > 不好意思,請大大幫忙講解了!!
: 黃色的部份就是說這是一個函式
: 而他回傳資料型態是int、導入的是一個int的陣列
: a.length是指a這個array長度
: 應該是指裡面有多少不是空值的int資料

和空值沒有關係, a.length 就是 a 陣列的長度
所謂的 a.length 就是 access a 的變數成員 length
這個變數成員是 public final int
在陣列實體化之後就決定了

: 至於static要不要打取決你要怎麼使用這個function
: 如果你要在靜態宣告的函式底下使用這個函式
: 前面就必須加上static

在動態宣告的函式下也可以呼叫 static method
靜態宣告的函式也可以呼叫 static method

所謂的 static method
只能以 <classname>.<static-methodname>([arguments]*) 的方式來呼叫
而 static method 所 access 的成員變數,也是靜態的成員變數

我認為關於 static 和 non-static method 的不同
還是應該回歸到 OO 的概念來說明
才會有 feeling....

--
〒作者:H45 來自:85-205.dorm.ncu.edu.tw
◎二進位的世界【140.115.50.50‧binary.csie.ncu.edu.tw】
继续阅读narkive:
Loading...