2007年1月11日

          數(shù)組,集合

          1.10 星期三
          ? array 數(shù)組:數(shù)組是一個具有相同類型的數(shù)據(jù)值得索引集合.

          ? 數(shù)組申明:double[] rainfull; 推薦
          ?????????? 或
          ??? double rainfull[];
          ?
          ?? 引用數(shù)據(jù)類型:接口,對象,數(shù)組.

          ?? rainfull = new double[12];
          ?? 創(chuàng)建一個長度為12的數(shù)組,把空間地址賦給rainfull.

          ?? 數(shù)組索引是從0開始(沒特殊要求情況下,索引一般都是從0開始)
          ?
          ?? 動態(tài)數(shù)組--自動增長

          ?? 數(shù)組.length (屬性)
          ?? String.leng()? (方法)

          ?? String[] m = {"a","b","c"...}
          ?? 在申明初始化時,數(shù)組的大小設定.

          ?? int size;
          ?? int[] number;
          ?? size = Integer.parseInt(JOptionPane.showMessageLag(null,"size of .."));??
          ?? number = new int[size];?? (方法也不是很好.因為size不一樣,對象也就不一樣.)
          ?? 可變型數(shù)組?
          ???
          ?? 對象數(shù)組
          ?? 數(shù)組的類型不是基本數(shù)據(jù)類型;
          ?? Person[] person;
          ?? person = new Person[20];
          ?? 對象數(shù)組每個元素都是一個對象,沒初始化時是null.

          ?? Person[0] = new Person[]; 創(chuàng)建對象

          1.11 星期四
          ?? JCF--java集合框架
          ?? Java Collection Framework
          ?? JCF是什么?
          ?? 是java語言設計出來的針對底層算法和數(shù)據(jù)結構的一系列類.
          ?? 在哪用JCF?
          ?? 凡是提到數(shù)據(jù)結構和算法的都可以用JCF
          ?? 為什么用JCF?
          ?? 讓程序員的重點放在業(yè)務上,而不是如何去寫算法上.
          ??
          ?? 接口???????????????? Collection
          ????????????????????????? |??? |
          ????????????????????????? |??? |
          ??????????????????? set----???? ----list?????????????? map
          ?
          ?? 實現(xiàn)??????????? HashSet????????? ArrayList????????? SoredMap
          ?
          ?? 算法??????????? Collections

          ?? 以上構成JCF
          ?
          ?? list 列表???? map 映射
          ?? list的重要特征是幫我們管理大量對象

          ?? ArrayList 數(shù)組列表
          ?? LinkedList (單雙)鏈表 (不是連續(xù)的,通過指針連接)

          ?? ArrayList al = new ArrayList();
          ?? al.add(1);
          ?? al.add(4);
          ?? al.add(2);? 增加
          ?? ......

          ?? al.remove;? 刪除

          ?? System.out.println(al);
          ?? System.out.println(al.get(3));

          ?? 排序
          ?? Collections.sort(al); 小到大
          ?? Collections.max(al);
          ?? Collections.min(al);
          ?? Collections.sort(al,Collection.reverseOrder);? 大到小
          ?
          ?? Vector 跟 ArrayList 很相似
          ?? 向量

          ?? 如何便利集合
          ?? Iterator it = al.iterator(); 迭帶器 挨個訪問
          ?? while(it.hasNext())
          ?? {
          ????? System.out.println(al.next);
          ?? }

          ?? HashMap 不允許重復
          ?? TreeMap 自動排序
          ?
          ?? treeMap tr = new TreeMap();
          ?? tr.put(1,1);? (key,value)
          ?? .......

          ?? Object[] o = tr.keySet().ToArray();
          ?? Object[] o = tr.value().ToArray();???????????????
          ?
          ?? System.out.println(tr);

          ?? for(int i = 0;i<o.leng;i++)
          ?? {
          ????? System.out.println(0[i]);
          ?? }

          posted @ 2007-01-11 21:53 扯 閱讀(340) | 評論 (1)編輯 收藏

          java GUI

          12.25!~12.27
          GUI
          1 容器,部件
          2 事件處理

          awt和swing的特點:
          awt(抽象窗口工具集)是依賴操作系統(tǒng)的GUI.
          能夠顯示出來的組件是不同操作系統(tǒng)的共有組件.(但是不太好看.)
          swing(模擬GUI組件)速度比awt要慢的多.
          swt(sun公司的,是swing和awt的綜合體)如果swt產(chǎn)生的組件awt有就直接調(diào)用, 沒有就模擬出來.這樣既解決了跨平臺的問題,也解決了速度慢的問題.


          低層容器:容器是包含其他組件的組件.
          JFrame,JApplet,JDialog.?

          布局管理器:
          標準布局,自由布局.

          GUI三個步驟:
          1.選擇容器
          2.為容器設置布局方式
          3.為容器填加組件

          導入3個包
          import javax.swing.*;
          import java.awt.*;
          import awt.event.*;

          GUI底層容器的實現(xiàn)方式
          第一種:
          JFrame jf = new JFrame();? //拿一個容器
          jf.setLayout(null);???????
          JButton jb = new JButton();
          jb.setBounds(0,0,20,20);? //絕對布局
          jf.add(jb);

          this.setSize(200,200);
          this.setVisible(true);

          第二種:
          類 extends JFrame?? //讓自己的類變成容器
          申明組件;
          public 類
          {
          ?Container ct = this.getContentPane();
          ?ct.add();
          ?this.setSize();
          ?this.setVisible();
          }

          this.setCursor(new Cursor(Cursor.HAND_CURSOR));? //變手

          Image image = new ImageIcon("Sunset.jpg").getImage();
          setIconImage(image);//改變圖標


          容器,根容器,部件看gui資料? E盤..

          布局管理器
          FlowLayout 面板(缺省管理器) 流布局管理器
          在setLayout(null)下全是FlowLayout
          BorderLayout JFrame(缺省布局管理器) 東 西 南 北 中
          GridLayout 行列(像表格)
          CardLayout 卡片布局管理器(沒有頁簽)
          GridBagLayout 格蘭包布局管理器(標準管理器中最靈活的,不好把控)??


          FlowLayout 從上到下,從左到右放置.
          1.當?shù)谝恍袥]有排滿時,會把第一行排滿再排下一行.
          2.不管布局管理器是否改變,組件大小都不會改變.
          FlowLayout folw = new FlowLayout (FlowLayout.LEFT);
          3.在缺省狀態(tài)下從中部開始.


          BorderLayout
          當東西南北任何一個地區(qū)沒放置任何組件時,中部區(qū)域會把周圍的區(qū)域侵略掉.
          setLayout(new BorderLayout());
          組件會隨著容器大小的變化而變化.
          add("North",組件); 不好用
          add(組件,BorderLayout.NORTH); 清晰

          GridLayout
          組件會隨著容器大小的變化而變化.
          setLayout(new GridLayout(3,2));? 行列
          add(new Button("first",0));
          根據(jù)序列依次填進去,只有列滿了才去填行.
          validate();? 讓容器刷新

          GardLayout
          GardLayout card = new GardLayout();
          setLayout(card);
          add("1",new Button(""));


          CardLayout cl = (CardLayout)cardLayout.getLayout;
          cl.show(cardLayout,"card1");

          事件
          class 類 extends JFrame implements(實現(xiàn)) ActionListener(接口)
          {????????????????????? (受托事件處理)
          ?????????????????????? 不同的事件不同的部門處理
          }
          1 讓類變成監(jiān)聽者
          2 賦予多少職責就實現(xiàn)多少
          3 建立部件與監(jiān)聽者的關系
          jb.addActionListener(this);

          ?

          CardLayout cl = (CardLayout)card.getLayout();
          String s = e.getActionCommed();
          if(s.equals("上一步"))
          {
          ?cl.show(card,"card2");
          ?????? ?或者
          ??????? cl.previous(card);
          ?button.setEnabled(false);
          }
          else if(s.equals("下一步"))
          {
          ?cl.show(card,"card1");
          ?????? ?或者
          ??????? cl.previous(card);
          ?button.setEnabled(false);
          }

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          posted @ 2007-01-11 21:11 扯 閱讀(303) | 評論 (0)編輯 收藏

          java基礎

          2.19 星期二
          ? 在方法里面申明的屬性必須初始化.(局部變量)
          ? 在類里面申明的屬性不用初始化.(全局變量)

          ? 如果一個方法有返回值,那么方法里必須加上return.返回類型沒有void.

          ? 構造器就是類的構造方法.

          ? 構造方法的基本特點:
          ? 方法名和類名一致,方法名沒有返回類型.

          ? 構造方法的特性:
          ? 1.每個類一定會有一個不帶參數(shù)的默認構造方法.
          ? 2.如果一個類定義了一個帶參數(shù)的構造方法,那么不帶參數(shù)的構造方法就會被洗刷掉.
          ? 3.構造方法可以重載.(如一個帶參數(shù)的和一個帶參數(shù)的)
          ? 一個類的方法同名叫做方法重載.
          ? 4.構造方法是不能被繼承的.

          ?
          ? 實例變量:在類里面任何一個方法外面的變量.每個對象都有屬于自己實例變量的拷貝.

          ? public private這個我們稱之為"可見性修飾符".它來指定數(shù)據(jù)成員和方法的訪問能力和訪問級別.

          ? 如果這個方法的行為是改變對象的屬性,設置對象屬性的值,那么這個方法稱之為"修改器".
          ? public void setHeight(float h, float w)
          ? {
          ???? height = h;
          ???? weight = w;
          ? }?

          ? 如果這個方法只是返回對象屬性,那么我們稱這個方法為"訪問器".
          ? public void abc()
          ? {
          ???? return a;
          ? }

          12.20 星期三
          ? static int i;是類變量
          ? 缺省修飾符:本包的都可以訪問.
          ? 公共修飾符(public):任何地方都可以訪問.

          ? if()
          ? 語句1;
          ? else
          ? 語句2;
          ?
          ? ?? :?????? if else的工程用法(三目運算符)
          ?
          ? switch的條件語句只能是整數(shù)

          ? equals方法是被重寫過的.
          ?
          ? equals跟==的區(qū)別:
          ? equals比較的是內(nèi)存空間的內(nèi)容是否相同
          ? == 比較的是兩個對象的地址是否相同

          12.21 星期四

          properties
          ?
          import java.io.*;
          import java.util.Properties;

          class P
          {
          ?Properties pro;
          ?
          ?public P()
          ?{
          ??pro = new Properties();
          ?}
          ?
          ?public void load(String fileName)
          ?{
          ??try
          ??{
          ???pro.load(new FileInputStream(fileName));加載
          ??}
          ??catch(IOException e)
          ??{
          ???e.printStackTrace();
          ??}
          ?}
          ?
          ?public void getP(String key)
          ?{
          ??System.out.println(pro.getProperty(key));讀取
          ?}
          ?
          ?public void setP(String key,String value)
          ?{
          ??pro.setProperty(key,value);設置(在內(nèi)存里)
          ?}
          ?
          ?public void storeP(String fileName,String Info)
          ?{
          ??try
          ??{
          ???pro.store(new FileOutputStream(fileName),Info);保存(在文件)
          ??}
          ??catch(IOException e)
          ??{
          ???e.printStackTrace();
          ??}
          ?}
          ?
          }


          普通文件? 后綴.peoperties

          (柔性軟件開發(fā))目的:可以讓程序變的靈活,配置變的輕巧。

          循環(huán)語句
          while循環(huán):循環(huán)次數(shù)未知使用。
          for 循環(huán):已知循環(huán)次數(shù)使用。
          do-while循環(huán)

          ?


          ?

          posted @ 2007-01-11 21:11 扯 閱讀(176) | 評論 (0)編輯 收藏

          java基礎的基礎

          java基礎

          static是靜態(tài)。
          靜態(tài)方法不能訪問非靜態(tài)成員。
          非靜態(tài)方法可以訪問靜態(tài)成員。

          int i = 3;
          public static void main(String[] args)?
          {?
          ?System.out.println(i);
          }
          這個就會報錯。因為靜態(tài)方法不能訪問非靜態(tài)成員??!

          ?static int i = 3;
          ?public static void main(String[] args)
          ?{
          ??nbn n = new nbn();
          ??n.abc();
          ?}
          ?
          ?public void abc()
          ?{
          ??System.out.println(i);
          ?}

          這個就不會報錯。因為非靜態(tài)方法可以訪問靜態(tài)成員。

          ?

          public(訪問修飾符)static(訪問修飾符)void(返回類型) main(方法名)(String[] args)(參數(shù)表){}

          import javax.swing.*;
          import java.text.SimpleDateFormat;
          class jframe
          {
          ?public static void main(String[] args)
          ?{
          ??JFrame jf = new JFrame();//窗口
          ??
          ??SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd");//時間格式
          ??java.util.Date da = new java.util.Date();//顯示時間的對象申明
          ??
          ??
          ??jf.setTitle("w.a.n");//設置標題
          ??jf.setSize(300,300);//設置窗體大小
          ??jf.setVisible(true);//顯示
          ??JOptionPane.showMessageDialog(jf(位置),"hello");//彈出窗口顯示HELLO
          ??String a = JOptionPane.showInputDialog(null,"can you see?");//輸入窗口,窗口提示為can you see
          ??

          ??JOptionPane.showMessageDialog跟JOptionPane.showInputDialog還有一種參數(shù)寫法。
          ??JOptionPane.showMessageDialog(null," "(顯示信息)," "(標題信息),JOptionPane.INFORMATION_MESSAGE);
          ??System.out.println(sf.format(da.getTime())); //輸出年月日。用SimpleDateFormat
          ??
          ?}
          }


          三種注釋
          /**
          ?*文檔註釋,寫在開頭 ( 注明程序的功能,以及相關信息)
          ?*功能:
          ?*作者:
          ?*版本:
          ?*開發(fā)日期:
          ?**/

          /*
          ? *多行註釋
          ?
          *///單行註釋


          import javax.swing.JOptionPane;
          class Area
          {
          ?final private static double PI = 3.1415;? //常量的申明:final
          ?private String r;
          ?private double rr;
          ?private double s;
          ?
          ?
          ?public static void main(String[] args)
          ?{
          ??Area a = new Area();
          ??a.Input();
          ??a.Areas();
          ?}
          ?
          ?public void Input()
          ?{
          ??r? = JOptionPane.showInputDialog(null,"請輸入圓半徑");
          ?}
          ?
          ?public void Areas()
          ?{??
          ??rr = Double.parseDouble(r);//類型轉換?
          ??s? = rr*rr*PI;
          ??JOptionPane.showMessageDialog(null,"圓面積是:"+s);
          ?}
          }

          類型轉換

          String轉double
          xx = Double.parseDouble(要轉換的數(shù)據(jù)名字);
          String轉int
          xx = Integer.parseInt(要轉換的數(shù)據(jù)名字);

          int轉String
          String s = String.valueOf(12);

          String s = new Integer(10).toString();

          注意?。?br />float f = 2.33 是錯的。因為2.33默認類型是double.
          改正:float f = 2.33 F;

          還要注意
          高內(nèi)聚,松耦合。
          函數(shù)分解。
          這樣代碼看起來會很清爽。


          import java.text.DecimalFormat;
          class Dformat
          {
          ?public static void main(String[] args)
          ?{
          ??DecimalFormat df = new DecimalFormat("0");//格式0后面幾個小數(shù)點表示保留幾位小數(shù)
          ??System.out.println(df.format(66.6666)+"%");//這樣66.666就是67%
          ?}
          }


          標準輸出
          System.out.print("");//加ln是換行
          標準輸入
          System.out.println(System.in.read());//這個方法用來讀取阿科斯碼
          System.out.println((char)System.in.read());//這個方法是強制轉換,只能讀取一個字符

          import java.io.*;//用BufferedReader 要引用io包
          class c
          {?
          ?public static void main(String[] args)throws Exception //要拋異常
          ?{
          ?BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          ?String s = br.readLine();
          ?System.out.println(s);
          ?}
          }
          ?要導入util包,util是工具包.
          ?Scanner sc = new Scanner(System.in);
          ?int s = sc.nextInt();
          ?int s1 = sc.nextInt();
          ?System.out.println(s*s1);//用Scanner可以省去判斷的步驟 在jdk1.5以下的版本不能用

          GregorianCalendar calendar = new GregorianCalendar(year,month,day);
          int d = calendar.get(Calendar.DAY_OF_WEEK);//今天是一周內(nèi)的哪一天

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          posted @ 2007-01-11 21:10 扯 閱讀(253) | 評論 (0)編輯 收藏

          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 友谊县| 深水埗区| 镶黄旗| 勃利县| 南汇区| 南皮县| 台州市| 潮州市| 额尔古纳市| 眉山市| 交口县| 宜宾县| 灵川县| 新泰市| 汨罗市| 蒙城县| 漾濞| 肃宁县| 麻阳| 栖霞市| 藁城市| 罗甸县| 灌云县| 麟游县| 大城县| 西丰县| 祁东县| 南郑县| 徐汇区| 随州市| 嘉峪关市| 南安市| 宜州市| 习水县| 南投市| 历史| 辉南县| 东丽区| 图木舒克市| 鞍山市| 南投市|