JBTALKS.CC

标题: JAVA 高手们,我想请问些东西。 [打印本页]

作者: 宅男-兜着走    时间: 2009-1-13 08:36 PM
标题: JAVA 高手们,我想请问些东西。
class HighArray                                                                            能解释,单单class,还有private,和public 的分别吗?
{
        private long[] a;
        private int nElems;
        //---------------------------------------------------------
       
        public HighArray(int max)
        {
                a = new long[max];
                nElems = 0;
        }       
        //---------------------------------------------------------
       
        public boolean find(long searchKey)
        {
                int j;
                for (j=0; j<nElems;j++)
                        if(a[j]==searchKey)
                                break;
                               
                                if (j == nElems)
                                        return false;
                                else
                                        return true;
        }
        //--------------------------------------------------------
        public void insert(long value)
        {
                a[nElems] = value;
                nElems++;
        }
        //--------------------------------------------------------
        public boolean delete(long value)                                      这句我不是很明白,retuen true还有false 的是怎样的。
        {
                int j;
                for(j=0; j<nElems; j++)
                        if(value ==a[j])
                                break;
                        if(j==nElems)
                                return false;
                                else
                                        {
                                        for(int k=j; k<nElems; k++)
                                                a[k] = a[k+1];
                                                nElems--;
                                                return true;
                                }
        }
        //--------------------------------------------------------
        public void display()
        {
                for(int j=0; j<nElems; j++)
                        System.out.print(a[j]+" ");
                        System.out.print(" ");
        }
        //--------------------------------------------------------
}
class HighArrayApp
        {
    public static void main(String[] args)
    {
    int maxSize= 100;
    HighArray arr;
    arr = new HighArray(maxSize);
           
            arr.insert(77);
            arr.insert(99);
            arr.insert(44);
            arr.insert(55);
            arr.insert(22);
            arr.insert(88);
            arr.insert(11);
            arr.insert(00);
            arr.insert(66);
            arr.insert(33);
           
            arr.display();
           
            int searchKey = 1000;
           
            if(arr.find(searchKey))
                    System.out.println("Found " +searchKey);
                    else
                    System.out.println("Can't find "+searchKey);
                   
                    arr.display();
    }
}

还有就是,为什么 文件名是highArray.java, 但是class 的名字却是HighArray 这样也能启动?没分大小写?
作者: 毛毛小子    时间: 2009-1-13 09:11 PM
标题: 回复 #1 宅男-兜着走 的帖子
想请教下,就是那个arr.insert()是属于array一部分?什么用途的?
作者: Super-Tomato    时间: 2009-1-13 09:15 PM
private 私有
public 可供外部調用


之前有篇帖子問過了, 去回顧一下吧
作者: 宅男-兜着走    时间: 2009-1-13 09:20 PM
标题: 回复 #2 毛毛小子 的帖子
main 里。

arr = new HighArray(maxSize); // 这句是转换吧~
arr.insert 就要参考回 insert 的method 了。
作者: 毛毛小子    时间: 2009-1-13 09:57 PM
标题: 回复 #4 宅男-兜着走 的帖子
噢~~谢谢哦~~让我上了一课了
作者: 宅男-兜着走    时间: 2009-1-13 10:02 PM
标题: 回复 #5 毛毛小子 的帖子
说真的,我也不是很清楚勒。
不如如果你有兴趣知道的话,你可以 copy 这篇程序去问些高手,怕误导你就不好了。
作者: goodhermit95    时间: 2009-1-13 10:09 PM
em0011
公共厕所和家庭厕所有什么分别
作者: 宅男-兜着走    时间: 2009-1-13 10:20 PM
标题: 回复 #7 goodhermit95 的帖子
公用就是都能用, private 的不能共享。 是这样的意思吧?

作者: Super-Tomato    时间: 2009-1-13 10:22 PM
原帖由 毛毛小子 于 2009-1-13 09:11 PM 发表
想请教下,就是那个arr.insert()是属于array一部分?什么用途的?


  1. class HighArray  
  2. {
  3.         private long[] a;
  4.         private int nElems;
  5.         //---------------------------------------------------------
  6.       
  7.         public HighArray(int max)
  8.         {
  9.                 a = new long[max];
  10.                 nElems = 0;
  11.         }      
  12.         //---------------------------------------------------------
  13.       
  14.         public boolean find(long searchKey)
  15.         {
  16.                 int j;
  17.                 for (j=0; j<nElems;j++)
  18.                         if(a[j]==searchKey)
  19.                                 break;
  20.                               
  21.                                 if (j == nElems)
  22.                                         return false;
  23.                                 else
  24.                                         return true;
  25.         }
  26.         //--------------------------------------------------------
  27.         public void [color=Red][b]insert[/b][/color](long value)
  28.         {
  29.                 a[nElems] = value;
  30.                 nElems++;
  31.         }
  32.         //--------------------------------------------------------
  33.         public boolean delete(long value)   
  34.         {
  35.                 int j;
  36.                 for(j=0; j<nElems; j++)
  37.                         if(value ==a[j])
  38.                                 break;
  39.                         if(j==nElems)
  40.                                 return false;
  41.                                 else
  42.                                         {
  43.                                         for(int k=j; k<nElems; k++)
  44.                                                 a[k] = a[k+1];
  45.                                                 nElems--;
  46.                                                 return true;
  47.                                 }
  48.         }
  49.         //--------------------------------------------------------
  50.         public void display()
  51.         {
  52.                 for(int j=0; j<nElems; j++)
  53.                         System.out.print(a[j]+" ");
  54.                         System.out.print(" ");
  55.         }
  56.         //--------------------------------------------------------
  57. }
复制代码



  1. class HighArrayApp
  2.         {
  3.     public static void main(String[] args)
  4.     {
  5.     int maxSize= 100;
  6.     HighArray arr;
  7.     arr = new HighArray(maxSize);
  8.            
  9.             arr.[b][color=Red]insert[/color][/b](77);
  10.             arr.insert(99);
  11.             arr.insert(44);
  12.             arr.insert(55);
  13.             arr.insert(22);
  14.             arr.insert(88);
  15.             arr.insert(11);
  16.             arr.insert(00);
  17.             arr.insert(66);
  18.             arr.insert(33);
  19.            
  20.             arr.display();
  21.            
  22.             int searchKey = 1000;
  23.            
  24.             if(arr.find(searchKey))
  25.                     System.out.println("Found " +searchKey);
  26.                     else
  27.                     System.out.println("Can't find "+searchKey);
  28.                   
  29.                     arr.display();
  30.     }
  31. }
复制代码




注意看紅色的部分
作者: ~Zero    时间: 2009-1-13 10:32 PM
filename 和 classname 不一样不能 compile.

return boolean 的用意是, 有时候你的 calling method 可以知道 delete() 成功还是失败.
作者: Super-Tomato    时间: 2009-1-13 10:33 PM
原帖由 宅男-兜着走 于 2009-1-13 10:02 PM 发表
public boolean delete(long value)                                      这句我不是很明白,retuen true还有false 的是怎样的。



遺漏了你這個, 編程人員會想要回傳主要是因為想知道是否刪除成功, 不成功返回 false 這樣才知道要怎麼做接下來的處理

例如

      public boolean delete(long value)   //指定 delete 函數必須會傳 boolean 值
        {
                int j;
                for(j=0; j<nElems; j++)
                        if(value ==a[j])  // 比較如果 value 的值等于本身 a 阵列中的值的話就跳出這個 for 循環
                                break;

                if(j==nElems)  //離開 for 循環之後 j 的值是否超過, nElems 的長度, 也就是找不到相符資料
                                return false; //會傳失敗
                else
                 {
                               //找到的話就從目前的阵列移除
                               for(int k=j; k<nElems; k++)
                                          a[k] = a[k+1];

                               nElems--; //減少阵列的數目
                               return true;  //會傳成功
                }
        }
作者: 毛毛小子    时间: 2009-1-13 11:00 PM
我想请教下JAVA:
那个creating object :


ABC myABC;
myABC = new ABC();

怎样运用em0010
作者: goodhermit95    时间: 2009-1-13 11:07 PM
标题: 回复 #12 毛毛小子 的帖子
(不确定)
ABC myABC; //设myABC 为 ABC
myABC = new ABC(); //myABC = 新的ABC

新的ABC怎么用就看你的了 em0004
作者: 毛毛小子    时间: 2009-1-13 11:12 PM
标题: 回复 #13 goodhermit95 的帖子
我有看到

ABC myABC;                              //     ABC myABC = new ABC();
myABC = new ABC();        

可是弄了之后要declare T_T  

int number[ ]; em0010
作者: ~Zero    时间: 2009-1-13 11:17 PM
我们学校有一个规矩,
就是 break 这个 statement 除了在 switch case 里面, 其他地方都不能使用.
不然 0 分. 不管是作业还是考试.

虽然我不知道其中的原因, 但应该是有原因的吧...
作者: yclaw1015    时间: 2009-1-13 11:28 PM
标题: 回复 #9 Super-Tomato 的帖子
你们可以贴一些java的基础教程吗???
作者: Super-Tomato    时间: 2009-1-13 11:49 PM
原帖由 毛毛小子 于 2009-1-13 11:00 PM 发表
我想请教下JAVA:
那个creating object :


ABC myABC;
myABC = new ABC();

怎样运用em0010



class ABC
{
       public ABC()
       {
             System.out.print("This is ABC Class");
       }
}



class test
{
       public static void main(String[] arg)
       {
             ABC myABC;
            myABC = new ABC();
       }
}





原帖由 yclaw1015 于 2009-1-13 11:28 PM 发表
你们可以贴一些java的基础教程吗???


http://java.sun.com/docs/books/tutorial/index.html
作者: 毛毛小子    时间: 2009-1-14 12:37 AM
标题: 回复 #17 Super-Tomato 的帖子
明白!!
真是谢谢!!
em0005
作者: 宅男-兜着走    时间: 2009-1-14 01:12 PM
标题: 回复 #15 ~Zero 的帖子
1. 我请问,如果 在Method 里面放 break; 有效果的吗?
2. 请问, system.exit(0), 还有 break; 的分别怎么算?
3.当寻找不到 user 要求的var 的时候,要暂停 method, 是你你会怎么写?没switch case 的时候。
作者: Super-Tomato    时间: 2009-1-14 01:47 PM
原帖由 宅男-兜着走 于 2009-1-14 01:12 PM 发表
1. 我请问,如果 在Method 里面放 break; 有效果的吗?
2. 请问, system.exit(0), 还有 break; 的分别怎么算?
3.当寻找不到 user 要求的var 的时候,要暂停 method, 是你你会怎么写?没switch case 的时候。


break 只是脫離循環和調開 switch 的執行, system.exit 是結束整個程式
判斷是否為 NULL 值, 然後看 method 如果是要求必須回傳值的話就用 return 回傳
作者: 宅男-兜着走    时间: 2009-1-14 01:58 PM
标题: 回复 #20 Super-Tomato 的帖子
问题3表达错误。
我的意思是说,昨天我在 void method 里找到值,然后要退出循环,然后 compile 不给。
我是用 break;。 实际上是可以做到的对不?
作者: Super-Tomato    时间: 2009-1-14 02:18 PM
原帖由 宅男-兜着走 于 2009-1-14 01:58 PM 发表
问题3表达错误。
我的意思是说,昨天我在 void method 里找到值,然后要退出循环,然后 compile 不给。
我是用 break;。 实际上是可以做到的对不?



你都指定 void 了, 那麼就肯定不需要 return 值
直接在該方法中使用 if 判斷變數非 null 才執行你的 coding


void userInput(String value)
{
       if(value != NULL)
       {
               //blah blah blah....
       }
}
作者: 宅男-兜着走    时间: 2009-1-19 08:17 PM
请问大家哦, 如何计算 JAVA program的 执行时间有多久。

比如说啊,我要知道我的 CLASS 计算资料要多久。
作者: Super-Tomato    时间: 2009-1-20 12:36 AM
原帖由 宅男-兜着走 于 2009-1-19 08:17 PM 发表
请问大家哦, 如何计算 JAVA program的 执行时间有多久。

比如说啊,我要知道我的 CLASS 计算资料要多久。


在計算前和後使用 getTimer 相減即可得到時間差
作者: KKqqq    时间: 2014-6-16 11:48 PM
有谁懂java 的Gui ?我有一个bug,关于我的program要key in 整数罢了,但是点数的号码都按的进去.....




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5