㈠ 關於java工具類的理解 為什麼java要提出個工具類的概念,按照面向對象的思想為什麼不直接把工具
工具類其實就是對於String,Collection,IO等常用類的功能的擴展。比如IO讀寫文件。其實大多數時候我希望有一個文件路徑,然後調個方法就直接得到文件內容(字元串或者位元組數組形式)。
如果沒有工具類,那麼你每個讀文件的地方都有一段重復的代碼。所以,你肯定會被這個功能提取出來。那麼,你提取出來放哪兒呀?要知道這個功能可是在任何類都能調用的。所以,我們就放在FileUtil裡面了。
這樣,你以後讀取文件時,你就找FileUtil的read方法,直接調用即可。
為什麼要將方法和變數都寫成靜態的。因為,這些方法我只是想調用一下,不需要牽扯工具類中的任何屬性和變數,所以,我就沒有必要實例化了(new)。既然不需要實例化了,那麼就用靜態就行了。
㈡ java 什麼叫工具類
是包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字元串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包
㈢ java工具類的規范要求工具類中方法可以是私有方法嗎
可以,所謂的工具類,都是人為的分類,java規范里是沒有這種說法的。所以正常類里有的元素,工具類里都可以有。
㈣ Java工具類怎麼記
工具類可以自己創建封裝也有的是java自帶的對象和方法開發出來的工具便於開發
工具類就是用來提高開發效率, 方便調用。
java類自帶工具類有:Arrays , Collections ...
㈤ 怎樣才可以把java的工具類寫好,求教了。
羅馬不是一天建成的,要寫好工具類必須要有扎實的功底和豐富的經驗。
寫工具類首先要考慮工具類得功能,要能滿足基本的要求,但又不能有過多使用次數不高的方法。其次,要考慮工具類得通用性及易用性,工具類的使用方法不能太復雜。最後,不能以工具類為中心來寫程序,即所寫程序不能為了使用工具類而放棄它本來的結構和方法,而是應該考慮是不是可以寫一個更好的工具類來提供程序使用。
工具類必須經過很多次的修改最終才能成為想要的工具類。
㈥ 為什麼Java工具類方法為靜態類
靜態方法沒有對象,也就沒有對象的數據,無法用於多個實例,或是數組之類的場合。
而非靜態方法,必須建立實例後才可以使用,在很多場合會非常繁瑣。
你可以理解為,非靜態方法用於對象。靜態方法用於工具類。
再有一個理解,這兩者的區別是,非靜態方法隱式的將當前對象作為參數傳遞了進去。
如果全部都是靜態方法,那麼代碼其實就類似C或者BASIC了,不是面向對象了。
全部都不是靜態方法,其實可以實現,只是代碼量會增加很多。
㈦ android 判斷是不是有網路 方法 工具類里的幾個常用方法
我都是自定義的網路工具類,大概是這樣寫的,希望能夠幫到您:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import android.widget.Toast;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
/**
* 網路工具類
*
* @author shikh
*
*/
public class NetUtils {
public static final int CMNET = 20;
public static final int CMWAP = 21;
public static final int WIFI = 22;
/**
* 獲得網路類型:3G /WIFI
*/
public static int getAPNType(Context context) {
int netType = -1;
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo == null) {
return netType;
}
int nType = networkInfo.getType();
if (nType == ConnectivityManager.TYPE_MOBILE) {
Log.e("networkInfo.getExtraInfo()",
"networkInfo.getExtraInfo() is "
+ networkInfo.getExtraInfo());
if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) {
netType = CMNET;
} else {
netType = CMWAP;
}
} else if (nType == ConnectivityManager.TYPE_WIFI) {
netType = WIFI;
}
return netType;
}
/**
* 獲取Ip 地址
*
* @return
*/
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
}
return null;
}
/**
* 判斷網路狀況
* @param context
* @return
*/
public static boolean isCheckNetAvailable(Context context) {
boolean isCheckNet = false;
try {
final ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo mobNetInfoActivity = connectivityManager
.getActiveNetworkInfo();
if (mobNetInfoActivity == null || !mobNetInfoActivity.isAvailable()) {
isCheckNet = false;
return isCheckNet;
} else {
isCheckNet = true;
return isCheckNet;
}
} catch (Exception ex) {
ex.printStackTrace();
}
return isCheckNet;
}
public static boolean isCheckNetAvailable(Context context, int netType) {
boolean isAvaliable = false;
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getNetworkInfo(netType);
if (null != info && info.isConnected()) {
isAvaliable = true;
}else{
Toast.makeText(context, R.string.net_wrok_unconnetion_text, Toast.LENGTH_SHORT).show();
}
return isAvaliable;
}
/**
* 判斷網路是否可用
* @param context 上下文對象
* @return 可用返回true 不可用返回false
*/
public static boolean NetAvailable(Context context) {
if (!NetUtils.isCheckNetAvailable(context)) {
StringUtils.showToast(context, R.string.net_wrok_unconnetion_text);
return false;
}
return true;
}
}
㈧ 對於工具類書的學習方法及使用技巧
工具類書知識點多且繁復,我們學習的時候一定要吃透教材,首先把目錄結構理清楚,哪一個章節寫了什麼東西,也可以把書背上個七八遍,熟讀全書。還要懂得如何使用工具書,這樣才能給學習帶來幫助。叫魚+學習(一個網戰)覺得還是不能讀死書,多用靈活的方式來學習,避免走彎路。
㈨ android 開發中什麼叫工具類
工具類:一般存放的是公共的靜態方法,可供所有需要的類直接調用。
如獲取SD卡路徑,通過文件路徑獲取文件之類的重復通用性較高的方法就可以放在工具類中。
由於是靜態方法,就不用實例化,也方便了調用的操作。
總結的Android開發中常用的工具類,大部分同樣適用於Java。
目前包括 HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。
㈩ java工具類怎麼定義
工具類的定義是以util或utils結尾,裡麵包含的變數和方法都必須要是靜態的static方法,這樣才能提供別人調用。