java學習總結


 java學習總結~

 

 

面向對象程序設計常用的七種術語  

 

對象(object):是系統中 用來描述客觀事物的一個實體, 是構成系統的一個基本單位, 由一組屬性和施加於這組屬性的 一組操作構成。

對象之間的關系有包含,繼承和關聯   

例:當對象A是對象B的組成部分時,稱對象B包含對象A 

       當對象A是對象B的特例時,稱對象A繼承了對象B  

       當對象A擁有(使用)對象B時,稱對象A和對象B之間是關聯關系                       

 

 

屬性:用來描述對象靜態特征 (狀態)的一個數據項 (專業術語:成員變量)

 屬性一般就是成員變量,屬性的定義規則是:set/get方法名,去掉set/get后,將剩余部分首字母小寫得到的字符串就是這個類的屬性。

 

 

操作:用來描述對象動態特 征(行為)的一個動作系列。 (專業術語:方法)

 太多了不一一列舉了。

類:(class):是具有相同屬性和操作的一組對象的集合, 它為屬於該類的全部對象提供了統一的抽象描述,由一個類名、一組屬性和一組操作構成

 

封裝:就是把對象的屬性和操作結合成一個獨立的系統單位,並盡可能隱藏對象的內部細節

什么是封裝哪?

封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數據,封裝實際上使用方法將類的數據隱藏起來,控制用戶對類的修改和訪問數據。 適當的封裝可以讓程式碼更容易理解和維護,也加強了程式碼的安全性。

 

繼承:是指特殊類(子類)可以自動擁有一般類(父類)的全部屬性和操作。特殊類可以有自己定義的屬性和操作,繼承關系是代代傳遞的。

 

 繼承的特點:
1.只支持單繼承,即一個子類只允許有一個父類。
2. 子類可以擁有父類的屬性和方法
3. 子類可以擁有自己的屬性和方法
4. 子類可以重寫覆蓋父類的方法

 

 

繼承的類別

  1. 排序類-實現排序
  2. 反轉類-實現數據反向存放

 

注意事項

    1. 可以繼承父類的public和protected成員變量;不能夠繼承父類的private成員變量
    2. 訪問權限成員變量的時候只有子類和父類在同一個包下才能繼承
    3. 子類不能繼承父類的構造器

多態:是指在一般類中定義的屬性或操作被特殊類繼承之后,可以具有不同的數據類型或表現 出不同的行為。

 

 

 

 

 

 

繼承

繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。繼承可以單繼承也可以多繼承

 

 繼承的特點:
1.只支持單繼承,即一個子類只允許有一個父類。
2. 子類可以擁有父類的屬性和方法
3. 子類可以擁有自己的屬性和方法
4. 子類可以重寫覆蓋父類的方法

 

繼承的類別

  1. 排序類-實現排序
  2. 反轉類-實現數據反向存放

 

注意事項

  1. 可以繼承父類的public和protected成員變量;不能夠繼承父類的private成員變量
  2. 訪問權限成員變量的時候只有子類和父類在同一個包下才能繼承
  3. 子類不能繼承父類的構造器

 

This關鍵字與super關鍵字(重復)

This關鍵字的作用

(1)如果存在同名的成員變量與局部變量時,在方法內部默認是訪問局部變量的數據可以通過this關鍵字指定訪問成員變量的數據;

(2)在一個構造函數中可以調用另外一個構造函數初始化對象;

 

Super關鍵字的作用

(1) 子父類存在着同名的成員(包括變量和方法)時,在子類中默認是訪問子類的成員,可以通過super關鍵字指定訪問父類的成員;

(2) 創建子類對象時,默認會先調用父類無參的構造方法,可以通過super關鍵字指定調用父類的構造方法。

 

區別

1.代表的事物不一致。

super關鍵字不能代表對象,只是代表一個對象中的一塊內存。

this關鍵字代表的是所屬函數的調用者對象。

2.使用前提不一致。

super關鍵字必須要有繼承關系才能使用。

this關鍵字不需要存在繼承關系也可使用

3. 調用構造函數的區別:

 super關鍵字是調用父類的構造函數。

this關鍵字是調用本類的構造函數。

 

注意事項 

super與this關鍵字不能同時出現在同一個構造函數中調用其他的構造函數。因為兩個語句都需要第一個語句。(例子 main方法不能同時使用this,super)

 

 

Final關鍵字

使用final聲明類不能有子類,聲明的方法不能被子類所覆寫,聲明的變量是常量不能修改。

 

 

抽象類

1.Java中所有的對象都是通過類來描繪的,但是並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。 抽象類中類的其它功能依然存在,但是不能實例化對象。由於抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。

2.Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

 

 

 

StringBuffer對象的初始化的兩種方法

reverse方法(StringBuffer對象中的內容反轉,然后形成新的字符串)

setCharAt方法(修改對象中索引值為index位置的字符為新的字符ch)

 

 

抽象類

 

抽象類和接口的區別

1. 抽象類中的方法可以有能實現方法的具體功能方法體,但是接口中不能有方法體。

2. 抽象類中的成員變量不限制類型,而接口中的成員變量只能是 public static final 類型的。

 

3. 一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

 

object類

 Object類是所有類的父類,聲明一個Object類的作用就是可以傳遞任何類型的類來使用。

Object是所有類的父類,它有很多類對象會用到的方法,例如比較常用的toString 、equals。

寫封裝方法的時候不確定傳進來的值的類型,就可以使用Object作為類

 

接口

 

接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

 

實現接口:

class 子類 implements 接口A,接口B,...{}

繼承抽象類實現接口

class 子類 extends 抽象類 implements 接口A,接口B,...{}

接口的繼承:

interface 子接口 extends 父接口A,父接口B,...{}

 

throw與throws的區別與共同點
1.throws出現在方法函數頭,throw出現在函數體。
2.throws表示出現異常的一種可能(不一定會發生這些異常),throwthrow則一定拋出了某種異常對象。
3.throw不會單獨使用
兩者都是消極處理異常的方式,不會由函數去處理異常,真正的處理異常由函數的上層調用處理。
 
 
 
Thread類與Runnable接口
Thread類:Thread對象代表Java程序中單個的運行線程。一個類通過繼承Thread類,同時重寫其run()方法,就可以實現多線程的方式運行,並繼承Thread類的所有方法。Run()方法是運行線程的主體,且由Java直接調用run()方法。
Runnable接口:Runnable接口中只定義了一個方法,即為run方法void run()使用實現接口 Runnable 的對象創建一個線程時,啟動該線程將導致在獨立執行的線程中調用對象的 run 方法。 
 
Thread類runnable接口的區別(不太好解釋舉個栗子把)

繼承Thread類的,就是將任務分給每一個對象來分別完成,因為MyThread繼承Thread類,所以在new MyThread的時候在創建對象的同時創建線程;

實現Runnable的, 就是將任務分給多個對象共同完成,new MyThread相當於創建一個任務,然后實例化多個對象,創建線程即安排窗口執行。

 

 

 
try 和 catch 關鍵字
try 和 catch 關鍵字是用來捕獲異常的關鍵字
Catch 語句包含要捕獲異常類型的聲明。當保護代碼塊中發生一個異常時,try 后面的 catch 塊就會被檢查。
如果try里沒有代碼,或者沒有try,出現異常會導致程序崩潰。

 

 

Throwable的子類Exception類與RuntimeException類的區別

1、Exception在程序中是必須使用try…catch進行處理。

2、RuntimeException可以不使用try…catch進行處理,但是出現異常要給JVM進行處理

 

 

通過Runnable接口創建線程的步驟如下:
1、定義實現Runnable接口的類,並實現該類中的run()方法。
2、建立一個Thread對象,並將實現的Runnable接口的類的對象作為參數傳入Thread類的構造方法。
3、通過Thread類中的start()方法啟動線程。
 
 
實現Runnable接口相對於繼承Thread類的優勢
1.避免了繼承Thread類的單繼承的局限性。
2.Runable接口出現更符合面向對象,將線程單獨進行對象的封裝。
3.Runnable接口出現,降低了線程對象和線程任務的耦合性。所以創建線程的方式都使用Runnable接口。

 

 

java io

 

字節流

字節流以操作byte類型數據為主,主要操作類為OutputStream類和InputSream類。
1.字節輸出流OutputStream是整個IO包中字節輸出流最大父類,
2.字節輸入流InputSream為抽象類,需依靠子類

 

 

字符流

相同點

 字符輸出流Writer,字符輸入流Reader都是是抽象類,詳細見書p390

不同點

1.字節流在操作的時候是與文件本身直接操作的,而字符流在操作的時候是使用到緩沖區的。
2. 字符流要使用close方法的話,則不會輸出任何內容。字符流的緩沖區,可以使用flush方法強制進行刷新緩沖區,這時可以在不close的情況下輸出內容。

字節流-字符流的轉換類
OutputStreamWriter:是Writer的子類,將輸出的字符流轉換為字節流。即:將一個字節流的輸出對象變為字節流的輸出對象 
InputStreamReader:是Reader的子類,將輸入的字節流變為字符流,即:將一個字節流的輸入對象變為字符流的輸入對象。

 

FileInputStream 常用的構造方法重載形式
FileInputStream:通過打開一個到實際文件的連接來創建一個 FileInputStream,該文件通過文件系統中的 File 對象 file 指定。
FileInputStream:通過打開一個到實際文件的鏈接來創建一個 FileInputStream,該文件通過文件系統中的路徑名 name 指定。

 

 

轉換流
OutputStreamWriter 是字符流通向字節流的橋梁:可使用指定的字符編碼表,將要寫入流中的字符編碼成字節,將字符串按照指定的編碼表轉成字節,在使用字節流將這些字節寫出去。


內存流
字節數組

ByteArrayInputStream是字節數組輸入流,在內存中創建了一個字節數組,將輸入流中讀取的數據保存到字節數組的緩存區中.也就是說字節數組輸入流將讀取數據放到字節數組緩沖區中.

ByteArrayOutputStream是創建緩沖區用的類

例  OutputStream bOut = new ByteArrayOutputStream(int a)  創造一個大小為n字節的緩沖區
字符數組
CharArrayReader類實現一個可用作 Writer 的字符緩沖區。緩沖區會隨向流中寫入數據而自動增長,可使用 toCharArray() 和 toString() 獲取數據。
CharArrayWriter類用於將子u寫入到內置字符緩存數組中

成功創建字節數組輸出流對象后的操作

 

 

 

 

字符串

 

StringReader:只有一個版本的構造方法,接受一個String作為參數

StringWriter:StringWriter內部有兩個版本的構造方法


管道流
PipedOutputStream和PipedInputStream分別是管道輸出流和管道輸入流。這個兩個流必須同時使用。


打印流

打印流為輸出信息最方便的類,其包括PrintStream類和PrintWriter類。

PrintStream 類

提供了打印方法可以對多種數據類型進行打印,並保持數據的表現形式。 

它接收三種類型的值:字符串路徑,File對象,字節輸出流。

PrintWriter類

就非常實用的一種,很多地方都可以用到(不知道怎么說)

 

 

JAVA使用AWT和Swing 類完成圖形用戶界面編程

 

Swing

Swing 是一個為Java設計的GUI工具包,是JAVA基礎類的一部分。

Swing包括了圖形用戶界面(GUI)器件:文本框,按鈕,分隔窗格和表。

 

AWT

AWT全稱是抽象窗口工具集(Abstract Window Toolkit),它是最早的sun提供的GUI庫(Graphics User Interface)圖形用戶界面。AWT提供了JavaApplet和Java Application中可用的用戶圖形界面GUI中的基本組件(components)。由於Java是一種獨立於平台的程序設計語言,但GUI卻往往是依賴於特定平台的.它的功能包括: 用戶界面組件;事件處理模型;圖形和圖像工具,包括形狀、顏色和字體類;布局管理器。

 

AWT與Swing的區別

1.Swing 不僅提供了AWT 的所有功能,還用純粹的Java代碼對AWT的功能進行了大幅度的擴充。

2.Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。

3.Swing的缺點則是執行速度較慢,優點就是可以在所有平台上采用統一的行為。

 

常用的概念解析

JFrame – java的GUI程序的基本思路是以JFrame為基礎,它是屏幕上window的對象,能夠最大化、最小化、關閉。

JPanel – Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。。

JLabel – JLabel 對象可以顯示文本、圖像或同時顯示二者。可以通過設置垂直和水平對齊方式,指定標簽顯示區中標簽內容在何處對齊。默認情況下,標簽在其顯示區內垂直居中對齊。默認情況下,只顯示文本的標簽是開始邊對齊;而只顯示圖像的標簽則水平居中對齊。

JTextField –一個輕量級組件,它允許編輯單行文本。

JPasswordField – 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創建密碼(密碼)

JButton – JButton 類的實例。用於創建按鈕類似實例中的 "Login"。

 

Java GUI API

GUI API包含的類可以分為三個組:組件類(component class),容器類(container class),輔助類(helper class)

組件類是創建用戶界面的。容器類是用來包含其他組件的。輔助類是用來支持GUI組件的。

 

布局管理器

布局管理器概念:各組件在容器中的大小以及擺放位置。實現跨平台特性並獲得動態布局的效果。
 
 
 絕對布局:就是硬性指定組件在容器中的位置和大小,可以使用絕對坐標的方式來指定組件的位置。

 

 

常用的布局管理器類型(詳細操作方法見書)

1.FlowLayout( 流式布局管理器):是最簡單的布局管理器。按照組件添加的順序,從左到右地將組件排列在容器中。
2.BorderLayout (邊界布局管理器):是一個布置容器的邊框布局,它可以對容器組件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中,且每個區域最多只能包含一個組件。
3.GrideLayout (網格布局管理器):是以網格的形式管理組件,使用前需要設置顯示行數和列數(先滿足行,再調列),如果有多出的組件則要固定增加一列。
4.CardLayout(卡片布局管理器): 是由一組組件彼此重疊進行布局的,缺點是每次只顯示一個界面

 

 

 

JPanel

Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。

 

JScrollPane

JScrollPane類可提供輕量級組件的 scrollable 視圖。JScrollPane 管理視口、可選的垂直和水平滾動條以及可選的行和列標題視口。

 

JTabbedPane

JTabbedPane選項卡面板實現了一個多卡片的用戶界面,通過它可以將一個復雜的對話框分割成若干個選項卡,實現對信息的分類顯示和管理,使界面更簡潔大方,還可以有效地減少窗體的個數。

 

JSplitPane (水平或垂直分割面板)

ifsplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,組件一,組件二)

ifsplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,組件一,組件二)

 

 

JScrollPane(設置滾動條)
static final HORIZONTAL_SCROLLBAR_ALWAYS    始終顯示水平滾動條

static final VERTICAL_SCROLLBAR_ALWAYS        始終顯示垂直滾動條

static final HORIZONTAL_SCROLLBAR_NEVER     任何情況下都不顯示水平滾動條

static final VERTICAL_SCROLLBAR_NEVER  任何情況下都不顯示垂直滾動條

static final HORIZONTAL_SCROLLBAR_AS_NEEDED    根據自生需要來顯示水平滾動

static final VERTICAL_SCROLLBAR_AS_NEEDED   根據自生需要來顯示垂直滾動條

 

其他類

GridLayout類:網格布局類,將容器划分為網格,所以組件可以按行和列進行排列,在網格布局中,每一個組件的大小都相同。

Dimension類:封裝組件寬度高度類,可以通過組件對象.setPreferredSize(new Dimension(width,hight))來控制組件的大小。

ImageIcon類:圖片類,可以用來加載磁盤上的圖片。使用方法為ImageIcon image=new ImageIcon("圖片地址")。

FlowLayout類:流式布局類(JPanel組件默認的布局類:流式居中布局),即從左至右,從上至下的布局類。

JTextPanel類 : 是一個可以編輯和顯示html,rtf和普通文本的富文本組件,能實現的功能較多。

BorderLayout類:邊框布局類(JFrame組件的默認布局類),即分為東南西北。

JComboBox類:是一個組件,它結合了一個按鈕或可編輯字段與下拉列表。

 

 

事件處理

事件就是表示一個對象發生狀態變化;事件接收對象被稱為事件監聽器,所有的事件監聽器都是以監聽接口的形式出現的。當然單單只有一個監聽器是不夠的,還需要在組件使用時注冊監聽,這樣才可以處理。在實現類和接口之間增加一個過渡的抽象類,子類繼承抽象類就可以根據自己的需要進行方法的覆寫,了解了動作事件之后,就可以使用此事件完成一個簡單的用戶登錄操作。

 

處理事件的接口

監視器負責處理事件源發生的事件,監視器是一個對象,為了處理事件源發生的事件,監視器這個對象會自動調用一個方法來處理事件。被調用的這個方法就是所說的處理事件的接口中的方法。

 WindowListener接口中定義的方法

void windowOpened(WindowEvent e)         打開窗口

void windowActivated(WindowEvent e)        激活窗口

void windowClosed(WindowEvent e)           關閉窗口

void windowDeiconified(WindowEvent e)    還原窗口 

void windowClosing(WindowEvent e)          正在關閉窗口

void windowDeactivated(WindowEvent e)   變為非活動窗口 

void windowIconified(WindowEvent e)        最小化窗口 

 

 

 

 

 補充

JLabel – JLabel 對象可以顯示文本、圖像或同時顯示二者。可以通過設置垂直和水平對齊方式,指定標簽顯示區中標簽內容在何處對齊。默認情況下,標簽在其顯示區內垂直居中對齊。默認情況下,只顯示文本的標簽是開始邊對齊;而只顯示圖像的標簽則水平居中對齊。

JTextField 一個輕量級組件,它允許編輯單行文本。

JPasswordField 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創建密碼(密碼)

JButton – JButton 用於創建按鈕類似實例中的 "Login"。

 

1,addTab(String title, Component component):添加一個標簽為title的選項卡

2,setTabPlacement(int tabPlacement):設置選項卡標簽的顯示位置

3,setTabLayoutPolicy(int tabLayoutPolicy):設置選項卡標簽的布局方式

4,setSelectedIndex(int index):設置指定索引位置的選項卡被選中

5, getSelectedComponent():獲取當前選中的選項卡對應的內容組件

6, removeTabAt(int index)或remove(int index):移除指定位置的選項

7, remove(Component component):移除指定內容控件的選項卡

8, removeAll():移除所有選項卡

 

 

 

 

 

事件處理及監聽處理

 鍵盤事件

 接口方法

 

 

 

JMenuItem 常用方法

 

 

 

 

鼠標事件

 MouseListener 接口方法

 

 

 

 MouseEvent 事件的常用方法

 

 

 

鼠標拖拽事件及監聽處理

 

在Swing中可以使用MouseMotionListener接口完成鼠標的拖拽操作

 

 

 

 

 

 

JRadioButton 事件處理(ItemListener)

JRadioButton常用方法

 

 

 


 ItemListener接口方法

 

 

 

 ItemEvent 類的常用方法及常量

 

 

 

復選框 JCheckBox

 JCheckBox 類常用方法

 

 

 

菜單組件(JMenu 與 JMenuBar)

 JMenubar 的常用方法

 

 

 

 JMenu 的常用方法

 

 

 

JMenuItem 類的常用方法

 

 

 

ActionEvent事件

 

JMenuLtem繼承AbstractButton時選擇菜單項的時候會觸發ActionEvent事件

 

 

 

 

文件選擇框 JFileChooser


 JFileChooser 類的常用方法

 

 

 

文件選擇框的三種返回狀態

 

 

 

 

 

 

JDBC

 

JDBC API 允許用戶訪問任何形式的表格數據,尤其是存儲在關系數據庫中的數據。

 

執行流程

1 連接數據源,如:數據庫。

2 為數據庫傳遞查詢和更新指令。

3 處理數據庫響應並返回的結果。

 

常見的類與接口

 

DriverManager類:用於注冊驅動(創建連接對象)。 java.sql.DriverManager;

Connection接口:表示與數據庫創建的連接 。java.sql.Connection;

Statement接口:操作數據庫sql語句的對象,並返回相應結果的對象。 java.sql.Statement;

ResultSet接口:結果集或一張虛擬表(客戶端存表數據的對象)。 java.sql.ResultSet;

 

一般開發步驟

 

1 . 加載驅動(搭建環境):
    I.  將Oracle驅動Jar包復制到項目中的自建lib文件夾下。
    II. ojdbc6.jar 右鍵 –> build path –> add to build path。
 
2 . 連接數據庫(OracleXE):
    I.  通過DriverManager.getConnection(url,user,password)獲取數據庫連接對象(Connection),提供三個實參:
    1). URL:jdbc:oracle:thin:@localhost:1521:xe  //Uniform Resource Locator 統一資源定位符 協議、IP、端口號、實例名(SID)
    2). UserName:hr
    3). Password
 
3 . 獲得發送SQL的工具:
    I.  通過Connection對象獲取Statement工具。
    II. 通過Connection對象獲取PreparedStatement工具,並且傳入預編譯SQL
 
4 . 發送SQL語句到數據庫執行:
I.  DML語句:statement.executeUpdate(sql); //受影響行數 int
II. DQL語句:statement.executeQuery(sql); //結果集 ResultSet
III  PreparedStatement發送SQL,無需傳入SQL
 
5 . 處理結果:
I.  DML語句:邏輯判斷
II. DQL語句:展示、封裝。
 
6 . 釋放資源:
I.  遵循先開后關。
II. 關閉順序ResultSet、Statement、Connection。
 
 

加載驅動程序:

1
2
3
4
5
Class.forName(driverClass)
//加載MySql驅動
Class.forName("com.mysql.jdbc.Driver")
//加載Oracle驅動
Class.forName("oracle.jdbc.driver.OracleDriver")

  

獲得數據庫連接:

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");

 

 
         

創建Statement\PreparedStatement對象:

conn.createStatement();
conn.prepareStatement(sql);

 

 

 

 這學期學的東西基本都總結在上了 ,接下來寫一下個人總結~

學完java基礎,對java面向對象的思想有更加深刻的認識了,從學習java語言概述到最后網絡編程IDE的使用,不知不覺一個學期過去了,回首感覺快又感覺漫長,學的東西確實挺多的,很多知識也感覺比較抽象,需要多加的練習和總結,我個人並不喜歡記這些具體的方法啊之類的,只喜歡通過讀寫寫來理解這些程序。
程序答辯結束后老師和我說了我的問題,說我考得還可以,就是很多細節並沒有理解清楚。
       學習的過程中確實遇到了很多的困難,學習的過程中,聽完一天課,很多代碼自己是沒辦法寫出來的,只能挑重點先抄它一遍,然后自己摸索寫一遍,寫不下去了,又看看老師怎么寫的,第三遍自己寫,能寫出來就基本掌握了,對所有學習的知識點都用這個方法,這個自己摸索的方法,感覺真的很實用。也是檢驗學習效果的好方法。
       java語言中分為邏輯性代碼和功能性代碼,邏輯性代碼就是一個方法里面套一個方法,再套一個方法,這個方法調用另外一個方法,套來套去,很多人說城市套路深,我感覺java語言的套路才深呢,入了套路,總要解套吧,心中慢慢摸索出了些心得,從哪里來到哪里去,就是這個方法是那里來的,一個個方法跟蹤,找到它的源頭,這個方法是干什么用的,不停地問為什么,它實現了什么功能,一路問下來,思路自然就清晰了,有時候有些搞不懂的還是要經常百度的。 學習的過程也非常感謝同學老師對我的幫助,讓自己不斷地進步,我感覺這段時間的學習是痛苦並快樂着的,每天的日子都感覺很充實,我相信未來的我一定會感謝現在拼搏的自己。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM